嗨,我对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
但它只是给了我另一个错误信息。
提前告诉你们。
答案 0 :(得分:0)
尝试为属性值
提供单引号Provider='Microsoft.ACE.OLEDB.12.0'
答案 1 :(得分:0)
发现我只需要添加一个PW:1234字段