1
Я пытаюсь открыть новое соединение, используя макрос, но оператор «Rcrdst.Open» дает мне ошибку времени выполнения: «ORA-00911: недопустимый символ». Может ли кто-нибудь помочь мне найти проблему?Подключение к базе данных с использованием макроса
Dim C As Integer
Dim ambiente As String
Dim userid As String
Dim Password As String
Dim Query As String
Dim Newsht As Worksheet
Dim Conn As ADODB.Connection
Dim Rcrdst As ADODB.Recordset
Set Newsht = ActiveWorkbook.Sheets("sheet1")
ambiente = InputBox("Please insert environement in which query has to be run.", "Test")
userid = InputBox("Please insert your USER ID for " & ambiente & " environment.", "Test")
Password = InputBox("Please insert the PASSWORD related to " & userid & " user.", "Test")
If userid <> "" And Password <> "" Then
Set Conn = New ADODB.Connection
Conn.ConnectionString = "Provider=MSDAORA; Password= " & Password & ";User ID= " & userid & "; Data Source = " & ambiente & ";Persist Security Info=True"
Conn.Open
Query = "select seq_prenotazione, cod_rapporto,stato_pren from via.prenotazione where seq_prenotazione in (700016298527, 700016761977);"
Set Rcrdst = New ADODB.Recordset
Rcrdst.CursorLocation = adUseClient
Rcrdst.CursorType = adOpenStatic
Rcrdst.LockType = adLockBatchOptimistic
Rcrdst.Open Query, conn
'code to work on data extracted
end if
Rcrdst.Close
Conn.Close
Заранее спасибо
Ошибка возникает при выполнении запроса, а код ошибки - «ORA ..», похоже, что ваша база данных вызывается ошибкой. Описание ошибки _Identifiers может не начинаться с любого символа ASCII, отличного от букв и цифр. $ # \ _ также разрешены после первого символа. Я бы предположил, что ваши переменные 'userid' и' Password' содержат итальянские символы Unicode, которые база данных не может обрабатывать. Кроме того, вы не должны закрывать свое соединение, в то время как другие объекты (то есть 'Rcrdst') зависят от него. – BenDot
Мои 'userid' и' password' содержат только алфавиты и числа, и когда я копирую этот точный запрос в SQL-разработчике, он работает отлично. – Srijan
Я предлагаю более подробно рассмотреть переменную 'Query'. Ваш код может изменить его иначе, чем если вы его скопируете самостоятельно. Попросите Excel распечатать строку или посмотреть ее в режиме отладки. – BenDot