2011-08-24 87 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