簡體   English   中英

訪問VBA記錄集字符串比較不適用於通配符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM