OVH Cloud OVH Cloud

Requete mise à jour ; erreur 3061

6 réponses
Avatar
Cyrille
bonjour à toutes et à tous

j'ai cette requete

Dim strSQL As String
strSQL = "UPDATE Cheques SET Cheques.CodeBanque = Me![Bque] WHERE
(((Cheques.Releve)=Yes));"
CurrentDb.Execute strSQL

j'ai une erreur 3061 : trop peu de parametres. 1 attendu.

Je ne vois pas ou est le probleme : Me![Bque] étant un champs independant
et CodeBanque un champs de ma table à mettre à jour

merci d'avance

6 réponses

Avatar
Gilles MOUGNOZ
bonjour à toutes et à tous
j'ai cette requete
Dim strSQL As String
strSQL = "UPDATE Cheques SET Cheques.CodeBanque = Me![Bque] WHERE
(((Cheques.Releve)=Yes));"
CurrentDb.Execute strSQL
j'ai une erreur 3061 : trop peu de parametres. 1 attendu.
Je ne vois pas ou est le probleme : Me![Bque] étant un champs independant
et CodeBanque un champs de ma table à mettre à jour
merci d'avance


Bonjour, Cyrille

Je pense avoir vu deux problèmes:
1) incorporer la valeur du champ indépendant et non sa désignation
2) utiliser True plutôt que Yes

Ce qui nous amène à ceci:

strSQL = "UPDATE Cheques SET Cheques.CodeBanque = "
strSQL = strSQL & Me![Bque]
strSQL = strSQL & "WHERE (((Cheques.Releve)=True));"

C'est mieux ?

Bonne continuation

Avatar
Cyrille
ca ne change rien, j'ai toujours une erreur code 3061


bonjour à toutes et à tous
j'ai cette requete
Dim strSQL As String
strSQL = "UPDATE Cheques SET Cheques.CodeBanque = Me![Bque] WHERE
(((Cheques.Releve)=Yes));"
CurrentDb.Execute strSQL
j'ai une erreur 3061 : trop peu de parametres. 1 attendu.
Je ne vois pas ou est le probleme : Me![Bque] étant un champs independant
et CodeBanque un champs de ma table à mettre à jour
merci d'avance


Bonjour, Cyrille

Je pense avoir vu deux problèmes:
1) incorporer la valeur du champ indépendant et non sa désignation
2) utiliser True plutôt que Yes

Ce qui nous amène à ceci:

strSQL = "UPDATE Cheques SET Cheques.CodeBanque = "
strSQL = strSQL & Me![Bque]
strSQL = strSQL & "WHERE (((Cheques.Releve)=True));"

C'est mieux ?

Bonne continuation






Avatar
Gilles MOUGNOZ
ca ne change rien, j'ai toujours une erreur code 3061


Bonjour, Cyrille

Je viens de voir qu'il manquait un espace avant le WHERE:
strSQL = "UPDATE Cheques SET Cheques.CodeBanque = "
strSQL = strSQL & Me![Bque]
strSQL = strSQL & " WHERE (((Cheques.Releve)=True));"
Si cela ne fonctionne toujours pas, essaie de créer la requête "en vrai"
pour voir si elle fonctionne en remplaçant "Me![Bque]" par une valeur
quelconque. Avant de faire l'update, Access devrait te demander une
confirmation, donc tu ne risques rien.

Bonne continuation

Avatar
Cyrille
j'avais vu qu'il manquait l'espace.
j'ai remplacé Me![Bque] par "CA" comme j'ai besoin et ca marche pas non plus

a savoir que j'ai ce code qui marche tres bien dans la meme execution

strSQL = "UPDATE Cheques SET Cheques.Selection = Yes WHERE
(((Cheques.Releve)=Yes));"
CurrentDb.Execute strSQL
strSQL = "UPDATE Cheques SET Cheques.DatePaiement =" &
Format(Me![DateReleve], "#mm/dd/yyyy#") & " WHERE (((Cheques.Releve)=Yes));"
CurrentDb.Execute strSQL

merci d'avance


ca ne change rien, j'ai toujours une erreur code 3061


Bonjour, Cyrille

Je viens de voir qu'il manquait un espace avant le WHERE:
strSQL = "UPDATE Cheques SET Cheques.CodeBanque = "
strSQL = strSQL & Me![Bque]
strSQL = strSQL & " WHERE (((Cheques.Releve)=True));"
Si cela ne fonctionne toujours pas, essaie de créer la requête "en vrai"
pour voir si elle fonctionne en remplaçant "Me![Bque]" par une valeur
quelconque. Avant de faire l'update, Access devrait te demander une
confirmation, donc tu ne risques rien.

Bonne continuation






Avatar
Gilles MOUGNOZ
j'avais vu qu'il manquait l'espace.
j'ai remplacé Me![Bque] par "CA" comme j'ai besoin et ca marche pas non
plus
a savoir que j'ai ce code qui marche tres bien dans la meme execution
strSQL = "UPDATE Cheques SET Cheques.Selection = Yes WHERE
(((Cheques.Releve)=Yes));"
CurrentDb.Execute strSQL
strSQL = "UPDATE Cheques SET Cheques.DatePaiement =" &
Format(Me![DateReleve], "#mm/dd/yyyy#") & " WHERE
(((Cheques.Releve)=Yes));"
CurrentDb.Execute strSQL
merci d'avance


Re,

Je n'avais pas compris que ton code était une chaîne de caractères.
Dans ce cas, il faut l'entourer d'apostrophes comme ceci:

strSQL = "UPDATE Cheques SET Cheques.CodeBanque = '"
strSQL = strSQL & Me![Bque]
strSQL = strSQL & "' WHERE (((Cheques.Releve)=True));"

Si tu remplaces Me![Bque] par "CA", cela donne:

strSQL = "UPDATE Cheques SET Cheques.CodeBanque = 'CA' "
strSQL = strSQL & "WHERE (((Cheques.Releve)=True));"

C'est mieux ?

Avatar
Cyrille
merci, ca marche parfaitement, il manquait l'apostrophe avant et apres


j'avais vu qu'il manquait l'espace.
j'ai remplacé Me![Bque] par "CA" comme j'ai besoin et ca marche pas non
plus
a savoir que j'ai ce code qui marche tres bien dans la meme execution
strSQL = "UPDATE Cheques SET Cheques.Selection = Yes WHERE
(((Cheques.Releve)=Yes));"
CurrentDb.Execute strSQL
strSQL = "UPDATE Cheques SET Cheques.DatePaiement =" &
Format(Me![DateReleve], "#mm/dd/yyyy#") & " WHERE
(((Cheques.Releve)=Yes));"
CurrentDb.Execute strSQL
merci d'avance


Re,

Je n'avais pas compris que ton code était une chaîne de caractères.
Dans ce cas, il faut l'entourer d'apostrophes comme ceci:

strSQL = "UPDATE Cheques SET Cheques.CodeBanque = '"
strSQL = strSQL & Me![Bque]
strSQL = strSQL & "' WHERE (((Cheques.Releve)=True));"

Si tu remplaces Me![Bque] par "CA", cela donne:

strSQL = "UPDATE Cheques SET Cheques.CodeBanque = 'CA' "
strSQL = strSQL & "WHERE (((Cheques.Releve)=True));"

C'est mieux ?