Excel VBA SQL Select为混合字符串/数字列中的字符串返回NULL

时间:2017-12-24 12:54:02

标签: sql excel-vba vba excel

我在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

0 个答案:

没有答案