首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在访问中运行查询循环?

如何在访问中运行查询循环?
EN

Stack Overflow用户
提问于 2019-03-26 23:48:09
回答 2查看 0关注 0票数 0

我有一个数据库,其中包含一个表,其中包含用于检查另一个数据库的条件和错误消息。

我想运行一个循环,以便针对第二个数据库中的所有表检查这些条件中的每一个,并生成一个给出错误的报告。

在ms访问中这是否可行。

例如,

querycrit表

代码语言:javascript
复制
id           query                                 error    
1           speed<25 and speed>56              speed above limit  
2           dist<56 or dist >78                dist within limit

我有400多个不同变量的查询。

我正在运行查询的表是

记录表

代码语言:javascript
复制
id   speed     dist    accce   decele   aaa   bbb     ccc
1     33        34      44         33   33     33      33
2     45        44      55         55   55     22      23

关于ttk

EN

回答 2

Stack Overflow用户

发布于 2019-03-27 08:22:30

这是一些示例代码,它是键入的,未经过测试。

代码语言:javascript
复制
Dim rs AS DAO.Recordset
Dim rs2 AS DAO.Recordset

Set rs=CurrentDB.OpenRecordset("querycrit")

strSQL="SELECT * From Records WHERE "
Do While Not rs.EOF
   Set rs2=CurrentDB.OpenRecordset(strSQL & rs![Query])
   If Not rs2.EOF Then
       Debug.Print rs![Error]
       Debug.Print rs2.Fields(1)
   End If

   rs.MoveNext
Loop
票数 0
EN

Stack Overflow用户

发布于 2019-03-27 09:33:42

这是一些示例代码。它说明了两种不同类型记录集的使用。您可能希望阅读VBA陷阱:使用 Allen Browne的RecordsetsAccess 2002以及更高版本的Access中的保留字列表

代码语言:javascript
复制
Dim rs As DAO.Recordset
Dim rs2 As ADODB.Recordset

Set rs = CurrentDb.OpenRecordset("querycrit")
Set rs2 = CreateObject("ADODB.Recordset")
rs2.ActiveConnection = CurrentProject.Connection
For Each tdf In CurrentDb.TableDefs
'EDIT: TableDefs includes Microsoft System tables and '
'these should never be tampered with. They all begin with Msys '
'so we can leave them out of the loop here. '
   If Left(tdf.Name, 4) <> "msys" And tdf.Name <> "querycrit" Then
        rs.MoveFirst
        strSQL = "SELECT * From [" & tdf.Name & "] WHERE "

        Do While Not rs.EOF
            On Error Resume Next
            Debug.Print tdf.Name
            rs2.Open strSQL & " " & rs![query]
            If Err.Number = 0 Then
                On Error GoTo 0
                If Not rs2.EOF Then
                    Debug.Print rs![Error]
                    Debug.Print rs2.GetString
                End If
            End If
            Err.Clear
            rs2.Close
            rs.MoveNext

        Loop
    End If
Next
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档