Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用VBA将新记录添加到Access中的ODBC链接表_Sql Server_Vba_Ms Access - Fatal编程技术网

Sql server 使用VBA将新记录添加到Access中的ODBC链接表

Sql server 使用VBA将新记录添加到Access中的ODBC链接表,sql-server,vba,ms-access,Sql Server,Vba,Ms Access,我正在尝试向VBA Access中的ODBC链接表添加新记录。当表是本地的,存储在Access数据库中时,没有问题。但是,当我将表上传到Azure SQL server并将其链接到Access数据库时,代码不再工作。代码位于按钮的“onclick”事件上 该代码用于添加用户何时登录到Access应用程序的快速记录。我已经为数据库的表单和报表链接了其他服务器表,没有问题。但以前从未在VBA中添加过记录。需要在VBA中执行此操作的原因是需要对用户隐藏 Dim Rst As Recordset

我正在尝试向VBA Access中的ODBC链接表添加新记录。当表是本地的,存储在Access数据库中时,没有问题。但是,当我将表上传到Azure SQL server并将其链接到Access数据库时,代码不再工作。代码位于按钮的“onclick”事件上

该代码用于添加用户何时登录到Access应用程序的快速记录。我已经为数据库的表单和报表链接了其他服务器表,没有问题。但以前从未在VBA中添加过记录。需要在VBA中执行此操作的原因是需要对用户隐藏

   Dim Rst As Recordset

         Set Rst = CurrentDb.OpenRecordset("tblLoginLog", dbOpenDynaset)
            With Rst
                .AddNew
                !User = ID
                !LoginDate = Now()
                .Update
            End With
tblLoginLog是表的名称, 用户是员工编号的编号字段, LoginDate是登录成功的日期字段


如果表本地存储在数据库中,代码可以工作,但是当表移动到服务器时,什么也不会发生。当我点击按钮时,实际上什么也没发生。没有错误消息,没有任何内容,并且当我打开表时,没有向表传递任何数据。

这是否有助于您在call
Set Rst=CurrentDb.OpenRecordset(“tblLoginLog”,dbOpenDynaset,dbSeeChanges)中添加
dbSeeChanges
选项。并检查是否为“tblLoginLog”表定义了主键。@我认为这是可行的-让我进一步测试,我会让您知道的。谢谢你advance@4dmonster在过去的几天里,我们一直在使用您建议的附加代码,现在它可以正常工作了。如果将来有人遇到此问题-
Set Rst=CurrentDb.OpenRecordset(“tblLoginLog”,dbOpenDynaset)
适用于本地表,
Set Rst=CurrentDb.OpenRecordset(“tblLoginLog”,dbOpenDynaset,dbSeeChanges)
适用于服务器表这是否有助于您在call
Set Rst=CurrentDb.OpenRecordset(“tblLoginLog”,dbOpenDynaset,dbSeeChanges)”中添加
dbSeeChanges
选项
。并检查是否为“tblLoginLog”表定义了主键。@我认为这是可行的-让我进一步测试,我会让您知道的。谢谢你advance@4dmonster在过去的几天里,我们一直在使用您建议的附加代码,现在它可以正常工作了。如果将来有人遇到此问题-
Set Rst=CurrentDb.OpenRecordset(“tblLoginLog”,dbOpenDynaset)
适用于本地表,
Set Rst=CurrentDb.OpenRecordset(“tblLoginLog,dbOpenDynaset,dbSeeChanges”)适用于服务器表