Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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
Vba 访问:多用户编辑,警告消息_Vba_Ms Access - Fatal编程技术网

Vba 访问:多用户编辑,警告消息

Vba 访问:多用户编辑,警告消息,vba,ms-access,Vba,Ms Access,我有一个数据库,在网络上由多个用户共享。当不同的用户打开数据库并编辑数据时,这不是问题。 但是,如果一条记录被多个用户打开,那么第二个用户将以只读形式获取表单,并且其数据库将冻结,因此他必须完全关闭数据库 我想知道如何编写代码,使msgbox具有关闭选项,以便他可以关闭和编辑另一条记录 谢谢您所描述的内容实际上附带了Access(OOTB),请参见此处: 在多用户数据库中,如果要使用乐观锁定并警告试图编辑表单上相同记录的用户,则可以使用“无锁定”设置。如果要防止两个或多个用户同时编辑数据,则可以

我有一个数据库,在网络上由多个用户共享。当不同的用户打开数据库并编辑数据时,这不是问题。 但是,如果一条记录被多个用户打开,那么第二个用户将以只读形式获取表单,并且其数据库将冻结,因此他必须完全关闭数据库

我想知道如何编写代码,使msgbox具有关闭选项,以便他可以关闭和编辑另一条记录

谢谢

您所描述的内容实际上附带了Access(OOTB),请参见此处:

在多用户数据库中,如果要使用乐观锁定并警告试图编辑表单上相同记录的用户,则可以使用“无锁定”设置。如果要防止两个或多个用户同时编辑数据,则可以使用“编辑记录”设置

因此,在VB中,为了实现更严格的控制:

Forms(“MyFormName”).RecordLocks=2

(仅限表单和查询)一旦任何用户开始编辑记录中的任何字段,记录页即被锁定,并保持锁定状态,直到用户移动到另一条记录。因此,记录一次只能由一个用户编辑。这也称为“悲观”锁定


在这种情况下,访问“冻结”不是正常行为。您的表单中记录锁和记录集类型属性的设置是什么?我知道这些选项也可以通过表单设计获得。我的问题是,目前在编辑的记录中,第二个用户被困在表单中,因此他无法退出表单(因为表单被锁定,无法关闭),唯一的选择是关闭整个访问。我想要的是在打开表单之前如何检测是否有人正在编辑记录(如果有人正在编辑记录,则终止操作或关闭表单)。他可以随时按Esc键(必要时多次)撤消更改并关闭表单。