OVH Cloud OVH Cloud

Passage de paramètre

5 réponses
Avatar
Stéphane CROZETIERE
Bonjour à tous !

J'ai un problème de passage de paramètre dans le code suivant; je ne
comprends pas pourquoi à chaque fois que j'exécute ce code, il me redemande
la valeur de la date alors qu'elle est tapée dans le champ texte txtDate.

Private Sub Extraction(Jour1 As Date)

Dim strSQL As String

strSQL = "INSERT INTO BO ([Date], Heure, Espèce )"
strSQL = strSQL & "SELECT Abattoir.Champ1, Abattoir.Champ2,
Abattoir.Champ12 FROM Abattoir "
strSQL = strSQL & "WHERE (((Abattoir.Champ1)=Jour1)and
Abattoir.champ12='BO');"

DoCmd.RunSQL strSQL

End Sub

Private Sub cmdGo_Click()

Dim Jour As Date

Jour = txtDate.Value
Call Extraction(Jour)

End Sub

J'aimerai mettre ce code dans un module à part; si je n'arrive pas à passer
la date en paramètre, il va falloir que je le copie 12 fois.

Merci d'avance pour vos suggestions.

5 réponses

Avatar
Xavier HUE
Bonjour Stéphane,

A vue de nez je dirais qu'Access interprète [Date] comme
un paramètre à saisir.

Un conseil, ne jamais nommer des zones de tables,
controles et autres objets avec des mots réservés au
langage, comme par exemple "Date".

Ce peut être une fonction ou un type de données.
Access risque de ne pas aimer.

Essaie en renommant ta zone "Date" par "DateAbattage" par
exemple.

Cordialement.
Xavier.
Avatar
Stéphane CROZETIERE
Merci pour votre réponse.

J'ai testé votre astuce, mais apparement le problème se
situe au niveau de Jour1.
Je n'aurais pas pensé qu'un simple passage de paramètre
puisse me poser autant de problèmes.

-----Message d'origine-----
Bonjour Stéphane,

A vue de nez je dirais qu'Access interprète [Date] comme
un paramètre à saisir.

Un conseil, ne jamais nommer des zones de tables,
controles et autres objets avec des mots réservés au
langage, comme par exemple "Date".

Ce peut être une fonction ou un type de données.
Access risque de ne pas aimer.

Essaie en renommant ta zone "Date" par "DateAbattage" par
exemple.

Cordialement.
Xavier.
.



Avatar
Anor
Bonjour,

As-tu essayé la syntaxe suivante ?

strSQL = "INSERT INTO BO ([Date], Heure, Espèce )"
strSQL = strSQL & "SELECT Abattoir.Champ1, Abattoir.Champ2,Abattoir.Champ12 FROM Abattoir "
strSQL = strSQL & "WHERE (((Abattoir.Champ1)=#" & Format(Jour1, "mm/dd/yyyy") & "#)and
Abattoir.champ12='BO');"

ps : éviter de mettre des noms de champs avec le même nom que les fonctions intégrées d'access.
En clair, remplacer Date par DateAbattage, DateEntrée, DateSortie, DatePéremption, etc....

--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------


| Bonjour à tous !
|
| J'ai un problème de passage de paramètre dans le code suivant; je ne
| comprends pas pourquoi à chaque fois que j'exécute ce code, il me
| redemande la valeur de la date alors qu'elle est tapée dans le champ
| texte txtDate.
|
| Private Sub Extraction(Jour1 As Date)
|
| Dim strSQL As String
|
| strSQL = "INSERT INTO BO ([Date], Heure, Espèce )"
| strSQL = strSQL & "SELECT Abattoir.Champ1, Abattoir.Champ2,
| Abattoir.Champ12 FROM Abattoir "
| strSQL = strSQL & "WHERE (((Abattoir.Champ1)=Jour1)and
| Abattoir.champ12='BO');"
|
| DoCmd.RunSQL strSQL
|
| End Sub
|
| Private Sub cmdGo_Click()
|
| Dim Jour As Date
|
| Jour = txtDate.Value
| Call Extraction(Jour)
|
| End Sub
|
| J'aimerai mettre ce code dans un module à part; si je n'arrive pas à
| passer la date en paramètre, il va falloir que je le copie 12 fois.
|
| Merci d'avance pour vos suggestions.
Avatar
Anor
Bonjour,


| "#)and Abattoir.champ12='BO');"
|

en relisant, je crois qu'il manque aussi un espace entre la ) et le mot and ;-)

--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------
Avatar
Stéphane CROZETIERE
Pile poil !
Encore merci.

Bonjour,

As-tu essayé la syntaxe suivante ?

strSQL = "INSERT INTO BO ([Date], Heure, Espèce )"
strSQL = strSQL & "SELECT Abattoir.Champ1, Abattoir.Champ2,Abattoir.Champ12 FROM Abattoir "
strSQL = strSQL & "WHERE (((Abattoir.Champ1)=#" & Format(Jour1, "mm/dd/yyyy") & "#)and
Abattoir.champ12='BO');"

ps : éviter de mettre des noms de champs avec le même nom que les fonctions intégrées d'access.
En clair, remplacer Date par DateAbattage, DateEntrée, DateSortie, DatePéremption, etc....