我在Excel表格中使用Excel VBA中的简单SQL查询。 我的一个SELECT列包含空白单元格,数字值和字符串。 仅正确返回Numeric值,而String值返回NULL。 我试过CStr(混合列)无济于事。 如果我从列中删除所有数值 - 一切正常 - 返回字符串。 有什么建议吗?
在下面的代码中,第一个字段是混合值字段(RD。[Broker Reference Number])。
Sub testGetIntoArray()
Dim arr() As Variant
Dim strSQL As String
strSQL = "SELECT CStr(RD.[Broker Reference Number]), RD.[Type], RD.[Currency], RD.[Total Due]"
strSQL = strSQL & " FROM [Risks Details$B10:AG2207] as RD"
strSQL = strSQL & " WHERE (RD.[Risk Details Number] = 170083001)"
result = LoadSQLQueryIntoArray(strSQL, arr)
Debug.Print (arr(0, 0))
End Sub
Function LoadSQLQueryIntoArray(ByVal strSQL As String, ByRef arr() As Variant) As Long
'Load result of SQL Query string into array
Dim rs As New ADODB.Recordset
LoadSQLQueryIntoArray = 0
If InProduction Then On Error GoTo FailesSub
ConnectDB
rs.Open strSQL, ConnDB
If Not (rs.EOF) Then
arr = rs.GetRows
LoadSQLQueryIntoArray = UBound(arr, 2) + 1
End If
rs.Close
CloseSub:
Set rs = Nothing
DisconnectDB
Exit Function
FailesSub:
MsgBox "Failed reading DB table: " & strTable & ".", vbOKOnly + vbCritical, "Database Error"
GoTo CloseSub
End Function