[英]Access VBA recordset string comparison not working with wildcard
我在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
在將文本值與模式進行比較時,請使用Like
而不是=
。
If ![ACOD] Like "*_X" Then
Debug.Print ![ACOD]
End If
那應該做您想要的,但是我不確定評估記錄集中的每個記錄以刪除匹配項是最好的方法。 您可以通過執行DELETE
查詢來實現相同的結果,該查詢使用相同的模式來標識應刪除的行。
DELETE FROM WRITEON
WHERE [ACOD] Like "*_X";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.