返回首页
当前位置: 主页 > 其他教程 > Access教程 >

Access如何判断是否以独占方式打开当前数据库?

时间:2012-12-30 00:45来源:Office教程学习网 www.office68.com编辑:麦田守望者

问题:

 

如何判断是否以独占方式打开当前数据库?

Dim conn As New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=L:\IBM WinXP\desktop\mdb\重复记录.mdb;Mode=Share Deny Read|Share Deny Write;"


独占方式打开了数据库,在不知道的情况下如何判断呢?
 

 

 

方法一:

 


很简单,只要判断 currentproject.connection.ConnectionString中是否包含以下字母
Share Deny Read|Share Deny Write
写一个函数就可以判断:

Function testLockMode()
If InStr(CurrentProject.Connection.ConnectionString, "Share Deny Read|Share Deny Write") > 0 Then
MsgBox "本数据库已经用独占方式打开"
Else
MsgBox "本数据库未用独占方式打开"
End If
End Function

 

以下是 debug.print CurrentProject.Connection.ConnectionString 的结果

Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=L:\IBM WinXP\desktop\mdb\重复记录.mdb;Mode=Share Deny Read|Share Deny Write;Extended Properties="";Jet OLEDB:System database=C:\Documents and Settings\ec\Application Data\Microsoft\Access\System.mdw;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=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet 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=Admin;Data Source=L:\IBM WinXP\desktop\mdb\重复记录.mdb;"
If Err.Number = -2147467259 Then
MsgBox "文件已经在使用中,估计是被别人以独占方式打开了"
End If
End Function


 

 

 

方法三:

 

当然,你还可以直接读取currentdb属性来判断是否已经被独占打开

------分隔线----------------------------
标签(Tag):access access数据库 数据库 access视频教程 access教程 access技巧 access下载
------分隔线----------------------------
推荐内容
猜你感兴趣