access数据库的锁定
⑴ 如何锁定ACCESS数据库的窗体,不让其它人修改
一般有三种方法保护ACCESS窗体
1)使用启动窗体或自定义宏菜单(在ACCESS选项——启动中设置),菜单——视图——工具栏——取消对"数据库"的勾选,——自定义, 取消勾选工具栏的勾选(自定义宏菜单除外,如果有的话),目的就是让用户看不到所有能更改数据库对象设计方案的菜单、工具栏、命令图标。但是这种方案很容易被破解,特别是对ACCESS数据库有一定研究的用户来说,尽管可以使用代码禁止shift键,但是破解方案是可以在网上查到的;
2)设置工作组安全机制
菜单——工具——安全——设置工作组安全机制向导,跟随向导指引设置,再设置不同用户的权限保护相关的数据库对象。这个方案保护性能比较高,类似大型数据库系统的用户级保护机制,但是设置复杂而且分发使用也比较麻烦,另外2007以后版本不支持该手段;
3)生成编译后的数据库文件(.mde 2003版本、.accde 2007及以后版本)生成方法略...
这种方法保护最彻底,几乎不存在破解的可能,但是一旦编译后就不再可以被修改,源数据库要小心保护好。
⑵ access数据库的记录如何锁定
当年我在这里也走了不少弯路,查了很多资料才发现问题很简单,下面就轻松实现锁定与解锁.
在窗体页眉中新建一个复选框或单选框,这里我用的是复选框(我取的名叫ChkLock),下面是这个复选框的单击事件
PrivateSubChkLock_Click()
DimctlAsControl
ForEachctlInMe.Section(0).Controls'Section(0)是主体的意思
Ifctl.ControlType=acTextBoxOrctl.ControlType=acComboBoxOrctl.ControlType=acCheckBoxThen
'或用类似下面这句
'Ifctl.Name<>"ChkLock"Andctl.Name<>"TxtFind"Andctl.ControlType<>acLabelThen
ctl.Locked=Me.ChkLock'这里就是实现锁定或解锁
EndIf
Next
EndSub
上面实现锁定的代码,下面实现自动锁定,不管你有没有忘记.利用窗体的Current事件(成为当前事件),如果要新建记录要自动解锁
PrivateSubForm_Current()
'检查是否要锁定
IfMe.NewRecordThen'如果是新建状态就可以编辑(将勾取消)
Me.ChkLock=False
Else
Me.ChkLock=True
EndIf
CallChkLock_Click'调用复选框的单击事件,在这里变成子程序
EndSub
最好把这个控制锁定的复选框放在窗体页眉上,不然连它都锁定了就没法解锁了.
附:
'Section(0)是主体的意思,这里就是指循环主体上的控件,页脚页眉上的控件就影响不到了,如你要,Section(1)表示是窗体页眉Section(2)表示是窗体页脚
ControlType属性是用于指定控件类型的固有常量。
常量控件
acBoundObjectFrame绑定对象框
acCheckBox复选框
acComboBox组合框
acCommandButton命令按钮
acCustomControlActiveX(自定义)控件
acImage图像
acLabel标签
acLine线条
acListBox列表框
acObjectFrame未绑定对象框或图表
acOptionButton选项按钮
acOptionGroup选项组
acPage页
acPageBreak分页符
acRectangle矩形
acSubform子窗体/子报表
acTabCtl选项卡
acTextBox文本框
acToggleButton切换按钮
⑶ ACCESS数据库锁定问题
如果是ACCESS数据库,应该是并发访问造成的问题。因为ACCESS没有行锁。所以你有个一个用户在网上改一条数据,另外一个用户再上来访问相同一条数据时就给锁了。重启动后所有的连接全断开了,所以就没问题了。如果有可能最好不用ACCESS做后台数据库
⑷ Access数据库连接关闭与.ldb文件锁定解决方法
常用的数据库连接方式:
Dim connstr
dim dbpath
dbpath="#123$asd31.mdb"
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open connstr
关闭语句不仅是.
(断开记录)
Rs.close
Set Rs=Nothing
还有:(断开连接)
Conn.Close
Set Conn=Nothing
排除上面的原因之后.
用ACCESS打开你的数据库,选择菜单中的[工具]->[选项]->[高级]
更改[默认打开模式]为[共享],更改[默认记录锁定]为[不锁定].
如仍然不行将下面的选项[使用记录级锁定]也取消.
确定后保存,然后打开,修复/压缩数据库.
删除目录中的LDB文件(如无法删除,先结束相关进程或重新启动计算机删除即可)
⑸ 要连接ACCESS数据库这时正在被使用使数据库被锁定,导致无法访问。解决方法
出现上述现像是因为你的数据库已经打开了.
解决方法很简单,重启一次计算机,然后再连接数据库.问题必定可以解决了.
⑹ 网站上的access数据库总是被锁死!
你asp里面的数据库连接打开之后没有及时关闭,到一定量的时候就会自动锁死。主要原因就在这里。你可以检查一下,及时释放recordset对象和connection对象一般就可以解决这个问题。
ldb文件是在打开数据库连接的时候就出现的,和访问者多少没有关系。
另外有时间的时候压缩一下数据库也可以提高一些性能。
⑺ asp访问access数据库出现锁定错误怎么处理
当某个用户以独占方式打开一个ACCESS数据库时(如对数据库某个数据表的字段进行增删改操作时),其他用户访问这个数据库就会出现锁定错误了;或者当某个用户正在以Update方法更新数据表中的某条记录时,其他用户也会出现短暂的锁定错误。
这种情况是必要的,因为不这样做就很有可能出现数据不同步甚至破坏整个数据库的情况。只有等造成锁定状态的用户退出连接或结束更新操作时,其他用户才能继续访问。如果对这种状况很介意,请改用真正的SQL网络数据库,ACCESS本身就是个单机文件型数据库,用作网络数据库并不是它的专长。
还有一种情况就是ACCESS数据库因为某个用户的错误操作(比如因异常关机造成数据库没有正确退出)而造成永久性的锁定状态,这时候就要通过ACCESS对其进行修复才行。
⑻ 如何解决ACCESS数据库锁定的问题
你在后面的代码一定要有conn.close,用语关闭数据库连接,否则只打开连接不关闭的话时间长了所有的连接就会都被占用.而程序无法申请到新的连接就会这样.
还有一种情况就是你使用XP做服务器,其中的系统连接数被限制到10个,这也会影响数据库的连接数量.