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