我在Excel中使用VBA有很多经验,但在Access 2010中使用VBA的经验很少。我试图从记录集中删除记录,其中一个字段以" _X"结尾。当我使用通配符时,比较失败。当我使用特定字符串时,比较按预期工作。这是我正在使用的代码。
Dim db As Database: Set db = CurrentDb
Dim tbl As Recordset: Set tbl = db.OpenRecordset("WRITEON")
With tbl
Do Until .EOF
If ![ACOD] = "*_X" Then '"$ICP_X" works
Debug.Print ![ACOD] 'For testing
'.Delete
End If
.MoveNext
Loop
End With
tbl.Close
答案 0 :(得分:3)
在您将文本值与模式进行比较时,请使用Like
代替=
。
If ![ACOD] Like "*_X" Then
Debug.Print ![ACOD]
End If
那应该做你想要的,但是我不太确定在记录集中评估每条记录来删除匹配是最好的方法。您可以通过执行DELETE
查询来完成相同的结果,该查询使用相同的模式来标识应删除哪些行。
DELETE FROM WRITEON
WHERE [ACOD] Like "*_X";