Associer une requete a un sous formulaire en VBA

cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007 - 18 juil. 2007 à 11:13
cs_ptitanic Messages postés 12 Date d'inscription samedi 14 janvier 2006 Statut Membre Dernière intervention 9 août 2007 - 9 août 2007 à 15:19
      Bonjour,
je me permet de venir vous déranger, car j'ai un petit problème.
J'ai un formulaire access avec une zone de choix. Suivant mon choix (1 ou 2) je dois affecter une requete a un sous formulaire (fille1). Mais le problème c'est que je ne sais pas faire cette affectation en VBA.

Voici mon code pour le moment :
<CODE>
Private Sub cmdValider_Click()
    'j'affecte les dates pour le traitement de la requete
    If choixDate.Value = 1 Then
        Req = "select * from woa where date_emission >= me.debut"
        Set MaTable = CurrentDb.OpenRecordset(Req, dbOpenDynaset)
        'affectation de ma requete req comme donnée source du sous formulaire
        mon problème
    Else
        Req = "select * from woa where date_emission between me.deb and me.fin"
        Set MaTable = CurrentDb.OpenRecordset(Req, dbOpenDynaset)
        'affectation de ma requete req comme donnée source du sous formulaire
        mon problème
    End If 
End Sub
<CODE>

Dans l'attente de vos réponses, je vous remercie d'avance.
 

10 réponses

cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
18 juil. 2007 à 11:24
Salut, je ne connais pas grand chose aux sous formulaire, mais si tu peux faire appel a lui par son nom directement, tu dois pour faire,

Mon_SOUS_Formulaire.RecordSource = Ta_Requete.
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
18 juil. 2007 à 11:30
la propriété recordSource n'est pas référence pour mon sousFormulaire donc je ne peux pas faire comme ca..
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
18 juil. 2007 à 12:05
Je n'y connais pas grand chose non plus aux formulaires et sous-formulaire. Par contre la requête devrait, je pense, être modifiée au niveau des apostrophes et peut-être aussi y rajouter des dièses

Req = "select * from woa where date_emission >=" & me.debut
ou
Req = "select * from woa where date_emission >=#" &  me.debut & "#"

MPi
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
19 juil. 2007 à 11:12
oui oui ca c'est fait..
j'avais juste écrit une requete vite fais. Après pas de dièse car dans la table avec laquelle je travail, tout les champs sont au format texte

ce qui me pose le plus de problème c'est l'affectation d'une requete a un sous formulaire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
23 juil. 2007 à 11:56
il y a vraiement personne qui peut m'aider et repondre a ma question?
0
cs_ptitanic Messages postés 12 Date d'inscription samedi 14 janvier 2006 Statut Membre Dernière intervention 9 août 2007
3 août 2007 à 10:33
bonjour,

je suis désolée mais je ne vais pas pouvoir trop t'aider car j'ai le même soucis, je voulais donc savoir si tu avais trouvé la solution
0
cs_ptitanic Messages postés 12 Date d'inscription samedi 14 janvier 2006 Statut Membre Dernière intervention 9 août 2007
3 août 2007 à 10:44
J'ai une solution à te proposer finalement.
Tu mets tes deux formulaires mais tu joues sur la propriété visible/non visible
0
cs_ptitanic Messages postés 12 Date d'inscription samedi 14 janvier 2006 Statut Membre Dernière intervention 9 août 2007
3 août 2007 à 11:10
Solution moins barbare :

<CODE>
Private Sub cmdValider_Click()
    'j'affecte les dates pour le traitement de la requete
    If choixDate.Value = 1 Then
        Req = "select * from woa where date_emission >= me.debut"
        Set MaTable = CurrentDb.OpenRecordset(Req, dbOpenDynaset)
        'affectation de ma requete req comme donnée source du sous formulaire
        mon problème
       "nomSousFormulaire".Form.RecordSource = MaTable
    Else
        Req = "select * from woa where date_emission between me.deb and me.fin"
        Set MaTable = CurrentDb.OpenRecordset(Req, dbOpenDynaset)
        'affectation de ma requete req comme donnée source du sous formulaire
        mon problème
        "nomSousFormulaire".Form.RecordSource = MaTable
    End If 
End Sub
<CODE>
0
cherie_cheri Messages postés 36 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 16 août 2007
9 août 2007 à 10:40
re coucou!
quand je fais ce que tu me dis
nomSousFormulaire.form.recordsource = maTable

j'ai un message d'erreur qui s'affiche
"Erreur de compilation : incompatibilité de type"

Quelqu'un peut il me renseigner sur mon problème?
0
cs_ptitanic Messages postés 12 Date d'inscription samedi 14 janvier 2006 Statut Membre Dernière intervention 9 août 2007
9 août 2007 à 15:19
Pardon ....

Tu dois mettre
nomSousFormulaire.form.recordsource = "Req"
ou
nomSousFormulaire.form.recordsource = "select * from woa where date_emission >= me.debut"

en espérant que ça soit bon ce coup ci
0
Rejoignez-nous