我有几个通过查询设计向导创建的传递查询存储在ms-access中。我只是将代码从我的本地.sql文件复制并粘贴到 Access 中的 sql 视图编辑器中并保存。一切正常。
但是,我想从访问运行我的外部.sql文件。我的外部.sql文件位于本地文件夹中。这样,当我将某些内容更改为任一查询时,我就不必更新我的外部.sql文件和我在 ms-access 中存储的查询。
就其价值而言,我所有的传递查询都是"从中选择 * FROM">
有没有办法做到这一点?
正如@GordonThompson建议的那样,只需将.sql的内容(这是一个文本文件,就像任何其他编程脚本一样(读取到.QueryDef 的 SQL 属性(引用已保存的查询(。
Sub ReadAndSaveSQL()
Dim LoadFileStr As String
Dim qdef As QueryDef
' READ .SQL INTO A STRING VARIABLE
With CreateObject("Scripting.FileSystemObject")
LoadFileStr = .OpenTextFile("C:PathToScript.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