vba从sql serverlogging集中获取值

我的代码来检索值如下所示:

Sub UploadData() Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim cn As ADODB.Connection Set cn = New ADODB.Connection Dim strConn As String Dim sql As String strConn = "PROVIDER=SQLOLEDB;DATA SOURCE=.\sql2000;INITIAL CATALOG=EquityDB;INTEGRATED SECURITY=sspi;" cn.Open strConn sql = "select * from EquityDB.dbo.table1 where field1 = '" & Replace(Range("d1").Value, "'", "''") & "'" rs.Open sql, cn, adOpenDynamic, adLockOptimistic GetData = rs.Fields(0).Value If Not GetData = "" Then cn.Execute sql001 Else cn.Execute sql002 End If 

sql001是一个插入,而sql002是一个更新

当我运行macros,我得到错误,说当logging打开的行不允许操作

  rs.Open sql, cn, adOpenDynamic, adLockOptimistic 

如果我改变了

  If Not GetData = "" Then 

  If Not GetData Is Null Then 

我得到错误说“对象需要”的线

  If Not GetData Is Null Then 

任何关于如何修复这个bug的build议都会很棒!

要testing是否有任何内容返回到您的logging集中,而不是:

  GetData = rs.Fields(0).Value If Not GetData = "" Then 

使用:

 If not(rs.eof and rs.bof) then 

如果logging集不是空的,这将返回true。