我在Access 2003中有一个链接到MS SQL服务器表的表。 我可以进入Access表,手动更新它并查看更改 反映在MS Sql server表中。
但是,我甚至无法打开表格并将结果放入我的VBA代码中的记录集中。
Set rs = CurrentDb.OpenRecordset("dbo_tbl_EventLogs", dbOpenTable)
(rs总是什么都没有)
同一行代码适用于“本地”Access表。
答案 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)