2017-06-01 150 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