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

Access Discussion :

Ouvrir un état selon donnée pointée dans une zone de liste [AC-2010]


Sujet :

Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Ouvrir un état selon donnée pointée dans une zone de liste
    Dans un formulaire, j'ai créé une zone de liste reprenant quelques dates (issues d'une requête regroupement).
    Je souhaiterais ouvrir un état paramétré, en cliquant sur un bouton, dont le paramètre est une ou plusieurs dates figurant dans la liste.
    Comment adapter mon code ?

    Private Sub Commande15_Click()
    DoCmd.OpenReport "E_MonEtatavecFraisGroupeParDateReçus_Frais", acViewPreview, , " = DateReçus_Frais" & Liste.Value
    End Sub

    Merci pour toute aide

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "E_MonEtatavecFraisGroupeParDateReçus_Frais", acViewPreview, , " = DateReçus_Frais" & Liste.Value
    c'était presque bon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande15_Click()
    DoCmd.OpenReport "E_MonEtatavecFraisGroupeParDateReçus_Frais", acViewPreview, , "DateReçus_Frais = #" & Me.Liste.Value & "#"
    End Sub
    j'ai supposé que la date dans l'état est DateRecus_Frais et que la zone de liste s'appelle Liste, sans oublier les # pour retransformer en date (car la date est transformée en texte dans la zone de liste) sinon çà ne fonctionne pas.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 323
    Points : 23 758
    Points
    23 758
    Par défaut
    Bonjour.

    Comme tu mentionnes plusieurs date possibles, il va falloir faire un peu de code

    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
        dim critere as string
     
        Dim i As Integer
     
        For i = 0 To me.TalListe.ListCount - 1
            if critere<>"" then
               critere=critere & ", "
            end if
     
            If me.TaListe.Selected(i) Then
                  critere=critere & "#" &  me.TaListe.List(i)  & "#"
            End If
        Next i
     
        critere = "[DateReçus_Frais] in(" & critere & ")"
     
        DoCmd.OpenReport "E_MonEtatavecFraisGroupeParDateReçus_Frais", acViewPreview, , Critere
    Je ne l'ai pas testé mais cela devrait marcher.

    Attention à propos des dates, parfois Access confond le jour et le mois. 01/02/2016 peut être interprété comme le 1 février 2016 ou le 2 janvier 2016.
    Personnellement, quand je passe une date en critère à Access je m'assure qu'elle soit au format aaaa/mm/jj afin d'éviter les ambiguïtés.

    A+
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Bonsoir marot_r,
    tu as mille fois raison, comme le format de référence de la date dans l'environnement VBA est toujours le format US, j'aurai du proposer la solution avec la conversion dans ce format. A l'époque ou je développais en Access (c'était il y a longtemps !) je le faisais systématiquement. Et comme évidemment j'ai testé avec une date 01/01/ c'est passé, sinon j'aurai vu que çà ne fonctionnait pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "E_MonEtatavecFraisGroupeParDateReçus_Frais", acViewPreview, , "DateReçus_Frais = #" & Cdate(Format(Me.Liste.Value, "mm/dd/yyyy")) & "#"
    Cela étant, cette solution est valable pour une zone de liste déroulante et pas pour une zone de liste comme tu le suggères.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Super, super,
    grand merci tee-grandbois et marot_r pour votre aide. C'est excellent, ça marche (avec adaptation des dates).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] ouvrir un état selon le choix de la zone de liste déroulante
    Par spacesheep dans le forum IHM
    Réponses: 8
    Dernier message: 29/08/2011, 17h57
  2. Réponses: 3
    Dernier message: 07/04/2011, 15h38
  3. [Access 2007] changement de donnée dans une zone de liste
    Par Jerez62 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/09/2008, 14h09
  4. Réponses: 8
    Dernier message: 24/02/2006, 10h59
  5. Retrouver une donnée dans une zone de liste
    Par uloaccess dans le forum Access
    Réponses: 9
    Dernier message: 07/11/2005, 14h25

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