Probleme de syntaxe SQL-VBA
Résolu
GermPeru
Messages postés
175
Statut
Membre
-
GermPeru Messages postés 175 Statut Membre -
GermPeru Messages postés 175 Statut Membre -
Bonjour a tous,
J´effectue des requetes a mon serveur depuis VBA-Excel, mon probleme et que j´ai une table qui contient le signe @... et lors de ma connection il ne reconnait pas ma table, le probleme est certaienement que ce signe est une variable a la fois en sql et en vba.
En sql pour palier a ceci on met le nom de la table entre crochet: [@OBOE ], pour le definir en texte
En vba ma requete sql est entre " ", ce qui ne devrait pas me poser de pb car définit comme un texte...
Sql = "select * from [@OBOE ]"
Mais cela ne marche pas, peut etre que le vba me retire les crochet et ce qui fait que l'@ n´est plus comme texte en Sql...
Enfin j´ai fait des tests dans tous les sens et rien de concluant, et je n´ai rien trouvé sur le net. Donc si klk un a une soltion je lui en serait tres reconnaissant!!
Merci d'avance
J´effectue des requetes a mon serveur depuis VBA-Excel, mon probleme et que j´ai une table qui contient le signe @... et lors de ma connection il ne reconnait pas ma table, le probleme est certaienement que ce signe est une variable a la fois en sql et en vba.
En sql pour palier a ceci on met le nom de la table entre crochet: [@OBOE ], pour le definir en texte
En vba ma requete sql est entre " ", ce qui ne devrait pas me poser de pb car définit comme un texte...
Sql = "select * from [@OBOE ]"
Mais cela ne marche pas, peut etre que le vba me retire les crochet et ce qui fait que l'@ n´est plus comme texte en Sql...
Enfin j´ai fait des tests dans tous les sens et rien de concluant, et je n´ai rien trouvé sur le net. Donc si klk un a une soltion je lui en serait tres reconnaissant!!
Merci d'avance
2 réponses
-
Bonjour,
peut être que tu doit déclarer la variable Sql comme STRING au début,
Et c'est quoi l'erreur que tu as en retour pour que tu as pu constater que c'est le signe @ qui pose problème ?
-
-
Pour etre un peu plus explicite, vu que je ne parle pas le SQL on me transmet les requetes SQL et ma partie est trvaillaer le resultat en Excel.
Pour tester la syntaxe de la requete je passe par une fonction pour tester ma connection et pour tester mon recordset, il n´y pas de message dérreur réel, seulement que ma requete n´est pas valide.
Con.OpenConnetion MsgBox Array("Pas Bon!", "Bueno !")(Abs(Con.OpenConnetion)) Set RS = Con.OpenRecordSet(Sql) MsgBox Array("Pas Bon!", "Bueno !")(Abs(TypeName(RS) <> "Nothing")) RS.Close Con.CloseConnection Set RS = Nothing
Le détail est lorsque je le fait sans vba et je passe directment par connection a base de données depuis Exce, ma requete est valide; ce qui me fait d´autant plus penser que mon pb est du a une desinterprétation de ma requete de VBA qui fait quélle devient invalide lors de ma connection a mon serveur SQL...
Je suis pas spécialiste dans le domaine et un peu perdu donc si vous avez des idées voir meme la solution je suis prenneur car ca va faire des heures que je suis bloqué...
-
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonsoir, quel est le type de ta base de données?
peux-tu partager ton code plus complet, ainsi que le message d'erreur que tu reçois?-
Bonjour yg_be,
Pour repondre a ta question:
J´ai trouvé une fonction pour avoir tous les noms de mes tables
Public Function OpenSchema() If Connexion.State = 0 Then OpenConnetion End If Set OpenSchema = Connexion.OpenSchema(20) End Function
Et a ce que j´ai compris c´est ADODB reformate le nom des objet si un caractère ne lui convient pas il le formate a son gout...
Donc en SQL la table est nommé: @OBDE
Et quand je j´applique openschema il míndique: @_OBDE...
Dans tous les cas merci pour ta réponse et mon probleme est résolu!
Merci
-