如何在 ms-access 中执行外部 .sql 文件传递查询
How to execute an external .sql file pass-through query in ms-access
我有几个传递查询存储在 ms-access 中,它们是通过查询设计向导创建的。我只是将本地 .sql 文件中的代码复制并粘贴到访问中的 sql 视图编辑器中并保存。一切 运行 都很好。
但是,我想 运行 我的外部 .sql 文件无法访问。我的外部 .sql 文件位于本地文件夹中。这样,当我将某些内容更改为任一查询时,我不必更新我的外部 .sql 文件和我在 ms-access 中存储的查询。
就其价值而言,我所有的传递查询都是 'SELECT * FROM '
有办法吗?
正如@GordonThompson 所建议的那样,只需将您的内容 .sql(这是一个与任何其他编程脚本一样的文本文件)读入 .SQL property of a QueryDef(引用您保存的查询)。
Sub ReadAndSaveSQL()
Dim LoadFileStr As String
Dim qdef As QueryDef
' READ .SQL INTO A STRING VARIABLE
With CreateObject("Scripting.FileSystemObject")
LoadFileStr = .OpenTextFile("C:\Path\To\Script.sql", 1).readall
End With
' INITIALIZE QUERYDEF
Set qdef = CurrentDb.QueryDefs("mySavedPassThroughQuery")
qdef.SQL = LoadFileStr ' REWRITE QUERY'S SQL
qdf.Close ' CLOSE AND SAVE QUERY
Set qdef = Nothing ' UNINITIALIZE QUERYDEF
DoCmd.OpenQuery "mySavedPassThroughQuery" ' OPEN SELECT QUERY TO SCREEN
End Sub
我有几个传递查询存储在 ms-access 中,它们是通过查询设计向导创建的。我只是将本地 .sql 文件中的代码复制并粘贴到访问中的 sql 视图编辑器中并保存。一切 运行 都很好。
但是,我想 运行 我的外部 .sql 文件无法访问。我的外部 .sql 文件位于本地文件夹中。这样,当我将某些内容更改为任一查询时,我不必更新我的外部 .sql 文件和我在 ms-access 中存储的查询。
就其价值而言,我所有的传递查询都是 'SELECT * FROM '
有办法吗?
正如@GordonThompson 所建议的那样,只需将您的内容 .sql(这是一个与任何其他编程脚本一样的文本文件)读入 .SQL property of a QueryDef(引用您保存的查询)。
Sub ReadAndSaveSQL()
Dim LoadFileStr As String
Dim qdef As QueryDef
' READ .SQL INTO A STRING VARIABLE
With CreateObject("Scripting.FileSystemObject")
LoadFileStr = .OpenTextFile("C:\Path\To\Script.sql", 1).readall
End With
' INITIALIZE QUERYDEF
Set qdef = CurrentDb.QueryDefs("mySavedPassThroughQuery")
qdef.SQL = LoadFileStr ' REWRITE QUERY'S SQL
qdf.Close ' CLOSE AND SAVE QUERY
Set qdef = Nothing ' UNINITIALIZE QUERYDEF
DoCmd.OpenQuery "mySavedPassThroughQuery" ' OPEN SELECT QUERY TO SCREEN
End Sub