Pie*_*ber 27 sql ms-access access-vba
我必须使用许多宏查询来记录MS Access数据库等.我希望使用代码将每个SQL查询提取到与查询命名相同的文件,例如,如果查询名为q_warehouse_issues,那么我希望提取SQL到名为q_warehouse_issues.sql的文件
我不希望导出QUERY结果集,只是SQL!
我知道我可以在Access中手动执行此操作,但我厌倦了所有点击,执行saveas等.
Dav*_*ton 27
这应该让你开始:
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
Run Code Online (Sandbox Code Playgroud)
您可以使用文件系统对象或内置的VBA文件I/O功能将SQL写入文件.我假设您要求的更多关于如何获取SQL而不是关于如何写出文件,但是如果您需要,请在评论中这样说,我将编辑帖子(或者有人会发布他们自己的答案说明).
小智 18
希望这可以帮助.
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
Run Code Online (Sandbox Code Playgroud)
小智 8
此解决方案包括查询中的字段
Public Sub ListQueries()
' Author: Date: Contact:
' André Bernardes 09/09/2010 08:45 bernardess@gmail.com 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
Run Code Online (Sandbox Code Playgroud)
Tools->References.... Microsoft Scripting Runtime通过选中它来添加依赖项。然后此代码会将查询导出到适合使用 grep 的文件:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33469 次 |
| 最近记录: |