Я пытаюсь, чтобы мой код запрашивал у пользователя учетные данные Oracle SQL. Мой код работает так, как задумано, пока я вписываю код пользователя и пароль в код, но я не могу создать приглашение для входа в систему. Очевидно, что я бы не хотел хранить идентификатор пользователя и пароль в виде простого текста.
Я считаю, что строка "conn.Properties (" Prompt ") = adPromptAlways" должна активировать приглашение, но я получаю следующую ошибку:
Ошибка времени выполнения '3220':
Поставляемый поставщик отличается от уже используемого.
Я не могу понять, как решить проблему с провайдером или как исправить мой код. Любые идеи или источники о том, как это исправить?
Sub MySub()
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String
Dim SqlText As String
Dim R As Range
Dim WS As Worksheet
Dim ws2 As Worksheet
Dim LastRow As Long, i As Long
Dim MyFileName As String
Dim WB As Workbook, TempWB As Workbook
Set WB = Workbooks("Error_cases.xlsm")
Set ws2 = WB.Sheets("Input_file")
Set WS = Sheets("Errors")
Sheets("Errors").UsedRange.ClearContents
Sheets("Input_file").UsedRange.ClearContents
' Create the connection string.
sConnString = "Provider=OraOLEDB.Oracle;Data Source=myDataSource;User Id=;Password=;"
' Create the Connection and Recordset objects.
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
For Each R In Sheets("SQL").Range("A1:A1")
SqlText = SqlText & R.Text
Next R
' Open the connection and execute.
conn.Properties("Prompt") = adPromptAlways
conn.Open sConnString
Set rs = conn.Execute(SqlText)