OVH Cloud OVH Cloud

inputbox de tri pour ouvrir un formulaire

13 réponses
Avatar
Nina
Boujour je ne comprends pas pourquoi ca ne marche pas...
Ca me parrait pourtant logique...mais j'ai la logique du debutant
Pouvez vous m'aider

N.

Dim stDocName As String
Dim stLinkCriteria As String
Dim question As String

stDocName = "PROGRAMME"
'je veux que le critere saisi ds mon inputbox me trie et m'affiche le
formulaire "programme "de l'année (annee_Prog - champ texte)
question = InputBox(Chr(13) & Chr(13) & Chr(13) & "Années ??")

stLinkCriteria = "[Annee_Prog] = question"

DoCmd.OpenForm stDocName

3 réponses

1 2
Avatar
Nina
et bien par exemple, si on reste sur l'année, je veux les programme de 2004
et 2005 donc :
select * from programme where Prog_annee >= 2004
il doit me renvoyer des 3 Id_prog (cle primaire de programme)...
Comment faire ca avec un filtre ?? (sachant que ma requete se situe ds le
code VB)

Merci de votre aide
N.

"Raymond [mvp]" a écrit dans le message de
news:
Pourquoi ne pas passer directement par un filtre, appliqué au formulaire,
sans passer par un recorset externe pour trouver une liste de valeurs.
donne un exemple de sélection qu'il faudrait faire sur ce formulaire (
même pour l'année on peut passer par un filtre).

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Nina" a écrit dans le message de
news:
Ok merci mais si je veux passer comme reponse avec plusieurs valeurs +
une boucle, je ne peux pas ?
Un recordset ne peut avoir qu'une seule valeur mm si une boucle le fait
tourner en "concatener" dans une variable les resultats avec par exemple
Dim conca as string
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim maRequete = Select * from ma table
Set Db = CurrentDb

Set Rs = Db.OpenRecordset("maRequete")
Conca = rs
Boucle sur rs
Conca = conca + rs

(escuser pour la synthaxe mais je n'en suis (helas) qu'au niveau ou
j'essaie de comprendre la logique, j'essaie de reproduire le type array
(en php par exemple) qui avec une boucle a une logique de poiteur tout au
long d'une requete...)

Ma question, je l'avoue, sort un peu de mon objet initial alors n'hesiter
pas à me recadrer si je vous ennuie :-))

N.






Avatar
Raymond [mvp]
Il ne faut pas partir sur des inputbox ou des paramètres.
tu dois partir sur un contrôle texte dans le formulaire dans lequel tu
indiques l'année mini à prendre , par exemple 2004 pour prendre 2004 et
2005.
DoCmd.OpenForm "monFormulaire" ........
dans l'événement Form_Load de "monFormulaire", tu indiques:
Me.filter = "[Prog_annee] > " & Forms!Formulaire1!Année
Me.filterOn = True

ce qui te permet de supprimer le filtre et d'en composer un autre
éventuellement sans sortir du formulaire par un autre moyen.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Nina" a écrit dans le message de
news: %
et bien par exemple, si on reste sur l'année, je veux les programme de
2004 et 2005 donc :
select * from programme where Prog_annee >= 2004
il doit me renvoyer des 3 Id_prog (cle primaire de programme)...
Comment faire ca avec un filtre ?? (sachant que ma requete se situe ds le
code VB)

Merci de votre aide
N.


Avatar
Nina
D'accord, je vais partir sur cette nouvelle piste !!
encore un grand merci !

N.

"Raymond [mvp]" a écrit dans le message de
news:
Il ne faut pas partir sur des inputbox ou des paramètres.
tu dois partir sur un contrôle texte dans le formulaire dans lequel tu
indiques l'année mini à prendre , par exemple 2004 pour prendre 2004 et
2005.
DoCmd.OpenForm "monFormulaire" ........
dans l'événement Form_Load de "monFormulaire", tu indiques:
Me.filter = "[Prog_annee] > " & Forms!Formulaire1!Année
Me.filterOn = True

ce qui te permet de supprimer le filtre et d'en composer un autre
éventuellement sans sortir du formulaire par un autre moyen.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Nina" a écrit dans le message de
news: %
et bien par exemple, si on reste sur l'année, je veux les programme de
2004 et 2005 donc :
select * from programme where Prog_annee >= 2004
il doit me renvoyer des 3 Id_prog (cle primaire de programme)...
Comment faire ca avec un filtre ?? (sachant que ma requete se situe ds le
code VB)

Merci de votre aide
N.






1 2