2
我必須檢查是否使用CLI/ODBC驅動程序建立了Excel和DB2之間的連接。Excel和DB2連接
對於我打算寫在哪裏將被調用excel工作表這反過來將自動執行的宏,其將從SYSIBM.SYSDUMMY1錶帶出一些僞數據的批處理文件。
我需要能夠與我的數據庫建立連接的代碼,並通過在建立連接時發出一些成功消息並在連接未建立時發出失敗消息來檢查連接是否已建立。 (可能在發生問題時有一些解釋)
我必須檢查是否使用CLI/ODBC驅動程序建立了Excel和DB2之間的連接。Excel和DB2連接
對於我打算寫在哪裏將被調用excel工作表這反過來將自動執行的宏,其將從SYSIBM.SYSDUMMY1錶帶出一些僞數據的批處理文件。
我需要能夠與我的數據庫建立連接的代碼,並通過在建立連接時發出一些成功消息並在連接未建立時發出失敗消息來檢查連接是否已建立。 (可能在發生問題時有一些解釋)
您可以使用ADODB(ActiveX數據對象)在DB2服務器和Excel之間建立ODBC(或OleDB)連接。有關示例連接字符串,請參見this link。
此鏈接會顯示樣品VBA代碼ADODB用來連接到數據庫: How To Use ADO with Excel Data from Visual Basic or VBA
編輯:下面是一些快速和骯髒的示例代碼。將「.connectionstring =」部分替換爲適合您的設置的正確連接字符串。
Dim cn As ADODB.Connection
Dim rsT As New ADODB.Recordset
Dim strSQL As String
strSQL = "SELECT * FROM sysibm.sysdummy1 FETCH FIRST 10 ROWS ONLY"
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & App.Path & _
"\ExcelSrc.xls;Extended Properties=Excel 8.0;"
.Open
End With
rsT.Open strSQL, cn
rsT.MoveFirst
Do Until rs.EOF
Debug.Print rs.Fields(0)
rsT.MoveNext
Loop
rsT.Close
cn.Close
Set rsT = Nothing
Set cn = Nothing
嗨banjoe,感謝您的快速反應,但我需要一些相同的澄清。 首先,這是我需要從批處理文件中調用的VBA文件的代碼? 其次,在數據源的地方,我必須放置什麼,因爲我已經從控制面板中定義了一個ODBC數據源。 再次感謝您的幫助.... –
嘗試:'.ConnectionString =「DSN = yourDSNNameHere; UID = yourUserID; PWD = yourPassword;' – Banjoe
代碼進入VBA模塊,您可以將它放入Workbook_Open如果你願意的話,你可以在Excel中引用「Microsoft ActiveX Data Objects XX Library」,其中XX是可用的最新版本(在Office 2007及更高版本中爲6.0)。在Visual Basic編輯器中使用工具 - >參考文獻(在Excel中按Alt-F11將其提供) – Banjoe