繁体   English   中英

无法在VBA代码中打开到MS SQL Server的Linked Access 2003表

[英]Unable to open Linked Access 2003 table to MS SQL Server in VBA code

我在Access 2003中有一个链接到MS SQL Server表的表。 我能够进入Access表,手动对其进行更新,并查看反映在MS Sql服务器表中的更改。

但是,我什至无法打开表并将结果放入VBA代码中的记录集中。

Set rs = CurrentDb.OpenRecordset("dbo_tbl_EventLogs", dbOpenTable)

(rs总是一无是处)

相同的代码行适用于“本地” Access表。

考虑使用dbOpenDynaset选项,该选项默认用于链接表或存储的查询,而dbOpenTable用于本地表,如OpenRecordset()方法所述:

如果在Microsoft Access工作区中打开记录集,但未指定类型,则OpenRecordset会创建表类型的Recordset(如果可能)。 如果指定链接表或查询,则OpenRecordset会创建动态集类型的Recordset。

Set rs = CurrentDb.OpenRecordset("dbo_tbl_EventLogs", dbOpenDynaset)

您需要使用ADO连接到数据库。 很简单。 只需更改您的信息即可享受。

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

ServerName = "yourServer,yourPort(example: 1442)" 'Enter your server name and a port here
DatabaseName = "yourDBinTheServer" 'Enter your  database name here
UserID = "yourUserID" 'Enter your user ID here
Password = "yourPassword" 'Enter your password here

Set rs = New ADODB.Recordset
Set cn = New ADODB.Connection

cn.Open "Driver={SQL Server};Server=" & ServerName & ";Database=" & DatabaseName & ";Uid=" & UserID & ";Pwd=" & Password & ";"
rs.open yourQueryAsString, cn

确保存储用于连接数据库的用户凭据...(属性dbAttachSavePWD)

暂无
暂无

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

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