我有一个数据库,其中包含一个表,其中包含用于检查另一个数据库的条件和错误消息。
我想运行一个循环,以便针对第二个数据库中的所有表检查这些条件中的每一个,并生成一个给出错误的报告。
在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
关于ttk
发布于 2019-03-27 08:22:30
这是一些示例代码,它是键入的,未经过测试。
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
发布于 2019-03-27 09:33:42
这是一些示例代码。它说明了两种不同类型记录集的使用。您可能希望阅读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
https://stackoverflow.com/questions/-100001052
复制相似问题