VBA Excel _ sql - erreur de syntaxe

Bonsoir,

Je rencontre le pb suivant avec une syntaxe SQL, qui pourtant fonctionnait à l'époque sur un tutoriel que j'avais pratiqué.

Voyez vous l'oubli dans la requête text_sql2 ?

Merci

capture d ecran 2022 09 27 021059

bonjour,

pbmsql

Bonjour à tous

Là aussi on peut utiliser PowerQuery plutôt que VBA...

Bonsoir h2so4, Chris,

les deux guillemets étaient mis pour stipuler un vide de caractère. Visiblement ça ne vient pas de ça car j'ai même essayé d'ajouter du texte via guillemets ou une variable type string

@Chris : Là j'avais envie de tester cette méthode ^^. J'y étais presque mais .. je ne sais pas ce que c'est que cette erreur de syntaxe.

D'un coté je comprends que tu orientes vers Power Query car sur Excel les manip VBA/SQL semblent limitées; on ne peut pas supprimer de lignes faute d'un pilote (ISAM je crois) qui ne le gère pas. Et très dur de trouver la syntaxe de la commande UPDATE sur le net ...

bonsoir,

Les deux guillemets étaient mis pour stipuler un vide de caractère. Visiblement ça ne vient pas de ça car j'ai même essayé d'ajouter du texte via guillemets ou une variable type string

comme tu ne montres pas les autres choses que tu as essayées, difficile de dire quel est le problème. En tout cas ce que tu as montré sur ta copie d'écran est incorrect. Pour mettre 2 guillemets dans une constante de type string en VBA, il faut les doubler donc

text_sql2 = "(...) = """" where (...)"

mais je doute que mettre des guillemets soit correct. Il faut mettre des '

donc

text_sql2 = "(...) = '' where (...)"

Bonsoir,

Merci pour ta proposition, Je viens d'essayer ceci mais toujours le même message :/

capture d ecran 2022 09 28 003514

re-bonsoir,

quel message d'erreur ?

ah oui et merci pour la copie d'écran !

Ah pardon il y avait un deuxième screen.

2022 0928

bonjour,

le problème vient du caractère ' dans SAVEUR D'ANTAN, qui est interprété par SQL comme étant un délimiteur. il faut doubler le caractère '

par exemple ainsi

replace(monTablo(t),"'","''") 'au lieu monTablo(t)

A l'avenir (mais je pense que tu le sais déjà), merci de mettre le code entre balises </> (pas de copie d'écran !). Pour le message d'erreur, la copie d'écran c'est parfait.

Super pour ça ! J'ai ôté l'apostrophe dans la base et ça ne met plus de message d'erreur par rapport à ça.

J'ai du coup maintenant un pb avec mon paramètre de SET apparemment...

Voici le code et le message d'erreur en screen.

Dim t As Integer
Dim text_sql2 As String
Dim d As String: d = "d"
For t = LBound(monTablo) To UBound(monTablo)
'text_sql = "SELECT [Date visite] FROM [OUEST COMPIL CLEAN$] WHERE [NOM PDV] = '" & monTablo(t) & "'"
text_sql2 = "UPDATE [OUEST COMPIL CLEAN$] SET [statut]= '" & d & "' WHERE [pdv] = '" & monTablo(t) & "'"

connexion.Execute (text_sql2)
argument set 2022 0928

Bonjour,

pour moi cette instruction est correcte, il doit y avoir un problème avec les données.

ajoute cette instruction :

text_sql2 = "UPDATE [OUEST COMPIL CLEAN$] SET [statut]= '" & d & "' WHERE [pdv] = '" & monTablo(t) & "'"
msgbox text_sql2 '<-----

et mets-nous le résultat affiché

Bonsoir h2

Après les corrections que tu m'as indiquées.. puis la correction de l'apostrophe qui manquait dans le fichier de destination puisque j'avais fait le choix de l'enlever ...^^ ça y est ça fonctionne :D

Merci beaucoup :)

Bon le truc dommage c'est qu'on ne peut pas supprimer de ligne en SQL via VBA excel :/

Donc je vais contourner en remplissant la ligne de "" pour chaque champs en espérant que ça passera

Merci encore !

Salutations SHTOURS

Pourriez-vous s'il vous plaît fournir un modèle de votre feuille de calcul (xlsm) avec le code vba/sql complet .

J'ai aimé le sujet et j'ai l'intention de l'étudier afin de pouvoir utiliser votre code vba/sql dans mon projet .

il peut s'agir d'un modèle similaire, il n'est pas nécessaire que ce soit exactement votre feuille de calcul .

mais le code vba/sql doit fonctionner sur le modèle que vous attachez .

merci beaucoup .

Rechercher des sujets similaires à "vba sql erreur syntaxe"