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

时间:2016-10-05 19:52:08

标签: sql-server vba ms-access access-vba

我在Access 2003中有一个链接到MS SQL服务器表的表。 我可以进入Access表,手动更新它并查看更改 反映在MS Sql server表中。

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

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

(rs总是什么都没有)

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

3 个答案:

答案 0 :(得分:2)

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

  

如果您在Microsoft Access工作区中打开一个Recordset而您没有   指定一个类型,OpenRecordset创建一个表类型Recordset,if   可能。如果指定链接表或查询,则为OpenRecordset   创建一个动态集类型Recordset。

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

答案 1 :(得分:0)

您需要使用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

答案 2 :(得分:0)

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