访问VBA记录集字符串比较不使用通配符

时间:2015-03-03 21:40:40

标签: string vba ms-access access-vba recordset

我在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 

1 个答案:

答案 0 :(得分:3)

在您将文本值与模式进行比较时,请使用Like代替=

If ![ACOD] Like "*_X" Then
    Debug.Print ![ACOD]
End If

那应该做你想要的,但是我不太确定在记录集中评估每条记录来删除匹配是最好的方法。您可以通过执行DELETE查询来完成相同的结果,该查询使用相同的模式来标识应删除哪些行。

DELETE FROM WRITEON
WHERE [ACOD] Like "*_X";