我有一个带有表的数据库,该表充满了用于检查另一个数据库的条件和错误消息。
我想运行一个循环,以便对照第二个数据库中的所有表检查所有这些条件,并生成一个给出错误的报告。
这是可能的ms访问。
例如,
querycrit表
id query error 1 speed<25 and speed>56 speed above limit 2 dist<56 or dist >78 dist within limit
我有超过400个类似这样的不同变量的查询。
我针对其运行查询的表是
记录表
id speed dist accce decele aaa bbb ccc 1 33 34 44 33 33 33 33 2 45 44 55 55 55 22 23
这是更多示例代码。它说明了两种不同类型的记录集的用法。您可能希望阅读VBA陷阱: Allen Browne的Recordsets和Access 2002和更高版本的Access中的保留字列表 。
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