¿Cómo ejecutar un bucle de consultas en el acceso?

Tengo una database con una tabla que está llena de condiciones y posts de error para verificar otra database.

Quiero ejecutar un ciclo de modo que cada una de estas condiciones se compruebe contra todas las tablas en la segunda database y genere un informe que proporcione los errores.

¿Es esto posible en ms access?

Por ejemplo,

tabla querycrit

id query error 1 speed<25 and speed>56 speed above limit 2 dist<56 or dist >78 dist within limit 

Tengo más de 400 consultas como esta de diferentes variables.

La tabla en la que estoy ejecutando las consultas es

tabla de loggings

 id speed dist accce decele aaa bbb ccc 1 33 34 44 33 33 33 33 2 45 44 55 55 55 22 23 

Respecto a ttk

Aquí hay un código de muestra más. Ilustra el uso de dos types diferentes de sets de loggings. Puede leer Traps de VBA: Trabajar con Recordsets por Allen Browne y Lista de palabras reservadas en Access 2002 y en versiones posteriores de 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 tampenetworking 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 

Cuando dices "informe", ¿te refieres a un Informe de acceso, o escribirías en un file o en un Formulario de acceso?

Puede crear una function o sub en un Módulo para hacer esto. Abra un set de loggings en su tabla querycrit y recorra los loggings de forma dinámica construyendo y ejecutando el SQL para la tabla de loggings. Puede escribir los resultados de estas consultas dinámicas en un file, o un formulario, o insert los resultados en una tabla temporal e impulsar el Informe de acceso desde allí.

"en realidad, hay muchas tablas de loggings para verificar y no todas las consultas se pueden ejecutar en todas las tablas, por ejemplo, en una tabla, la velocidad puede no estar allí y en la siguiente tabla la distancia puede no estar allí".

Creo que lo correcto sería crear una tabla de tablas y una tabla de unión de tabla de consulta que muestre qué consultas se ejecutarán en cada tabla, por ejemplo:

 TableID QueryID 1 4 2 1 2 3 3 1 

Esto se puede usar para ejecutar el set correcto de consultas en cada tabla.

Aquí hay un código de muestra, está escrito, no probado.

 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