Системная ошибка при экспорте Excel в несколько таблиц Oracle - PullRequest
0 голосов
/ 04 июня 2019

Я работаю над файлом Excel, который будет загружать его содержимое в базу данных Oracle SQL. Он должен иметь возможность загрузки в базу данных «DEV», «QA» или «PROD». Я работаю над добавлением функции, которая добавила бы ее ко всем трем сразу и столкнулась с некоторыми проблемами. Я получаю Системную ошибку: Ошибка не указана каждый раз, когда я пытаюсь запустить ее как «ВСЕ» . Я предоставил код ниже. Любая помощь очень ценится!

Public Sub zUpload_Click()
Dim Environ As String

Environ = Sheets("Upload Table").Range("Environ").Value

If Environ = "DEV" Then
    xUpload (Environ)
ElseIf Environ = "QA" Then
    xUpload (Environ)
ElseIf Environ = "PROD" Then
    xUpload (Environ)
Else
    xUpload ("DEV")
    MsgBox "Upload to DEV successful"
    xUpload ("QA")
    MsgBox "Upload to QA successful"
    xUpload ("PROD")
    MsgBox "Upload to PROD successful"
End If

End Sub

Следующее в моем коде:

Sub xUpload(strEnv As String)

    Dim conn As New ADODB.Connection
    Dim iRowNo As Integer
    Dim Environ As String
    Dim SrlPort As String, strHost As String, strService_Name As String
    Const IPAddr = ...This is correct...
    Const IPAddr2 = ...This is correct...
    Const IPAddr_FallBack = ...This is correct...

   Environ = Sheets("Upload Table").Range("Environ").Value

    With Sheets("Upload Table")

    Select Case Environ
    Case "QA"
        SrlPort = ...This is correct...
        strHost = ...This is correct...
        strService_Name = ...This is correct...
    Case "DEV"
        SrlPort = ...This is correct...
        strHost = ...This is correct...
        strService_Name = ...This is correct...
    Case "PROD"
        SrlPort = ...This is correct...
        strHost = ...This is correct...
        strService_Name = ...This is correct...
    End Select

        conn.Open "Driver={Microsoft ODBC for Oracle}; CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=" & strHost & ")(PORT=CORRECT))" _
             & "(CONNECT_DATA=(SERVICE_NAME=" & strService_Name & "))); uid=" & IPAddr & " ;pwd=" & SrlPort & ";"

Это все на одном листе кода. Нет модулей ничего. Когда я запускаю отладчик, он говорит мне, что есть проблема с моим conn.Open разделом, когда я запускаю «ВСЕ», но я просто не могу понять это. Как я уже сказал, любая помощь приветствуется!

1 Ответ

0 голосов
/ 04 июня 2019

Вы передаете strEnv, когда вызываете xUpload, но затем игнорируете это и продолжаете заполнять Environ из диапазона листа (хотя у вас нет Case "All": отсюда и ошибка, которую вы видите)

Select Case Environ

должно быть

Select Case strEnv
...