VBA & SQL создать пароль - PullRequest
       6

VBA & SQL создать пароль

0 голосов
/ 17 мая 2018

Я пытаюсь, чтобы мой код запрашивал у пользователя учетные данные 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)

1 Ответ

0 голосов
/ 23 мая 2018

Я нашел решение, отвечая на свой вопрос на случай, если кто-нибудь еще столкнется с подобной проблемой. Очевидно, что наличие поставщика только в строке подключения вызвало проблему, это было исправлено путем установки его отдельно перед добавлением свойства подсказки

' Create the connection string.
sConnString = "Provider=OraOLEDB.Oracle;Data Source=myDataSource;

' Create the Connection and Recordset objects.
Set conn = New ADODB.Connection
conn.Provider = "OraOLEDB.Oracle"
conn.Properties("Prompt") = adPromptAlways
Set rs = New ADODB.Recordset
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...