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 :

Imprimer un rapport (état)


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut Imprimer un rapport (état)
    Bonjour,

    J'ai une appli de gestion d'adhérents.
    Elle doit pouvoir imprimer des bulletins d'adhésion.

    Le bulletin d'adhésion est fait par un état.
    Le RecordSource de l'état fourni toutes les données des adhérents.
    Je lance l'impression en VBA.
    Auparavent je paramètre la propriété Filter de l'état pour ne sortir que les bulletins selon un critère de filtrage.
    Mais pour que Filter soit pris en compte, il faut d'abord ouvrir le rapport, me semble t il?
    Donc je fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    sNomEtat="BULLETIN"
    DoCmd.OpenReport sNomEtat, acViewPreview
    ' fixer ses filtres
    'DoCmd.OpenReport sNomEtat, acViewNormal
    If Me.chkTrueAdhOnly Then
        Report_BULLETIN.Filter = "COLL_ID=" & Me.cboSelColl.Value & " and ADH_DATEADH>=#" & Me.txtDateAdh & "#"
    Else
        Report_BULLETIN.Filter = "COLL_ID=" & Me.cboSelColl.Value
    End If
    ' filter l'état
    Report_BULLETIN.FilterOn = True
    'DoCmd.PrintOut acPages, , , , intNbCopies
    DoCmd.OpenReport sNomEtat, acViewNormal
    L'impression se déroule correctement, mais l'état reste ouvert en mode design.

    Comment faire pour ne pas voir apparaitre l'état en mode design?

    Merci d'avance

    Philippe

  2. #2
    Membre Expert
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Par défaut
    Bonjour,
    Le mode Design est une porte ouverte. A chaque fois qu'elle est ouverte, il faut la fermer ... élémentaire mon cher Watson! Mais attention, tu n'es pas en mode Design mais en Aperçu avant impression (acViewPreview)!
    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
     
    sNomEtat="BULLETIN"
    DoCmd.OpenReport sNomEtat, acViewPreview
    ' fixer ses filtres
    'DoCmd.OpenReport sNomEtat, acViewNormal
    If Me.chkTrueAdhOnly Then
        Report_BULLETIN.Filter = "COLL_ID=" & Me.cboSelColl.Value & " and ADH_DATEADH>=#" & Me.txtDateAdh & "#"
    Else
        Report_BULLETIN.Filter = "COLL_ID=" & Me.cboSelColl.Value
    End If
    ' filter l'état
    Report_BULLETIN.FilterOn = True
    'Pour fermer l'état avant de ...
    DoCmd.Close acReport, sNomEtat, acSaveYes
    'DoCmd.PrintOut acPages, , , , intNbCopies
    'l'ouvrir ici
    DoCmd.OpenReport sNomEtat, acViewNormal
    Donc si tu remarques, j'ai mis ce code dans le tien DoCmd.Close acReport, sNomEtat, acSaveYes pour fermer l'état. Mais il est également possible de ne pas le voir affiché en mode Design pendant toute la modification du filtre en utilisant DoCmd.Echo False puis DoCmd.Echo True.

    Mais lorsqu'on parle de filtre, il n'est pas nécessaire d'ouvrir l'état en mode Design, après tout ce n'est qu'un filtre!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim sFiltre As String
    sNomEtat="BULLETIN"
    If Me.chkTrueAdhOnly Then
        sFiltre = "COLL_ID=" & Me.cboSelColl.Value & " and ADH_DATEADH>=#" & Format(Me.txtDateAdh,"mm/dd/yyyy") & "#"
    Else
        sFiltre = "COLL_ID=" & Me.cboSelColl.Value
    End If
    DoCmd.OpenReport sNomEtat, acViewNormal, , sFiltre
    C'est tout!
    Bon courage et @+

Discussions similaires

  1. Comment Ne pas imprimer directement un état?
    Par speleo dans le forum IHM
    Réponses: 4
    Dernier message: 22/01/2007, 13h57
  2. Imprimer un rapport avec Crystal Reports 8.5
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/08/2006, 21h39
  3. [VB6] imprimer un rapport crystal
    Par colooo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/07/2006, 14h23
  4. [C#] Comment imprimer un rapport de Cristal Report ?
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/05/2006, 19h10
  5. imprimer un rapport correspondant a un formulaire
    Par 3lyxir dans le forum Access
    Réponses: 6
    Dernier message: 18/05/2006, 12h09

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