连接到受密码保护的数据库VBA

时间:2017-08-31 07:35:39

标签: vba excel-vba excel

嗨,我对VBA很新,我试图与受密码保护的数据库建立连接。这是我的代码。

Sub CostEntry()
    ActiveWorkbook.Sheets.Add.Name = "SAP Sheet"

     sConnString = "SourceType:=0, Source:=ODBC;DSN=SAPDATA32;Description=DATA;UID=shareuser;Jet OLEDB:Database Password=1234;APP=Microsoft Office 2016;WSID=AT;DATABASE=DATA"

    ' Create the Connection and Recordset objects.
        Set conn = New ADODB.Connection
        Set rs = New ADODB.Recordset

    ' Open the connection and execute.
        conn.Open sConnString
        Set rs = conn.Execute("SELECT MBEW.BWKEY, MBEW.STPRS, MBEW.MATNR" & Chr(13) & "" & Chr(10) & "FROM SAPDATA.dbo.MBEW MBEW" & Chr(13) & "" & Chr(10) & "WHERE (MBEW.BWKEY='1010')")

    ' Check we have data.
        If Not rs.EOF Then
    ' Transfer result.
            ActiveWorkbook.Sheets("SAP Sheet").range("A1").CopyFromRecordset rs
    ' Close the recordset
            rs.Close
        Else
            MsgBox "Error: No records returned.", vbCritical
        End If

    ' Clean up
        If CBool(conn.State And adStateOpen) Then conn.Close
        Set conn = Nothing
        Set rs = Nothing

End Sub

其中大部分我也是从互联网上复制的,我也认为它来自stackoverflow。我得到了错误消息"运行时错误' -2147467259(8000400)':找不到可安装的ISAM"。我插入了行Provider=Microsoft.ACE.OLEDB.12.0 但它只是给了我另一个错误信息。 提前告诉你们。

2 个答案:

答案 0 :(得分:0)

尝试为属性值

提供单引号
Provider='Microsoft.ACE.OLEDB.12.0'

答案 1 :(得分:0)

发现我只需要添加一个PW:1234字段