Requête SQL sous VB

Signaler
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
-
Messages postés
58
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 juin 2011
-
Au secour !!!!!!!!!!!
Voilà, j'ai besoin de faire une requête SQL sous VB mais il semble qu'il y a des erreurs dans ma syntaxe. Le problème et que j'ai beau chercher, je ne trouve pas où! Si quelqu'un pouvait m'aider, je vous en remercie par avance.



voici mon code :

StrChaineSQL = " INSERT INTO tblLocalisations ( RefBat, Etage, Bureau, Position, PositionNorm, CreerPar, DateCreation, Actif ) " & _
" SELECT tblFicheTransfert.BatArr, tblFicheTransfert.EtagArr, tblFicheTransfert.BurArr, tblFicheTransfert.PosArr, tblFicheTransfert.PosNormArr, '" & Environ("username") & "' As Expr2, '" & Now() & "' As Expr3, -1 AS Expr1 " & _ " FROM tblFicheTransfert LEFT JOIN tblLocalisations ON (tblFicheTransfert.PosArr tblLocalisations.Position) AND (tblFicheTransfert.BurArr tblLocalisations.Bureau) AND (tblFicheTransfert.EtagArr = tblLocalisations.Etage) AND (tblFicheTransfert.BatArr = tblLocalisations.RefBat) " & _
" WHERE (((tblFicheTransfert.RefTransf)=[Formulaires]![frmDossTransferts]![RefTransf]) AND ((tblFicheTransfert.BatArr) Is Not Null) AND ((tblFicheTransfert.EtagArr) Is Not Null) AND ((tblFicheTransfert.BurArr) Is Not Null) AND ((tblFicheTransfert.PosArr) Is Not Null) AND ((tblLocalisations.RefBat) Is Null) AND ((tblLocalisations.Etage) Is Null) AND ((tblLocalisations.Travee) Is Null) AND ((tblLocalisations.Bureau) Is Null) AND ((tblLocalisations.Position) Is Null)) ; "

CurrentDb.Execute StrChaineSQL

Le message d'erreur est :


" Trop peu de paramètres. 1 attendu."

7 réponses

Messages postés
809
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
29 septembre 2010
9
Salut,

C'est que ne nom de paramettre que tu as à inserer (
RefBat, Etage, Bureau, Position, PositionNorm, CreerPar, DateCreation, Actif ) ne correspond pas au nombre de valeurs que tu affectes ... genre une en moins, ou une en trop..



un compte vit fait semble te donner 8 champs à reseigner et 9 valeurs ... sauf erreur de ma part


Comment tu fais pour mettre 9 boites dans 8 cartons ?



++

Zlub
Messages postés
25
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
17 août 2005

On pli les boites ?
Messages postés
809
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
29 septembre 2010
9
Salut,

Même pas ... t'apprends à compter et tu vois que 8 boites rentrent dans 8 cartons ... :)

++

Zlub
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
1
Non j'ai bien la même quantité de champs selectionnés et de champs de destination. A savoir 8
Messages postés
809
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
29 septembre 2010
9
Salut,

J'ai vu ... voir mon post de 14:41:50 ...

++

Zlub
Messages postés
809
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
29 septembre 2010
9
Salut,

Déjà fais du ménage
das les parenthese parcequ'Access est bien sympas mais faut qu'il
arrete de tout parenthéser... limite s'il fait pas lettre par lettre
....



Ensuite c'est possible que tu autorises la saisie d'une valeur nulle ou vide dans une table et pas dans l'autre...



Tu devrais faire un Debug.print StrChaineSQL et vérifier que la requête est bonne...

++

Zlub
Messages postés
58
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 juin 2011

Bonjour j'ai regardé votre code SQL deux truc ont attiré mon attention je les mets en gras

StrChaineSQL = " INSERT INTO tblLocalisations ( RefBat, Etage, Bureau, Position, PositionNorm, CreerPar, DateCreation, Actif ) " & _
" SELECT tblFicheTransfert.BatArr, tblFicheTransfert.EtagArr, tblFicheTransfert.BurArr, tblFicheTransfert.PosArr, tblFicheTransfert.PosNormArr, '" & Environ("username") & "' As Expr2, '" & Now() & "' As Expr3, -1 AS Expr1 " & _
" FROM tblFicheTransfert LEFT JOIN tblLocalisations ON (tblFicheTransfert.PosArr tblLocalisations.Position) AND (tblFicheTransfert.BurArr tblLocalisations.Bureau) AND (tblFicheTransfert.EtagArr = tblLocalisations.Etage) AND (tblFicheTransfert.BatArr = tblLocalisations.RefBat) " & _
" WHERE (((tblFicheTransfert.RefTransf)=[Formulaires]![frmDossTransferts]![RefTransf]) AND ((tblFicheTransfert.BatArr) Is Not Null) AND ((tblFicheTransfert.EtagArr) Is Not Null) AND ((tblFicheTransfert.BurArr) Is Not Null) AND ((tblFicheTransfert.PosArr) Is Not Null) AND ((tblLocalisations.RefBat) Is Null) AND ((tblLocalisations.Etage) Is Null) AND ((tblLocalisations.Travee) Is Null) AND ((tblLocalisations.Bureau) Is Null) AND ((tblLocalisations.Position) Is Null)) ; "

CurrentDb.Execute StrChaineSQL

la syntaxe est " ......... " & var & ".........."
tu as dans var ( Environ("username") ) je pense que les cotes que tu as dans var peuvent être une source d'erreur.

a ce niveau là aussi je pense qu'il y a problème "' As Expr3, -1 AS Expr1 " & _ je crois que tu devais mettre : "' As Expr3, -1 AS Expr1 '"
et enfin cette expression ( ; ") pas de point virgule en VB à la fin de la requette je pense.