可以在VB程序中以独占方式打开方式添加不了程序ACCESS数据库吗

2000年9月 VB大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。2003年7月 总版技术专家分月排行榜第三
2013年7月 荣获微软MVP称号2012年7月 荣获微软MVP称号2006年1月 荣获微软MVP称号2008年1月 荣获微软MVP称号2007年1月 荣获微软MVP称号2005年1月 荣获微软MVP称号2003年9月 荣获微软MVP称号
2003年7月 总版技术专家分月排行榜第三
2013年7月 荣获微软MVP称号2012年7月 荣获微软MVP称号2006年1月 荣获微软MVP称号2008年1月 荣获微软MVP称号2007年1月 荣获微软MVP称号2005年1月 荣获微软MVP称号2003年9月 荣获微软MVP称号
2003年7月 总版技术专家分月排行榜第三
2013年7月 荣获微软MVP称号2012年7月 荣获微软MVP称号2006年1月 荣获微软MVP称号2008年1月 荣获微软MVP称号2007年1月 荣获微软MVP称号2005年1月 荣获微软MVP称号2003年9月 荣获微软MVP称号
本帖子已过去太久远了,不再提供回复功能。Access俱乐部
?&&&&?&&&&?&&&&?&&&&
您的位置:  > >
如何判断是否以独占方式打开当前数据库?
来源:&&点击数:6733&&评论数:0 &|&&|&
时 间: 08:12:11
作 者:&&&ID:16058&&城市:江阴
摘 要:在链接或者用ADO操作其他数据库时,如果被操作的数据库已经被某用户以独占方式打开,就会出错,如何预先判断该数据库是否已经被独占打开?
很简单,只要判断 currentproject.connection.ConnectionString中是否包含以下字母
Jet OLEDB:Database Locking Mode=0
写一个函数就可以判断:
Function testLockMode()
&&& If InStr(CurrentProject.Connection.ConnectionString, "Jet OLEDB:Database Locking Mode=0") & 0 Then
&&&&&&& MsgBox "本数据库已经用独占方式打开"
&&&&&&& MsgBox "本数据库未用独占方式打开"
&&& End If
End Function
以下是 debug.print CurrentProject.Connection.ConnectionString 的结果供参考:
Provider=Microsoft.Jet.OLEDB.4.0;User ID=AData Source=L:\IBM WinXP\desktop\mdb\重复记录.Mode=Share Deny Read|Share Deny WExtended Properties="";Jet OLEDB:System database=C:\Documents and Settings\ec\Application Data\Microsoft\Access\System.Jet OLEDB:Registry Path=SOFTWARE\Microsoft\Office\10.0\Access\Jet\4.0;Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=FJet OLEDB:Encrypt Database=FJet OLEDB:Don't Copy Locale on Compact=FJet OLEDB:Compact Without Replica Repair=FJet OLEDB:SFP=False
很简单,你只要在程序中尝试用独占方式打开数据库即可,如果返回了错误号加以判断即可。就像本站中的很多问题解决方法类似,用错误陷阱即可判断了
Function testLockMode()
&&& On Error Resume Next
&&& Dim conn As New ADODB.Connection
&&& conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;User ID=AData Source=L:\IBM WinXP\desktop\mdb\重复记录.Jet OLEDB:Database Locking Mode=0;"
&&& If Err.Number = - Then
&&&&&&& MsgBox "文件已经在使用中,估计是被别人以独占方式打开了"
&&& End If
End Function
当然,你还可以直接读取currentdb属性来判断是否已经被独占打开
      
&&&&【&&】&&&&【&&】&&&&【&&】&&&&【&&】
Access网店
价格:¥400 元
价格:¥50 元
价格:¥100 元
(11-13 10:56)
(11-13 10:48)
(11-12 17:18)
(11-12 14:03)
(11-11 08:26)
(11-10 15:36)
(11-10 15:10)
(11-09 17:27)
(11-09 17:00)
(11-09 14:06)
Access软件网 版权所有 CopyRight
提供支持 本站特聘法律顾问: 李慧 律师

我要回帖

更多关于 打开方式无法添加程序 的文章

 

随机推荐