Erreur d'expression

Signaler
Messages postés
13
Date d'inscription
jeudi 8 mars 2012
Statut
Membre
Dernière intervention
4 juillet 2012
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
salu;
j'ai un prbleme au niveau de formulaire ajout article au moment de débugger un message d'erreur s'affiche "Erreur de syntaxe (opérateur absent) dans l'expression« spam1',cadre' »."}
ici mon code source :
    Private Sub btnValider_Article_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnValider_Article.Click
        connection.LancerRequete("insert into Tbl_Articles values(" & TxtREF.Text + "'," & txtDesignation.Text + "'," & TextPR.Text + "," & TextQUT.Text + ")")
        Me.Close()

qui peut m'aider???

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut

En fait, c'est un problème de syntaxe SQL.
Conseil : Prends l'habitude de mettre ta requète dans une variable texte, cela te permettra de la visualiser en cas de défaillance :
Ta requete (que je tronçonne pour un soucis de lisibilité)
"insert into Tbl_Articles 
values(" & TxtREF.Text + "'," & 
       txtDesignation.Text + "'," & 
       TextPR.Text + "," & 
       TextQUT.Text + ")"

En fait, ce genre de syntaxe doit ressembler à ceci :
Insert Into maTable
       (Champ1, Champ2, ..., ChampX)
 Values('TexteChamp1', ChiffreChamp2, ..., ValeurChampX)

Après le "Insert Into", il doit y avoir la liste des champs.
--> Vérifier si cette liste peut être omise si tous les champs de la table sont utilisés. MAIS, même si cela est autorisé, il est préférable de les écrire afin de rendre plus lisible le code - pense à la relecture du code dans 2 ou 3 mois.
Si ces noms de champs comportent des espaces ou des caractères spécifiques (comme les accents), encadrer chaque nom de champ par des crochets [ et ].

Ensuite, entre les parenthèses de Values()
Selon le type de champ déclarés dans ta table, il faut respecter une syntaxe simple :
- Encadrer la valeur par des ' si le champ est de type Texte
- Encadrer la valeur par des # si le champ est de type Date
- Pas d'encadrement pour les chiffres.
Ces Values seront séparées par des virgules (l'éventuel séparateur décimal d'un champ devant être le point).
--> Les Values doivent être listés dans le même ordre que les champs de la table.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
En fait ton erreur est là :
values(" & TxtREF.Text + "'," & 
values(" & TxtREF.Text + ",'" & 
.                         ^^