查看后端从Excel访问DB的连接

时间:2017-01-20 17:06:55

标签: excel ms-access access-vba ms-access-2010 access

我有一个数据库,我工作场所的很多人都有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锁定为只读?

1 个答案:

答案 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并获取连接到任何特定文件的每个人的列表。