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 :

Impression sous-formulaire


Sujet :

Access

  1. #1
    Tan
    Tan est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 168
    Points : 158
    Points
    158
    Par défaut Impression sous-formulaire
    Bonjour,

    But:
    Lorsque l 'on a un formulaire affiché en mode feuille de données, on peut imprimer ce formulaire.

    Ce que je voudrai, c'est la même chose pour les données d'un sous-formulaire.

    Explication:
    j 'ai un formulaire me permettant de filtrer des données, et dans un sous formulaire le résultat de ce filtrage.
    Si je fais imprimer, Access m'imprime le formulaire, moi je voudrai que les résultats (les données du sous-formulaire)

    Problème:
    Je pourrai passer par un état ayant la même source que mon sous-formulaire,
    mais ce qui me gêne c'est le temps d'éxécution de la requête, si je filtre et qu'il me faut 1min pour afficher le résultat
    Si quand je veux l'imprimer, il me faut encore une minute c'est lourd...

    Merci à tous ceux qui ont des astuces sur ce problème.

    Tan

  2. #2
    Tan
    Tan est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 168
    Points : 158
    Points
    158
    Par défaut
    Peut-être en utilisant le recordset.Clone et l'objet Printer je pourrai m'en sortir.

    Par contre, je ne sais pas s'il y a l'objet Printer sous Access 2000 (dans la msdn ils en parlent pour office XP, mais je ne sais pas si avant ça existe)

    Savez vous si l'objet Printer existe sous 2000 et si je peux m'en servir pour faire ce que je souhaite?

    A bientôt Tan

  3. #3
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello

    Bonne idée que le recordsetclone, ça pourrait te permettre d'écrire dans une table temporaire tes données avec un état lié, le temps d'accès serait idéal.

  4. #4
    Tan
    Tan est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 168
    Points : 158
    Points
    158
    Par défaut
    Salut,

    Si je ne peux pas utiliser la solution de l'objet Printer, je ferai surement cette méthode.
    L'objet Printer, c'est sûr n'est pas présent avec access 2000, mais si je pouvais appeler une API qui ferai pareil, ça serai pas mal (Si quelqu'un connait je serai preneur).

    Je pense que cette solution serait bien, car il me suffirait juste de parcourir le jeu d'energistrement et ça serai fini...



    Sinon, je fais passe par la création d'une table temporaire:
    Faut-t-il que je parcours le recordset et que j'ajoute élément par élément, où il existe une méthode qui transforme une recordset en table (on ne sait jamais)...

    A bientôt Tan

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Un formulaire est un composant visuel, en aucun cas il ne doit servir à l'impression

  6. #6
    Tan
    Tan est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 168
    Points : 158
    Points
    158
    Par défaut
    Salut,

    Je veux le formulaire pour le côté interaction (double clic sur élément, par exemple) et visuel, mais je veux aussi pouvoir imprimer les données que j'affiche dans le sous-formulaire, si besoin.

    Etant donné que j'ai déjà récupéré les données dans le sous-formulaire et qu'il me faut un certain temps pour cela, je ne souhaiterai pas perdre autant de temps pour imprimer.

    Je souhaite juste les données, donc si j'avais l'objet Printer (ou autre, je ne connais que Printer mais c'est sous VB6), je pourrai imprimer les données à l'aide d'un recordsetClone.

    Pour résumer, mon problème est un problème de rapidité, qui devrait pouvoir se résoudre puisque j'ai déjà toutes les données de disponibles...

    A bientôt Tan

  7. #7
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Et bien utilises un état, en affectant au recordset de l'état le recordsetclone du sous formulaire

  8. #8
    Tan
    Tan est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 168
    Points : 158
    Points
    158
    Par défaut
    Je vais essayer mais pour l'instant je ne vois pas trop comment encore (Et ça m'étonnes même).

    Je pense donc, que sur l'évènement load de l'état, je doit définir la source de données.

    Si je me sert du recordsource ça marchera, mais il refera la recherche des données, et je ne souhaite pas (dans la mesure du possible) à rééxécuter de nouveau la requête.

    Et si je me sert de Me.Recordset pour lui affecter mon recordsetColne ça n'a pas l'air de passer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Report_Open(Cancel As Integer)
        Dim rst As dao.Recordset
     
        Set rst = Forms("F_ChoixIntegrite").SF.Form.RecordsetClone
        Set Me.Recordset = rst  ' Ici Erreur, même sans le Set
    End Sub
    Message d'erreur: cette fonction n'est pas disponible dans une base mdb

    La piste est bien en tout cas, mais il faut encore que j'arrive à le faire.

  9. #9
    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 597
    Points
    19 597
    Billets dans le blog
    65
    Par défaut
    il me semble qu'il te faut utiliser ADO pour ton recordSet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim rst As ADODB.Recordset
    Set rst = New ADODB.Recordset

    ........................................

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set Me.Recordset = rst


    @ +

  10. #10
    Tan
    Tan est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 168
    Points : 158
    Points
    158
    Par défaut
    Je pense pas que DAO ou ADODB fasse quelquechose ici.

    De plus, Me.Recordset n'existe pas pour les état (ce qui explique mon message d'erreur).
    Il me semblait pourtant l'avoir vu hier soir (sur 2003 alors que là j'ai 2000)

    Enfin bref, je pense que même s'il ça existait, je ne pourrai pas l'affecter si facilement (je pense que cette propriété serai en lecture seule)

    Donc, je cherche toujours une solution. En attendant, je suis passer par le recordsource, mais il recalcule bien la requête pour afficher l'état, et donc je perdre 1 minute (pour rien)

    Y a-t_il un moyen d'imprimer sans passer par des état, come le fait l'objet Printer sous VB6.

    Si je ne trouve, je passerai surement par la table temporaire, qui devrait faire gagner du temps.

    Salut.

Discussions similaires

  1. [AC-2007] Impression sous-formulaires indépendants
    Par granchef dans le forum IHM
    Réponses: 1
    Dernier message: 15/03/2010, 15h26
  2. [AC-2007] Impression sous-formulaires indépendant
    Par granchef dans le forum IHM
    Réponses: 7
    Dernier message: 15/12/2009, 17h02
  3. [AC-2007] Impression sous formulaire
    Par titsoun83 dans le forum IHM
    Réponses: 2
    Dernier message: 28/08/2009, 19h35
  4. [AC-2003] Impression sous formulaire filtré
    Par Firestar34 dans le forum IHM
    Réponses: 2
    Dernier message: 21/07/2009, 10h08
  5. Impression sous formulaires feuille de donnée
    Par langelot222 dans le forum IHM
    Réponses: 1
    Dernier message: 14/06/2007, 20h23

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