如何使用VBA循环删除多个表中的所有记录?访问2010

时间:2013-12-11 21:28:33

标签: vba ms-access access-vba

我想要一个VBA循环函数,它将删除任何名称为“d2s _ *”的表中的所有记录。

我找到了删除所有记录的代码:

DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM NameOfTable"
DoCmd.SetWarnings True

我还找到了一个循环来调用数据库中的每个表:

Dim T As TableDef
For Each T In CurrentDb.TableDefs
Debug.Print T.Name
Next T

所以我想要的是将它们结合起来:

Dim T As TableDef
For Each T In CurrentDb.TableDefs
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM NameOfTable"
DoCmd.SetWarnings True
Next T

但据我了解,SQL查询必须引用特定的表名。有没有办法让这个相对于任何以名称“d2s _”开头的表?

1 个答案:

答案 0 :(得分:5)

尝试:

Dim T As TableDef
DoCmd.SetWarnings False
For Each T In CurrentDb.TableDefs
    If T.Name Like "d2s_*" Then
        DoCmd.RunSQL "DELETE * FROM " & T.Name
    End If
Next T
DoCmd.SetWarnings True