我有一个数据库,我工作场所的很多人都有excel文件和链接表等。
有些时候我必须拥有对数据库的独占访问权限,并且无法使用不能正确破坏和修改它们的链接来跟踪数百个可能的excel文件;特别是当人们不断创建新文件时。
我找到了以下代码,可以让我看到是否有人连接到数据库的前端:
Sub ShowUserRosterMultipleUsers()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim i, j As Long
Set cn = CurrentProject.Connection
' The user roster is exposed as a provider-specific schema rowset
' in the Jet 4.0 OLE DB provider. You have to use a GUID to
' reference the schema, as provider-specific schemas are not
' listed in ADO's type library for schema rowsets
Set rs = cn.OpenSchema(adSchemaProviderSpecific, _
, "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
'Output the list of all users in the current database.
Debug.Print rs.Fields(0).Name, "", rs.Fields(1).Name, _
"", rs.Fields(2).Name, rs.Fields(3).Name
While Not rs.EOF
Debug.Print rs.Fields(0), rs.Fields(1), _
rs.Fields(2), rs.Fields(3)
rs.MoveNext
Wend
End Sub
是否有任何代码可以执行与此相同的操作来为我提供后端连接?与谁有一个打开的excel文件链接并将DB锁定为只读?
答案 0 :(得分:0)
1)您可以打开与任何数据库的连接。您已经使用了“CurrentProject.Connection”,但您可以使用:
set cn=Server.CreateObject("ADODB.Connection")
cn.Provider="Microsoft.Jet.OLEDB.4.0"
cn.Open "c:/webdata/northwind.mdb"
2)如果方法(1)不合适,您可以使用ODBC查询WMI并获取连接到任何特定文件的每个人的列表。