2011-08-24 129 views
2

我必須檢查是否使用CLI/ODBC驅動程序建立了Excel和DB2之間的連接。Excel和DB2連接

對於我打算寫在哪裏將被調用excel工作表這反過來將自動執行的宏,其將從SYSIBM.SYSDUMMY1錶帶出一些僞數據的批處理文件。

我需要能夠與我的數據庫建立連接的代碼,並通過在建立連接時發出一些成功消息並在連接未建立時發出失敗消息來檢查連接是否已建立。 (可能在發生問題時有一些解釋)

回答

2

您可以使用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 
+0

嗨banjoe,感謝您的快速反應,但我需要一些相同的澄清。 首先,這是我需要從批處理文件中調用的VBA文件的代碼? 其次,在數據源的地方,我必須放置什麼,因爲我已經從控制面板中定義了一個ODBC數據源。 再次感謝您的幫助.... –

+0

嘗試:'.ConnectionString =「DSN = yourDSNNameHere; UID = yourUserID; PWD = yourPassword;' – Banjoe

+0

代碼進入VBA模塊,您可以將它放入Workbook_Open如果你願意的話,你可以在Excel中引用「Microsoft ActiveX Data Objects XX Library」,其中XX是可用的最新版本(在Office 2007及更高版本中爲6.0)。在Visual Basic編輯器中使用工具 - >參考文獻(在Excel中按Alt-F11將其提供) – Banjoe