Sql server 如何连接到Access 2016 VBA中的新数据源?
我的部门使用使用VBA和Access 2016创建的应用程序。它最初指向我们其中一台服务器上的Access数据库。将数据迁移到其他服务器后,我现在需要它指向该不同服务器上的其他SQL server数据库。但我似乎无法建立联系 我对所讨论的服务器具有dbowner权限 连接字符串的原始代码如下所示:Sql server 如何连接到Access 2016 VBA中的新数据源?,sql-server,vba,ms-access,Sql Server,Vba,Ms Access,我的部门使用使用VBA和Access 2016创建的应用程序。它最初指向我们其中一台服务器上的Access数据库。将数据迁移到其他服务器后,我现在需要它指向该不同服务器上的其他SQL server数据库。但我似乎无法建立联系 我对所讨论的服务器具有dbowner权限 连接字符串的原始代码如下所示: '删除筛选器,关闭登录表单,然后打开交换机 rst.Filter=0 文档关闭acForm,“frmUserLogOn” “打开总机 DoCmd.OpenForm“frmMain”,acNormal
'删除筛选器,关闭登录表单,然后打开交换机
rst.Filter=0
文档关闭acForm,“frmUserLogOn”
“打开总机
DoCmd.OpenForm“frmMain”,acNormal
'以隐藏模式打开InactiveShutDown窗体
DoCmd.OpenForm“frmInactiveShutDown”,acNormal,,已完成
...
Set conn=CurrentProject.Connection
...
rstLog.打开“tblUserLog”,康涅狄格州,adOpenKeyset,ADLOCK
rstLog.AddNew
rstLog!UserID=rst!用户ID
rstLog!TimeIn=Now()
rstLog.Update
我的新代码如下:
“DoCmd.OpenForm”frmInactiveShutDown”,acNormal,,已完成
"他批驳了上述说法
...
'设置连接=CurrentProject.Connection
'==================================================================
'为SQL迁移添加代码的开始
Set conn=新的ADODB.连接
与康涅狄格州
.ConnectionString=“Provider=SQLNCLI11;数据源=(我的服务器名称);初始目录=(我的数据库名称);用户ID=(用户名);密码=(密码)”
打开
如果.State=adStateClosed,则
MsgBox“连接失败。无法打开连接。”,vbInformation,“错误:”
如果结束
以
Set rst=New ADODB.Recordset
用rst
.ActiveConnection=conn
.CursorLocation=adUseClient
.CursorType=adOpenStatic
.LockType=adlockType
.打开“tbl_用户”
以
'添加的SQL迁移代码结束-请参阅第2节了解其余代码。
'==================================================================
...
"治罪法"第二节
'==================================================================
'为SQL迁移添加代码的开始
rstLog.打开“tblUserLog”,康涅狄格州,adOpenStatic,ADLOCK
rstLog.AddNew
rstLog!UserID=rst!用户ID
rstLog!TimeIn=DateTime.Now()
rstLog.Update
MsgBox“成功!连接成功”。vbInformation
'添加的SQL迁移代码结束
'===================================================================
“我的表单”有一个下拉列表,用于从表中选择用户列表。我在该表中添加了一个测试用户,但该测试用户没有显示在下拉列表中。因此,我认为这两者之间没有联系
我是否必须在引号中输入数据源名称、初始目录、用户ID和密码?所以UserID='Admin';密码=“测试”
有人知道我做错了什么吗?基本上,在本地Access前端数据库和后端SQL Server数据库之间存在相同命名表的版本混淆。目前,您的代码更新SQL Server后端端的tblUserLog,而Access前端端的tblUserLog可能与绑定到表单的tblUserLog不同。因此,您无法看到任何更新,因为服务器表从未显示 只需做两件事中的一件:
您是否给出错误消息?当您尝试时会发生什么?这不是VB.NET代码。同样,引号是正确的,但我认为用户ID应该是uid或UserID(全部加在一起)。没有错误消息。我得到一个提示,它已成功连接。当我使用这些详细信息运行搜索查询时,它不会显示在数据库中。我认为它仍然在本地存储信息。我想知道表单本身是否与其他来源有连接。您是说您添加的用户没有进入您连接的SQL数据库,但没有发生错误?