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

IHM Discussion :

Sous formulaire et multi critère de sélection


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Points : 59
    Points
    59
    Par défaut Sous formulaire et multi critère de sélection
    Bonsoir,

    J'ai créé un formulaire sous Access avec:
    - une liste_déroulante1 (liste de site),
    - 2 champs où l'on peut saisir la date_début et date_fin
    - un sous formulaire qui affiche toutes les infos(Id_site,date_publication,catégorie,...) concernant le site sélectionné dans liste_déroulante1 grace au champs père ,champs fils. Jusque là tout va bien, ça marche.

    Mais je voudrais qu'en plus du critère de la liste_deroulante1, soient pris en compte, les plages de date_debut et date_fin qui affichera dans le sous formulaire les infos du site sélectionné ET dont le champs date_publication du sous formulaire soit compris entre les 2 dates saisis.

    Comment puis je faire pour appliquer ces deux critère de sélection à la fois?
    Merci d'avance

  2. #2
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut, à essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Me.monsousform.Form.RecordSource = Left(Me.monsousform.Form.RecordSource, Len(Me.monsousform.Form.RecordSource) - 1) 'On vire le ";" de la chaine du RecordSource
    Me.monsousform.Form.RecordSource = Me.monsousform.Form.RecordSource & _
    " AND date_publication between " & Me.date_début & " and " & Me.date_fin
    Me.monsousform.Form.Requery
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Points : 59
    Points
    59
    Par défaut
    Bonjour,

    Comme je suis novice en access , ce code que tu m'as donné, je le à quel endroit exactement? Private Sub monsousform_enter()? Private sub Form_load()?

    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    Bonjour,

    En toute logique et après quelques reflexion on peut trouver facilement ou mettre ce code.

    Pour cela il faut se poser un minimum de questions (novice ou débutant ne veux pas dire qu'on ne sait pas se poser les bonnes questions qu'on a pas de logique).

    Donc les questions :

    Quand est-ce que je souhaite que le sous-form affiche les informations correspondantes ?
    1) Quand je rentre dans le sous-form ?
    2) Au chargement du formulaire principal ?
    3) Dés que mes informations sont connues ?
    4) Je ne sais pas... quand je ferme le formulaire principal ?

    Pour un meilleur confort pour l'utilisateur je dirais 3 !

    Pour créer une IHM il faut au moins connaitre les événements et leur enchainement, pas tous heureusement. Mais ceux qui reviennent souvent.

    Regarde le chasseur d'événement dans les outils en téléchargement, le code est ouvert donc tu peux voir ce qui se passe et dans quel ordre il s'enchaine.

    Ce post à un but didactique et vulgarisateur (Apprend à un homme à pêcher et il se nourrira tout seul...)

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Points : 59
    Points
    59
    Par défaut
    Non mais ça j'ai compris que c'est qu'une fois que mes 3 critères soient rentrés que le sous formulaire va les prendre en compte.Mon post précédent était purement cité à titre d'exemple.
    Je me pose les bonnes questions, je sais ce que je veux obtenir. Ce que j'ai plus de mal c'est à les appliquer en code, sinon je n'utiliserai pas ce forum.

    Cordialement,

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Points : 59
    Points
    59
    Par défaut
    Bonjour Faw,

    J'ai donc créé un bouton recherche et le code que tu m'as donné je l'ai mis dans ma recherche cmd_recherche_click.

    Mais mais il m'indique une erreur d'éxécution '3142' et il me sélectionne en jaune dans le débogueur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.monsousform.Form.RecordSource = Me.monsousform.Form.RecordSource & _
    " AND date_publication between " & Me.date_début & " and " & Me.date_fin
    Bizarrreee...

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    normal le code fourni doit être adapté à ton cas. le nom du formulaire, du sous formulaire, des controles...

    Tu devrais regarder le tuto sur les appels formulaires/états, cela t'aidera à comprendre le mécanisme.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Points : 59
    Points
    59
    Par défaut
    J'avais bien adapté les noms contenus dans ton code que tu m'as donné avec ceux utilisés dans ma base de données. Je suis débutant mais quand même

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    Citation Envoyé par Spanish_ Voir le message
    Bonjour Faw,

    J'ai donc créé un bouton recherche et le code que tu m'as donné je l'ai mis dans ma recherche cmd_recherche_click.

    Mais mais il m'indique une erreur d'éxécution '3142' et il me sélectionne en jaune dans le débogueur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.monsousform.Form.RecordSource = Me.monsousform.Form.RecordSource & _
    " AND date_publication between " & Me.date_début & " and " & Me.date_fin
    Bizarrreee...
    Je reprends ton message.
    Ton sous formulaire s'appelle monsousform ?
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Points : 59
    Points
    59
    Par défaut
    Je trouve que t'es pointilleu ke meme, c'était pour dire que c'était les 2 lignes du milieu que access me renvoit en erreur. A part ça tu as d'autres commentaires ou t'as un début de soluce?

  11. #11
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Si j'ai bien compris ta liste et ton sous-form sont synchronisés, c'est çà? avec
    la liste en champ père et l'identifiant du site en champ fils.
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  12. #12
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Reprise...
    tu peux appliquer un filtre à ton sous-form comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.monsousform.Form.Filter = "date_publication between #" & Me.date_début & "# and #" & Me.date_fin & "#"
    Me.monsousform.Form.FilterOn = True
    pour l'événement, cela dépend de ton contexte, de l'ergonomie que tu veux donner à ton interface...(cf les post de Loufab)
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Points : 59
    Points
    59
    Par défaut
    Oui c'est exactement ça, ma liste est synchronisée avec mon sous-form.
    Le critère de la date début et fin est un plus pour affinner la recherche.

    Merci, L'application du filtre que tu m'as donné fonctionne nickel mais quand je saisi:
    début :20/08/07 et fin: 26/10/07.

    Mais ça déconne, quand JJ<MM style :
    début: 09/10/07 et fin 26/10/07
    Il m'affiche toutes les date_publication entre le 10/09/07 et 26/10/07.

    Après plusieurs recherche, il yaurait un problème de format US.
    Pourtant mes champs date_debut et date_fin sont dans le format date abrégé (19/06/1994) et mon champs date_publication idem, il continu malgré tout à confondre le format US dès que JJ<MM.

  14. #14
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    En VBA les dates sont TOUJOURS au format US. Sauf formatage explicite de l'utilisateur (voir la fonction Format). Ou utiliser " au lieu de #.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Points : 59
    Points
    59
    Par défaut
    Re loufab

    J'ai essayé pas mal de chose pour essayer d'obtenir un résultat juste quand l'utilisateur tape une date où JJ<MM.
    J'ai changé comme tu m'as dis les # par " ---> erreur
    J'ai changé les formats de mes champs heure, rien n'y fait.
    Pourtant la table date_publication est dans le format français JJ/MM/AAAA.

    La date par défaut d'afficher dans date_debut et date_fin est la date du jour, elle s'affiche bien correctement (26/10/2007).

    Une autre idée, car là je sèche.

    c'est à s'y arracher les cheveux déjà j'en ai plus bcp

  16. #16
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    Au grand maux les grands moyens...

    Dans ton filtre utilise cette formule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "date_publication between " & Cdbl(me.datedébut) & " and " & Cdbl(me.datefin)
    Ici on transforme la date (us ou fr) en nombre du type Double. C'est le format interne des dates ACCESS. La partie entière (à gauche de la virgule) représente le N° du jour depuis l'origine du calendrier, et les décimales (partie à droite de la virgule représentant les heures.

    Avec ça Access n'interprète plus les dates.

    Peux-tu poster l'intégralité du code de la pose du filtre ?
    D'ou déclenches-tu la procédure ?

    Pour les cheveux c'est pareil...
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Points : 59
    Points
    59
    Par défaut
    Bonjour Loufab,

    J'ai testé ton code, en l'appliquant à mon cas, mais il me marque Erreur ODBC l'Appel à échoué.
    Je récapitule.
    En fais un utilisateur sélectionne dans une liste déroulante la catégorie de site qu'il veut visualiser dans le sous formulaire ( ça marche ).

    Ensuite l'utilisateur peut appliquer un 2ème filtre sur les dates.
    Il rentre la date de début et la date fin de création et il clique sur un bouton appliquant ce dernier.
    ça marche tant que JJ>MM sinon il est perdu, ceci est du a la version US des dates access mais je n'arrive pas à y remedier.

    Voici le code appliqué pour mes filtres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Sous_form_choix_categorie.Form.Filter = "DATE_PUBLICATION between " & CDbl(Me.dte_debut) & " and " & CDbl(Me.dte_fin)
    Me.Sous_form_choix_categorie.Form.FilterOn = True
    Merci de m'éclairer sur ce souci.

  18. #18
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    Bonjour,

    Quand tu dis ODBC, à quelle type de base de données accèdes-tu ?
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Points : 59
    Points
    59
    Par défaut
    Mes tables sont liées à une base de données Oracle.
    Mais je peux afficher tous les sites de la base données, c'est que dès que je clique sur le bouton pour appliquer le filtre sur la date, que le message d'erreur apparait.

    Cordialement,

  20. #20
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    La méthode cdbl() ne fonctionne que pour du Jet, pas Oracle. Essaye avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(me.dte_debut,"jj/mm/aaaa")
    En espérant que ça fonctionne.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/04/2007, 16h34
  2. Réponses: 6
    Dernier message: 18/03/2007, 16h22
  3. formulaire recheche multi critères
    Par tomas dans le forum IHM
    Réponses: 3
    Dernier message: 16/03/2007, 15h29
  4. formulaire tri multi critère
    Par laurent.w dans le forum IHM
    Réponses: 9
    Dernier message: 13/12/2006, 12h47
  5. Sous formulaires et multi utilisateurs
    Par capitaine dans le forum Access
    Réponses: 2
    Dernier message: 14/09/2006, 09h52

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