Функция Vba не запрашивает базу данных оракула

Я новичок в этом, и у меня есть этот код, который возвращает #value (без значения) в ячейке Excel, когда я ввожу значение параметра. Он работает с использованием sub, но мне нужна эта функция, которая запрашивает таблицу базы данных и извлекает необходимые данные.

Function PullData(CR As String)

Dim Conn As New ADODB.Connection
Dim RS As New ADODB.Recordset
Dim Cmd As New ADODB.Command
Dim sqlText As String
Dim Row As Long
Dim Findex As Long
Dim Data As Worksheet
Dim X As Long
    Set Data = Sheets("Sheet1")
    Data.Select
    Cells.ClearContents
    Conn.Open "PROVIDER=OraOLEDB.Oracle ;DATA SOURCE=mydb;USER ID=x;PASSWORD=y"
    Cmd.ActiveConnection = Conn
    Cmd.CommandType = adCmdText
    sqlText = "select mycol from mytable where ID = & CR"


    Cmd.CommandText = sqlText
    Set RS = Cmd.Execute
    For X = 1 To RS.Fields.Count
        Data.Cells(1, X) = RS.Fields(X - 1).Name
    Next

    If RS.RecordCount < Rows.Count Then
        Data.Range("A2").CopyFromRecordset RS
    Else
        Do While Not RS.EOF
           Row = Row + 1
           For Findex = 0 To RS.Fields.Count - 1
             If Row >= Rows.Count - 50 Then
                Exit For
             End If
             Data.Cells(Row + 1, Findex + 1) = RS.Fields(Findex).Value
           Next Findex
           RS.MoveNext
        Loop
    End If
    Cells.EntireColumn.AutoFit
End Function

0 ответов

Другие вопросы по тегам