【问题标题】:View Back end Connections to Access DB from Excel从 Excel 查看到 Access DB 的后端连接
【发布时间】:2023-03-12 00:30:01
【问题描述】:

我有一个数据库,我工作场所的许多人都有带有链接表等的 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 文件,该文件已链接并将数据库锁定为只读?

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 1) 是我在我的 excel 文件中使用的方法;当有人在使用该连接的数据库中时,它会阻止其他用户访问它。你能详细说明2)的方法吗?
  • ^ 见上面的评论@david
猜你喜欢
  • 2014-06-15
  • 2018-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多