Associer une requete a un sous formulaire en VBA

Signaler
Messages postés
36
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
16 août 2007
-
Messages postés
12
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
9 août 2007
-
      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

Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
2
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.
Messages postés
36
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
16 août 2007

la propriété recordSource n'est pas référence pour mon sousFormulaire donc je ne peux pas faire comme ca..
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
36
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
16 août 2007

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.
Messages postés
36
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
16 août 2007

il y a vraiement personne qui peut m'aider et repondre a ma question?
Messages postés
12
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
9 août 2007

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
Messages postés
12
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
9 août 2007

J'ai une solution à te proposer finalement.
Tu mets tes deux formulaires mais tu joues sur la propriété visible/non visible
Messages postés
12
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
9 août 2007

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>
Messages postés
36
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
16 août 2007

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?
Messages postés
12
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
9 août 2007

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