sql - txt - unir dos tablas en access
Usando VBA para exportar todas las consultas de MS Access SQL a archivos de texto (4)
- En la ventana de VB, haga clic en
Tools->References....
- En la ventana Referencias, agregue la dependencia
Microsoft Scripting Runtime
marcándola.
Entonces este código exportará las consultas a un archivo adecuado para usar grep en:
Sub ExportQueries()
Dim fso As New FileSystemObject
Dim stream As TextStream
Set stream = fso.CreateTextFile("e:/temp/queries.txt")
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Set db = CurrentDb()
For Each qdf In db.QueryDefs
stream.writeline "Name: " & qdf.Name
stream.writeline qdf.SQL
stream.writeline "--------------------------"
Next qdf
Set qdf = Nothing
Set db = Nothing
End Sub
Tengo que documentar una base de datos de MS Access con muchas consultas de macros, etc. Deseo usar código para extraer cada consulta SQL a un archivo que tiene el mismo nombre que la consulta, por ejemplo, si una consulta se llama q_househouse_issues, entonces deseo extraer el SQL a un archivo llamado q_warehouse_issues.sql
NO DESEO EXPORTAR EL CONJUNTO DE RESULTADOS DE LA CONSULTA, ¡SÓLO EL SQL!
Sé que puedo hacerlo manualmente en Access, pero estoy cansado de todos los clics, hacer saveas, etc.
Espero que esto ayude.
Public Function query_print()
Dim db As Database
Dim qr As QueryDef
Set db = CurrentDb
For Each qr In db.QueryDefs
TextOut (qr.Name)
TextOut (qr.SQL)
TextOut (String(100, "-"))
Next
End Function
Public Sub TextOut(OutputString As String)
Dim fh As Long
fh = FreeFile
Open "c:/File.txt" For Append As fh
Print #fh, OutputString
Close fh
End Sub
Esta solución incluye campos en la consulta
Public Sub ListQueries()
'' Author: Date: Contact:
'' André Bernardes 09/09/2010 08:45 [email protected] http://al-bernardes.sites.uol.com.br/
'' Lista todas as queries da aplicação.
'' Listening:
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
On Error Resume Next
For i = 0 To CurrentDb.QueryDefs.Count - 1
Debug.Print "Query: " & CurrentDb.QueryDefs(i).Name
For j = 0 To CurrentDb.QueryDefs(i).Fields.Count - 1
Debug.Print "Field " & CurrentDb.QueryDefs(i).Fields(j).Name
Next
Debug.Print " SQL: " & CurrentDb.QueryDefs(i).SQL
Next
End Sub
Esto debería comenzar:
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Set db = CurrentDB()
For Each qdf In db.QueryDefs
Debug.Print qdf.SQL
Next qdf
Set qdf = Nothing
Set db = Nothing
Puede usar el objeto del sistema de archivos o las funciones integradas de E / S del archivo VBA para escribir el SQL en un archivo. Supongo que estaba preguntando más sobre cómo obtener el SQL que sobre cómo escribir el archivo, pero si lo necesita, dígalo en un comentario y lo editaré (o alguien publicará su propia respuesta con instrucciones para eso).