Microsoft.Ace.OLEDB.16.0

时间:2017-07-14 13:26:16

标签: database vba excel-vba ms-access excel-vba-mac

任何人都可以帮助我理解为什么Microsoft.Ace.OLEDB.16.0在使用Office 2016 x86的Windows 10 x64上不起作用? 使用以下代码打开与-2147467259 (80004005)的连接时,我收到运行时错误OLEDB 16.0

Public Sub ValidityDateCheck_SRT_Templates()

NameFile = "x"

    sConn = "Provider=Microsoft.ACE.OLEDB.16.0;WSS;IMEX=1;RetrieveIds=Yes;" & _
        "DATABASE=" & sSHAREPOINT_SITE & ";" & _
        "LIST=" & sDEMAND_ROLE_GUID_ML & ";"

Set cn = New ADODB.Connection
Set rst = New ADODB.Recordset

With cn
    .ConnectionString = sConn
    .Open  '--> **HERE I GET THE ERROR**

End With

Rs = "SELECT * FROM [Template Library];"
rst.Open Rs, cn, adOpenStatic, adLockOptimistic
Do Until rst.EOF
    If Left(rst![Name], InStr(1, rst![Name], "#") - 1) = TemplateID Then
        NameFile = rst![Name]
        On Error GoTo Skip
        ActualVdate = rst![Validity Date]
        TransVdate = rst![Transition Period End]
        Exit Do
    Else
        rst.MoveNext
    End If
Loop
Skip:
rst.Close

在DEBUG中,如果我首先使用12.0然后更改为16.0并保存,那么它将打开它。然后,如果我重新打开文件,我会得到同样的错误。 请帮帮我们。

2 个答案:

答案 0 :(得分:0)

您使用的是VBA吗?如果是这样,请确保您已在参考菜单上启用了Microsoft ActiveX Data Objects 6.1库。

答案 1 :(得分:-2)

试试这个;

cn.Open“Provider = Microsoft.Ace.OLEDB.16.0;” &安培; _ “数据来源=”& UserForm2.TextBox32.Text& “; Jet OLEDB:Database Password = 1101010; Persist Security Info = False;”