从Excel VBA连接到只读Access数据库

时间:2014-04-29 18:51:13

标签: excel vba adodb ms-jet-ace

我一直是stackoverflow的长期访问者,但这是我的第一个问题。

我正在尝试在用户只具有只读访问权限的文件夹中查询Access 2010数据库。

     strDBPath = <full path of accdb>

     Set myConn = New ADODB.Connection
     myConn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _ 
                 "Mode=Read; Data Source=" & strDBPath

     Set myRS = New ADODB.Recordset
     myRS.ActiveConnection = myConn     

myConn.Open行显示“当前正在使用的文件”错误。如果我将accdb移动到用户可以写的文件夹,代码运行正常。

提前感谢任何建议!

2 个答案:

答案 0 :(得分:0)

Wie还与Access数据库建立了连接,但我非常确定我们还对该文件夹具有写权限。

我们使用的代码就在这里。

   Dim DB As DAO.Database
   Dim QRY As DAO.QueryDef
   Dim Rs As DAO.Recordset
   Public Ersteller As String

   'Prüft die Verbindung zur DB
   Public Function OpenDB() As Integer

      'Informationen über Database'
      Dim Database As Variant
      Database = Worksheets("Anträge").Range("B3").Value

      'Check Datenbank Verbindung
      On Error Resume Next
      Set DB = CreateObject("DAO.DBEngine.120").OpenDatabase(Database)
      If Err.Number <> 0 Then
          MsgBox "Keine Verbindung zur Datenbank möglich!"
      End If
      OpenDB = Err.Number

   End Function

Mayebe有帮助。 :)

答案 1 :(得分:-1)

可以访问只读文件夹中的数据库(当然是Mode = Read),但前提是该数据库未被任何其他用户使用(这意味着没有.ldb文件)。但是,只有一个用户能够访问。所以任何人调用数据库(即使它是由excel完成)锁定任何其他人。 : - (