通过 VBA 创建一个带有 DAO 和 ODBC 连接的直通 QueryDef

Create a passthrough QueryDef with DAO and a ODBC-Connection by VBA

我的目标是通过 vba 创建一个 QueryDef,这与我在 GUI 中创建的相同。

这是我在 GUI 中使用的步骤:

  1. 创建查询
  2. 设置为直通
  3. 设置ODBC连接字符串
  4. 输入语句

如何通过 VBA 进行设置并在当前表单中将 queryDef 用作 RecordSource?

Dim qdf As QueryDef
Set qdf = CurrentDb.CreateQueryDef("test", "select * from test;")

'passthrough?
'connection string?
'set as RecordSource?

我发现,有一个 Properties-Collection。当我调查一个 GUI 查询时,我看到连接字符串在第 6 项中:

Debug.Print qdfTmp.Properties.Item(6).Name
> Connect

你可以找到其他设置alos,但我不知道如何设置VBA。

简单的方法是创建并检查一个PT查询,然后保存它,为这个表格保留它,并设置将此查询作为其 RecordSource 的表单。

要使用它,您只需根据需要调整 SQL:

Dim qdf As QueryDef

Set qdf = CurrentDb.QueryDefs("ThisFormPTQuery")
qdf.SQL = "select * from test;"

然后打开表格。

编辑:

要创建 "master" 查询的副本:

DoCmd.CopyObject , "NewQuery", acQuery, "MasterQuery"