hon*_*rzz 0 ms-access vba pass-through
我在 ms-access 中存储了几个通过查询设计向导创建的直通查询。我只是将本地 .sql 文件中的代码复制并粘贴到 access 中的 sql 视图编辑器中并保存。一切都运行良好。
但是,我想通过访问运行我的外部 .sql 文件。我的外部 .sql 文件位于本地文件夹中。这样,当我对任一查询进行更改时,我不必更新外部 .sql 文件和 ms-access 中存储的查询。
就其价值而言,我所有的传递查询都是“SELECT * 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:\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
Run Code Online (Sandbox Code Playgroud)