1
J'essaye d'ouvrir une nouvelle connexion en utilisant la macro mais l'instruction "Rcrdst.Open" me donne l'erreur d'exécution: "ORA-00911: caractère non valide". Quelqu'un peut-il m'aider à trouver le problème?Connexion à une base de données en utilisant la macro
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
Merci à l'avance
L'erreur se produit lors de l'exécution de la requête et le code d'erreur est "ORA ..", qui ressemble à l'erreur est levée par votre base de données. La description de l'erreur est _Identifiers ne peut pas commencer avec un caractère ASCII autre que des lettres et des chiffres. $ # \ _ sont également autorisés après le premier caractère. _ Je suppose que vos variables 'userid' et' Password' contiennent des caractères italiques Unicode que la base de données ne peut pas gérer. En outre, vous ne devez pas fermer votre connexion alors que d'autres objets (c'est-à-dire 'Rcrdst') en dépendent. – BenDot
mes 'userid' et' password' ne contiennent que des alphabets et des nombres et quand je copie cette requête exacte dans le développeur SQL, elle fonctionne parfaitement. – Srijan
Je suggère de regarder de plus près la variable 'Query'. Votre code peut changer différemment que si vous le copiez vous-même. Demandez à Excel d'imprimer la chaîne ou de la regarder en mode débogage. – BenDot