Jag har gjort så här med ett VB-program mot Access Du har inget wher vilkor i din SQL sats. Din kod bör ser mer lik det här:Ta bort vissa tecken
Jag läser in data ur en tabell till ett recordset
sedan kollar jag om fältet inte är tomt och tilldelar en variabel fältinnehållet
If (rsSokning.Fields("Vm1pos").Value) <> "" Then
varKommentar = varKommentar & rsSokning.Fields("Vm1pos").Value
End If
Detta görs för ett antal celler i samma post som adderas till variabeln.
Därefter vill jag ta bort alla tecken i variabeln som inte är bokstäver, siffror eller en punkt.
For j = 1 To Len(varKommentar)
If (Asc(Mid(varKommentar, j, 1)) >= 97 And Asc(Mid(varKommentar, j, 1)) <= 122) Or (Asc(Mid(varKommentar, j, 1)) >= 65 And Asc(Mid(varKommentar, j, 1)) <= 90) Or (Asc(Mid(varKommentar, j, 1)) >= 48 And Asc(Mid(varKommentar, j, 1)) <= 57) Or Asc(Mid(varKommentar, j, 1)) = 46 Then
temp = temp & Mid(varKommentar, j, 1)
End If
Next j
varKommentar = temp
Nu kommer mitt problem - att få innehållet i variablen till en cell för varje post.
sql = "UPDATE marken SET kommentar ='" & varKommentar & "' "
conn.Execute (sql)
Jag har allt inne i lopen för recordsettet
While Not rsSokning.EOF
Det som sker är att det blir samma innehåll i alla celler i kolumnen. Vad kan det bero på?Sv: Ta bort vissa tecken
<code>
Dim Char As String
Dim fldVm1pos AS ADODB.Field
Dim fldIDKolumn AS ADODB.Field
Set fldVm1pos = rsSokning.Fields("Vm1pos")
Set fldIDKolumn = rsSokning.Fields("IDKolumn")
Do Until rsSokning.EOF
varKommentar = "" & fldVm1pos.Value
If Len(varKommentar) Then
For j = 1 To Len(varKommentar)
Char = Mid(varKommentar, j, 1)
Select Case Asc(Char)
Case 46, 48 To 57, 65 To 90, 97 To 122
temp = temp & Char
End Select
Next
sql = "UPDATE marken SET kommentar ='" & varKommentar & "' WHERE IdKolumn = " & fldIDKolumn.Value
conn.Execute sql
End If
rsSokning.MoveNext
Loop
</code>