Yo utilizo mucho código SQL, no soy un fanático de crear consultas y luego referenciarlas en mi código puesto que los usuarios pueden editarlas o borrarlas.

En muchas ocasiones construyo cadenas SQL y luego necesito depurarlas en mi ventana de consultas, en el pasado solía tomar el valor de mis cadenas y lo pegaba en una nueva ventana de sentencias SQL. Me cansé de hacer esto todo el tiempo, por lo que cree una pequeña función que lo hace por mí.

Public Function PopQuerySQL(strSQL As String, strQueryName As String)
Dim qdf As DAO.QueryDef
On Error GoTo PopQuerySQL_Error
DoCmd.Close acQuery, strQueryName
DoCmd.DeleteObject acQuery, strQueryName
Set qdf = CurrentDb.CreateQueryDef(strQueryName, strSQL)
Set qdf = Nothing
DoCmd.OpenQuery strQueryName, acViewNormal
On Error GoTo 0
Exit Function
PopQuerySQL_Error:
If Err.Number = 7874 Then
Resume Next ‘Query does not exist
End If
MsgBox «Error » & Err.Number & » (» & Err.Description & «) in procedure PopQuerySQL of Module mdlAPI»
End Function
Ahora solo utilizo este código con mi variable SQL en la ventana actual:
PopQuery strSQL, «qryTemp»
Me ahorra mucho tiempo espero que también lo haga con ustedes.
Juan