使用DAO和VBA创建ODBC-Connection的直通QueryDef

时间:2019-10-29 08:35:25

标签: vba ms-access dao

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

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

  1. 创建查询
  2. 将其设置为直通
  3. 设置ODBC连接字符串
  4. 输入声明

enter image description here

如何通过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项中有connection-String:

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

您可以找到其他设置alos,但我不知道如何使用VBA进行设置。

1 个答案:

答案 0 :(得分:0)

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

要使用它,您所需要做的就是根据需要调整SQL:

Dim qdf As QueryDef

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

,然后打开表单。

修改

要创建“主”查询的副本,请执行以下操作:

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