VBA - 通过访问中的筛选表进行循环

时间:2015-12-23 13:16:09

标签: vba loops ms-access

访问2013 32位/ Windows 7 64位

我有一个键表,根据键值,我的vba将运行一些查询并填充表中的其他字段 - 我称之为“检查”我在表中有一个“已检查”列并且必须打破将这个列表处理成几个批次(并且不断添加更多记录)所以我想过滤掉“已检查”的那些。我想使用单独的查询没有

我正在使用传统的循环w / a条件: (我的代码在这里只是一个模拟忽略语法)

Move First
Do Until EOF
if Table("Checked") = "True" Then goto NextRow
    <Code>
NextRow:
    Move Next
Loop

我想继续这种方法,但在开始时过滤掉所有"Checked" = True

2 个答案:

答案 0 :(得分:1)

只需使用具有WHERE子句的查询打开记录集。

Dim rs As Recordset
Dim S As String

S = "SELECT foo, morefoo FROM bar WHERE [Checked] = 0"
' Or if Checked is a Text column:
S = "SELECT foo, morefoo FROM bar WHERE [Checked] <> 'True'"

Set rs = CurrentDb.OpenRecordset(S)
Do While Not rs.EOF
    ' code

    rs.MoveNext
Loop

(顺便说一下,循环中你的Move First会创建一个无限循环......)

答案 1 :(得分:0)

我最终对字段进行了排序,然后在到达标记为已选中的行时退出了子菜单。