0
我的代码来检索值如下:VBA从SQL服务器记录值
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是一个更新
当我运行宏,我得到了错误说操作时,不允许记录是开放的线路
rs.Open sql, cn, adOpenDynamic, adLockOptimistic
如果我改变
If Not GetData = "" Then
到
If Not GetData Is Null Then
我得到错误说“所需的对象”与线
If Not GetData Is Null Then
如何修复bug任何意见将是巨大的!
1)你得到的实际错误是什么以及哪条线导致它? 2)它应该是'如果不是空(GetData)然后' – 2014-10-16 15:10:02
也解释你试图达到什么。创建没有记录时创建新记录并更新记录或记录时,它们是\他们被发现?我的猜测是更新部分出错了。 – Barry 2014-10-16 15:13:43
要测试null的VBA命令是IsNull(Object)。 – 2014-10-16 15:19:11