2017-06-01 148 views
0

我无法检查从SQL到Excel的导入值是否为空。在调试模式下,我可以确定分配的值是空的,即不是字符串“Null”。试过就是Nothing就像我的代码示例中一样,而且isEmpty=“Null”检查Excel中的对象是否为空VBA

这是行如果dbList(2)没有那么在下面的代码中,我遇到了麻烦。

如何检查记录集是否为空?

... 
Dim CmdSP As New ADODB.Command 
CmdSP.CommandType = adCmdText 
CmdSP.CommandText = "SELECT FundName, FundId, SRL.Comment FROM XXX SRL ON XXX = XXX ORDER BY FundName ASC" 

CmdSP.ActiveConnection = dbConn 

Dim dbList As ADODB.Recordset 
Set dbList = CmdSP.Execute 

Dim row As Integer 
row = 1 
While Not dbList.EOF 
    DataStorage.Range("dsFundsTopLeft")(row, 2) = dbList(0) 
    DataStorage.Range("dsFundsTopLeft")(row, 3) = dbList(1) 
    If dbList(2) Is Nothing Then 
     DataStorage.Range("dsFundsTopLeft")(row, 4) = "No rating" 
    Else 
     DataStorage.Range("dsFundsTopLeft")(row, 4) = dbList(2) 
    End If 
    dbList.MoveNext 
    row = row + 1 
Wend 
... 
+0

之前'如果DBLIST(2)没有Then'把'Debug.Print类型名(DBLIST(2))' - 的输出是什么? –

回答

1

尝试功能isNull

If isNull(dbList(2)) Then 
+0

现在感觉很蠢,但是这个功能在我以前试过时是无效的。必须拼写错误! – David