繁体   English   中英

MS Access VBA直通查询连接字符串错误(ODBC)

[英]MS Access VBA Pass Through Query Connection String Error (ODBC)

我目前正在尝试使用连接到oracle数据库的VBA编写传递查询。 使用SQL Server Passthrough查询提供的答案作为Access中DAO记录集的基础作为开始的步骤,我有以下VBA代码。

Option Compare Database

Sub Test_PassThroughQuery()

Dim qdf As DAO.QueryDef, rst As DAO.Recordset
Set qdf = CurrentDb.CreateQueryDef("")
qdf.Connect = "ODBC;DSN=database_name;UID=username;PWD=password;DBQ=ADPR;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F;"
qdf.SQL = "SELECT * FROM DATE_TABLE"
qdf.ReturnsRecords = True
Set rst = qdf.OpenRecordset
Debug.Print rst
rst.Close
Set rst = Nothing
Set qdf = Nothing

End Sub

但是,这在Debug.Print rst上提示错误Type mismatch

对于连接字符串,我正在使用“属性”选项卡中的ODBC连接字符串。

编辑我是否在不正确地调用Debug.print rst行?

有许多方法可以创建传递查询。 如果要在Access中保存传递查询,则可以设置CreateQueryDef的第一个参数:

Sub Test_PassThroughQuery()
    Dim qdf As DAO.QueryDef, rst As DAO.Recordset
    Set qdf = CurrentDb.CreateQueryDef("MyPassthroughQuery")
    qdf.Connect = "ODBC;DSN=database_name;UID=username;PWD=password;DBQ=ADPR;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F;"
    qdf.SQL = "SELECT * FROM DATE_TABLE"
    qdf.ReturnsRecords = True
    DoCmd.OpenQuery "MyPassthroughQuery"
End Sub

这将创建一个保存的查询,并打开它。

您还可以在Access中查询外部数据源,这使您可以使用查询设计器,并在单个查询中使用本地表和外部数据:

SELECT *
FROM [ODBC;DSN=database_name;UID=username;PWD=password;DBQ=ADPR;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F;].DATE_TABLE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM