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