2017-08-31 83 views
0

你好我很新的VBA和即时尝试建立与密码保护的数据库的连接。这是我的代码。连接到密码保护的数据库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 但它只是给了我另一个错误消息。 Thnak你提前。

回答

0

尝试为属性值

Provider='Microsoft.ACE.OLEDB.12.0' 
+0

我增加它像这样sConnString =“SourceType中:= 0,来源:= ODBC; DSN = SAPDATA32; Description = SAPDATA32; UID = shareuser; Provider ='Microsoft.ACE.OLEDB.12.0'; Jet OLEDB:Database Password = asdf; APP = Microsoft Office 2016; WSID = AT000616; DATABASE = SAPDATA“ 但仍显示错误消息“运行时错误”-2147467259(8000400)':找不到可安装的ISAM“ –

0

发现我只需要增加一个PW提供单引号:1234字段

相关问题