IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Recherche sous formulaire


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Par défaut Recherche sous formulaire
    Bonjour à toutes et à tous !

    tout d'abord je voudrais vous remercier pour ce forum que j'ai déjà plutot bien parcouru ces 3 dernières semaines afin de me familiariser avec access et le VBA.
    J'ai également acheté 2 bouquins afin de m'aider dans mon apprentissage dont VBA ACCESS 2007 programmer sous access de michèle amelot.

    j'ai tenté de suivre son guide afin de créer une application qui gère les formations des employés de mon entreprise et dans l'ensemble tout fonctionne parfaitement.

    en gros ma base de donnée est la suivante.

    Une table qui regroupe les formations
    Une table employés
    Une table Domaines
    Une table Organisme de formation
    Une table Participants

    Un formulaire Menu principal
    qui donne accès à un formulaire saisie de formation
    dans lequel on entre les données pour remplir la base de données

    et qui donne l'accès à un formulaire recherche
    dans lequel on selectionne des critères afin de filtrer la BDD et d'imprimer un état avec les données filtrées.

    tout fonctionne nikel mis à part un de mes filtres. L'erreur doit etre toute bete mais je ne la vois pas.

    Voici mon code évènement lorsque l'on actionne le bouton rechercher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    Private Sub cmdRechercher_Click()
     
    '   Crée la requête en fonction des critères saisis
    If cboEmploye <> "" Then
       '  Tables formations et participants
       strSQL = "SELECT FOR_IDFORM, FOR_INTITULE, " _
        & "FOR_IDDOM, FOR_IDORGA, FOR_DATEDEB, FOR_DATEFIN, " _
        & "PART_IDEMP FROM FORMATIONS INNER JOIN PARTICIPANTS " _
        & "ON FORMATIONS.FOR_IDFORM = PARTICIPANTS.PART_IDFORM"
    Else
    '  Table formation
       strSQL = "SELECT FOR_IDFORM, FOR_INTITULE, " _
       & "FOR_IDDOM, FOR_IDORGA, " _
       & "FOR_DATEDEB, FOR_DATEFIN FROM FORMATIONS "
    End If
     
    '   Prépare la clause Where de la requête SQL
    '   en concaténant les critères
    p_strCond = ""
    p_lngEmp = 0
    If cboDomaine <> "" Then
       p_strCond = p_strCond _
                 & " AND FOR_IDDOM = " & cboDomaine
    End If
    If cboOrganisme <> "" Then
       p_strCond = p_strCond _
                 & " AND FOR_IDORGA = " & cboOrganisme
    End If
    If cboage <> "" Then
       p_strCond = p_strCond _
                 & " AND FOR_AGEFOMAT = " & cboage
    End If
    If cboEmploye <> "" Then
       p_strCond = p_strCond _
                 & " AND PART_IDEMP = " & cboEmploye
       p_lngEmp = cboEmploye
     
     
    End If
    '   Critères sur les dates
    If cboOperat1 <> "" And txtDateDeb <> "" Then
       p_strCond = p_strCond & " AND (FOR_DATEDEB " & cboOperat1 _
       & " #" & Format(DateValue(txtDateDeb), "MM/DD/YY") & "#)"
    End If
    If cboOperat2 <> "" And txtDateFin <> "" Then
       p_strCond = p_strCond & " AND (FOR_DATEFIN " & cboOperat2 _
       & " #" & Format(DateValue(txtDateFin), "MM/DD/YY") & "#)"
    End If
     
    '   Suppression du 1er AND
    If p_strCond <> "" Then
       p_strCond = Right(p_strCond, (Len(p_strCond) - 4))
    End If
     
    '   Affecte la requête SQL au sous-formulaire
    If p_strCond <> "" Then
       strSQL = strSQL & " WHERE " & p_strCond & " ORDER BY FOR_DATEDEB"
    Else
       strSQL = strSQL & " ORDER BY FOR_DATEDEB"
    End If
    SFrmFormations.Form.RecordSource = strSQL
    SFrmFormations.Form.Requery
     
    End Sub
    et c'est mon critère cboage qui ne fonctionne pas ...


    j'esprère que vous pourrez m'aider

    d'avance merci !

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bonjour et bienvenue,


    Pour t'aider à comprendre où se trouve l'erreur, procède comme ceci :

    - dans ton code, juste avant ta ligne 61 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SFrmFormations.Form.RecordSource = strSQL
    tu écris ceci :

    Tu exécutes ta sélection.

    Dans la fenêtre d'exécution, tu trouves maintenant le sql qui a été effectivement généré par ton code. Tu le copies et le colles dans une nouvelle requête avec l'interface QBE.
    Les messages devraient te permettre de comprendre.

  3. #3
    Membre émérite
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Par défaut
    FOR_AGEFOMAT n'est pas déclaré dans ton SELECT

Discussions similaires

  1. [AC-2010] Formulaire de recherche / sous formulaire continu
    Par efilippi dans le forum IHM
    Réponses: 3
    Dernier message: 29/04/2011, 14h20
  2. Réponses: 2
    Dernier message: 22/04/2008, 10h56
  3. Recherche avec un sous-formulaire
    Par AikiNoodles dans le forum IHM
    Réponses: 6
    Dernier message: 17/03/2006, 15h11
  4. Recherche dans sous formulaires
    Par dfournier dans le forum IHM
    Réponses: 5
    Dernier message: 08/12/2005, 17h43
  5. Liste de recherche d'un sous formulaire
    Par armagued dans le forum Access
    Réponses: 5
    Dernier message: 29/10/2005, 22h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo