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 :

DoCmd.OpenReport avec filtre [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 111
    Points : 59
    Points
    59
    Par défaut DoCmd.OpenReport avec filtre
    Bonjour

    je rame un peu (beaucoup) en VB et je cherche a la suite d'une date saisie dans une Inputbox

    - ouvrir un état en impression directe filtré par la date entrée dans l'Inputbox
    - sauvegarder cet état en PDF avec comme nom la date rentrée dans l'inputbox.pdf
    - envoyer cet etat (donc ce PDF) par Email

    J'ai posé une question dans ce sens dans la section IHM mais il me semble que cette question est plus appropriée dans la section VB...

    Actuellement mon code est celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ' créé le fichier PDF d'apres le nom de l'etat choisi
    Dim NmFichier As String 'Nom du fichier
    Dim dateselection As Date
    Dim DateTemp As Date
    dateselection = InputBox("Entrez la date :")
    DoCmd.OpenReport "MonEtat", , , "cdbl([Date])=" & CDbl(dateselection)
    NmFichier = "Liste des Soumissions du" & "_" & dateselection & ".pdf"
    DoCmd.OutputTo acOutputReport, "MonEtat", acFormatPDF, "c:\" & NmFichier,  True
    'envoie le fichier choisi à la personnes déterminée par le lien
    DoCmd.SendObject acSendReport, "MonEtat", acFormatPDF, "destinataire@fai.fr", , , "Liste du ", "Veuillez trouver ci joint ...... pour la journée du ", False
    While CurrentProject.AllReports("MonEtat").IsLoaded
       DoEvents
    Wend
    DoCmd.RunSQL "Delete * From TableTempoDateImpression where DateTemp=" & dateselection
    mais autant l'etat imprimé est filtré, autant les deux autres (celui sauvegardé et celui mailer) ne le sont pas.
    Du reste, cela cause uen erreur et le save en PDF ne se fait pas car le fichier non filtré donne un état trop volumineux (avec un etat plus petit le save se fait mais toujours sans tenir compte du filtre)

    J'ai trouvé cette discution ou la personne dit:

    Citation Envoyé par AndréPe Voir le message
    Les méthodes OutPutTo et SendObject, si on ne donne pas de nom d'objet (seulement acOutPutReport ou acSendReport) à envoyer, utilisent l'objet actif.
    Puis elle donne du code...mais j'avoue ne rien y comprendre
    quelqu'un peut il m'aider à adapter cela a mon cas ?

    ce que je comprends d'apres les explications de la personne, c'est que une fois que le report est Open, plus besoins de specifier d'argument, il devrait se baser sur le report Open dans l'etat avec la selection faite au moment de l'ouverture ???? Mais il semble ne s'ouvrir que sans tenir compte de cet argument car si je ne specifie pas d'objet dans la methode DoCmd.OutputTo, j'ai un message d'erreur qui me dit que "l'action ou la methode nécessite un argument type d'objet, et pourtant dans la méthode DoCmd.OutputTo expliquée dans le Help, l'objet est decris comme facultatif...

    Quelqu'un pourrait il m'aider.

    par avance merci

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 348
    Points : 19 600
    Points
    19 600
    Billets dans le blog
    65
    Par défaut
    Salut,

    L'idée serait d'utiliser un formulaire (MonFormulaire) à la place de l'InpuBox, avec une zone de texte dateselection dans ce formulaire:

    et après tu crée une requête qui sera la source de ton état (MonEtat), qui ressemblera à cela:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *
    from MaTable
    where [MaDate]= Forms!MonFormulaire!dateselection

    (je te conseille de changer ton champs Date (mot réservé) en MaDate par exemple)


    et après dans ton code pour ouvrir ton état tu n'a plus besoin de filtrer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    DoCmd.OpenReport "MonEtat"
    ...
    Sinon pour exporter ton état dans un fichier pdf, à la place de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OutputTo acOutputReport,...
    Utilise plutôt PDFCreator:

    Comme indiqué dans ce tuto

    Une autre solution dans les sources.



    A+

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Juillet 2011
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 82
    Points : 68
    Points
    68
    Par défaut
    Denis, C'est excellent ca m'a beaucoup aidé.

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

Discussions similaires

  1. [AC-2007] DoCmd.OpenReport avec paramètre
    Par mat1554 dans le forum VBA Access
    Réponses: 7
    Dernier message: 11/07/2012, 23h19
  2. [AC-2007] Double condition Where avec utilisation de AND dans DoCmd.OpenReport
    Par m1koo dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/03/2012, 08h28
  3. souci avec DoCmd.OpenReport
    Par dimis dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/07/2009, 15h07
  4. Requete avec filtre sur un champ
    Par podz dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/02/2005, 14h37
  5. [Plugin] Bouton browse projet avec filtre
    Par jcarre dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 09/04/2004, 13h56

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