Access de Xavi

Objetos => Consultas => Mensaje iniciado por: xavi en Abril 13, 2012, 11:59:26 pm

Título: Almacenar SQL de las consultas
Publicado por: xavi en Abril 13, 2012, 11:59:26 pm
Palabras clave: consultas, sql, almacenar, extraer, obtener
Autor: Búho
Extraído de: La web del Búho

Pregunta
La pregunta es como hago para obtener el codigo fuente de una consulta en Access. Existe alguna tabla interna que guarde ese codigo.???????

El objetivo el leer las consultas y generar un scrip para migrar a SQL, ya que estas consulta no las migra ni el DTS, ni el wizard de migracion.

El Búho nos proporciona este código
Código: [Seleccionar]
Option Explicit
Function SacaSqlDeTodasConsultas()
 'Recorre todas las consultas de la MDB y
 'saco su valor SQL como string y lo deposito en una tabla
 'llamada TblAlmacenaSql que tiene dos campos
 'StrSql y StrNombre
 'StrSql=la sql en string
 'StrNombre = nombre de la consulta de la que procede
 On Error GoTo Err_ControlError
 Dim ColeccionQuerys As QueryDef, RstConsultas As Recordset, SqlTabla As String
 SqlTabla = "Select * From TblAlmacenaSql"
 Set RstConsultas = CurrentDb.OpenRecordset(SqlTabla, dbOpenDynaset)
 For Each ColeccionQuerys In CurrentDb.QueryDefs
   With RstConsultas
    .AddNew
    !Strsql = ColeccionQuerys.SQL
    !StrNombre = ColeccionQuerys.Name
    .Update
    End With
 Next
 RstConsultas.Close
 Set RstConsultas = Nothing
    Exit Function
Exit_ControlError:
    Exit Function

Err_ControlError:
    MsgBox Err.Description
    Resume Exit_ControlError
End Function