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 :

impression automatique d'état


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 81
    Points : 60
    Points
    60
    Par défaut impression automatique d'état
    Bien le bonjour à tous,

    Une fois de plus, mes maigres compétences se trouvent dépassées par l'anarchie d'un monde où la strict codifications rend la perfection aussi difficile à atteindre que facile à espérer.

    Mon problème est le suivant. J'utilise un programme pour encoder des dossiers sur lesquels l'utilisateurs peut ensuite travailler.

    A la création du dossier, l'utilisateurs vas donc entrer un certains nombre de données qui seront complétés au fur et à mesure que le dossier avance.

    J'ai développé un formulaire comprenant plusieurs sous-formulaires afin de résumer (voir modifier) les diverses informations contenues dans le dossier. Ce formulaire comprend un bouton qui permet d'envoyer toutes ces informations dans un état, lequel s'imprime ensuite sur l'imprimante par défaut.

    Pour réalisé l'impression, je me suis d'abord tourné vers l'option docmd.PrintOut, mais il m'a rapidement semblé que cela ne répond pas à mon problème. Je me suis alors tourné vers l'option [objet].Print. Mais je ne réussit pas à la faire fonctionner....

    Que je mette le [NomDeMonEtat].Print ou un simple Me.Print, je tombe sur une erreur.... (en anglais) que je ne comprend pas très bien et qui me dit que qu'il y a un problème avec l'objet sur lequel je veux appliquer la fonction Print...

    Tout cela est d'autant plus rageant que c'est le dernier point problématique de mon programme avant les tests grandeur nature....

    En espérant que vous pourrez me guider sur la voie de la sagesse,

    Merci d'avance.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 191
    Points : 209
    Points
    209
    Par défaut
    bonjour,
    il me semble que c'est ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "nomdetonetat", acViewNormal
    ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "nomdetonetat", acNormal

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 81
    Points : 60
    Points
    60
    Par défaut
    Salut,

    Merci.

    Mais je ne comprend pas très bien.... J'avais bien vu un code similaire au tiens dans la FAQ (ben oui, je commence à être habitué), mais quelque chose me titille que je ne comprend pas....

    Jusqu'à maintenant, j'avais toujours utilisé OpenReport... Ben pour ouvrir un formulaire... ET aucun ne s'est jamais imprimé....

    Alors, en observant ton code, je suppose que c'est l'option ACViewNormal qui permet l'impression, mais dans ce cas, à quoi ça sert d'avoir une option Print?

    Bon, je vais pas me lancer dans un débat sur le la logique des commandes en Access.... Mais bon. Je comprend pas tout le raisonnement, ce qui m'ennuis parce que plus on comprend le raisonnement et mieu on se débrouille seul...

    Encore merci, je vais tester ça de toutes façon, et on verra bien.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 191
    Points : 209
    Points
    209
    Par défaut
    il y a des propriétés tel que print qui servent pour afficher dans la fenetre de debugage

    jusqu'à maintenant, j'avais toujours utilisé OpenReport... Ben pour ouvrir un formulaire... ET aucun ne s'est jamais imprimé....
    pour ouvrir un formulaire tu utilises openForm pas OpenReport.
    le OpenReport c'est pour ouvrir un état...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 81
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par fulgaro
    il y a des propriétés tel que print qui servent pour afficher dans la fenetre de debugage

    pour ouvrir un formulaire tu utilises openForm pas OpenReport.
    le OpenReport c'est pour ouvrir un état...
    Oups, je ferais peut-être bien de retourner me coucher moi....

    Enfin, n'empêche que c'est pas simple à trouver na!


    meuhhhhhhhh

    allez, je passe cette discution en [résolue], sinon vais me faire taper sur les doigts.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 81
    Points : 60
    Points
    60
    Par défaut
    Bonjour à tous,

    Bon, ben, finalement, c'est pas aussi résolu que je le croyais....

    Ayant eut des problèmes d'imprimante, je n'ai pas pû tester immédiatement (je vous fais une telle confiance), puis, j'ai eut droit à des congés mérités (si si), et à mon retour..... oups, j'ai un peu oublier de faire les tests... (non pas la tête m'sieur....)

    En tout cas, voici ce qui arrive....

    j'utilise la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "RapportFr", acViewNormal
    Et dans mon rapport, sur ouverture, j'ai une requête qui alimente diverses variables.

    Mon objectif étant d'imprimer l'état sans que l'utilisateur le voit à l'écran, j'avais mis un docmd.close "NomDeMonEtat", mais après test, je l'ai enlevé, et il semble que l'état ne s'affiche quand même pas à l'écran (est-ce bien normal???)

    De plus, comme je vous l'ai dis, il y a des soucis avec l'imprimante (imprimante en réseau mal configurée.... mais ca devrait être réglée dans les semaines a venir). Donc, pour être sur de moi, j'ai mis par défaut "l'imprimante" windows qui enregistre dans un document image.

    Lorsque je clic sur mon bouton, j'ai la petite fenêtre d'impression qui s'ouvre, je choisi le nom de fichier et l'endroit ou ce dernier doit être enregistrer, le tout se ferme, et mon fichier..... n'est pas enregistré.

    Toujours est-il que l'impression ne se fait toujours pas.... une idée? une suggestion? une solution peut-être???

    merci d'avance.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 81
    Points : 60
    Points
    60
    Par défaut
    Voilà, je n'ai toujours pas la réponse, mais je me pose une question qui pourrait peut-être vous mettre sur la voie....

    Est-ce que le fait que l'état n'est pas imprimé peut avoir un rapport avec le fait qu'il n'est pas relié à une table?

    Je vous explique....

    J'ai entre 5 et 6 tables différentes qui apportent des données à mon états. De plus, certaines tables ont une liaison de type 1-n.
    Enfin, je dois donner à mon état un format précis, dûr aussi bien aux habitudes de travail des utilisateurs qui veulent que le document garde la même tête que maintenant qu'au fait que toutes les données doivent tenir sur une seule page (c'est impératif).

    Donc, j'ai créé mon état entièrement à la main, sans liaison de données, et avec des champs de texte indépendant. Puis, à l'ouverture, je lance une série de requêtes qui me permettent d'afficher mes variables à l'endroit voulut.
    Je vous mets le code correspondant à la fin de ce message.

    Comme je n'ai plus d'idées du tout, je me dis que c'est peut être là qu'il y a un problème qui m'empêche d'imprimer le document....

    voici le 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
     
     
    Private Sub Report_Open(Cancel As Integer)
     
    Dim parle As String
    Dim i As Integer
    Dim req As String
    Dim con As ADODB.Connection
    Set con = CurrentProject.Connection
    Dim MyRecordSet As New ADODB.Recordset
    MyRecordSet.ActiveConnection = con
     
     
    parle = "Fr"
     
    Me.TexteNom = Form_Consultations.TexteNom
    Me.TexteDateNais = Form_Consultations.TexteDateNaiss
    Me.TexteRegNat = Form_Consultations.TexteRegNat
    Me.TexteEC = Form_Consultations.TexteEC
    Me.TexteHab = Form_Consultations.TexteHabitation
    Me.TexteLangue = Form_Consultations.TexteiLangue
    Me.TexteAdr = Form_Consultations.TexteNomRue & " - " & Form_Consultations.TexteCp & " - " & Form_Consultations.TexteVille
    Me.TexteTelPerso = Form_Consultations.TexteTelPerso
    Me.TexteTelW = Form_Consultations.TexteTelPro
    Me.TexteMail = Form_Consultations.TexteMail
    Me.TexteFax = Form_Consultations.TexteFax
    Me.TexteMat = Form_Consultations.TexteMatricule
    Me.TexteUnite = Form_Consultations.TexteUnite
    Me.TexteStatut = Form_Consultations.TexteStatut
    Me.TexteFonction = Form_Consultations.TexteFonction
    Me.TexteDuree = Form_Consultations.EtiDuree.Caption
     
     
     
    'récupération de la liste de tous les problèmes contenu dans le rapport
    'et affectation de cette liste de problème au document word
     
     
    req = " SELECT distinct Problemes.LibProb" & parle & ", Concerne.TypeProb"
    req = req + " FROM Problemes INNER JOIN Concerne "
    req = req + " ON Problemes.Id_Probleme = Concerne.Id_Prob "
    req = req + " WHERE (((Concerne.Id_Rapport) = '" & VarGlo.CliNumRapport & "') "
    req = req + " AND Concerne.TypeProb='Dep')"
     
    MyRecordSet.Open req
     
    If (MyRecordSet.EOF = False) Then
     
        MyRecordSet.MoveFirst
     
    End If
     
    i = 1
     
    While (MyRecordSet.EOF = False)
     
        If (i < 13) Then
     
     
            Me.[TexteProb & i] = MyRecordSet.Fields("LibProb" & parle)
     
            i = i + 1
     
            MyRecordSet.MoveNext
     
        Else
     
            MsgBox ("Il n'est pas possible d'imprimer plus de 12 problèmes sur un rapports. Contacter l'administrateur pour régler cette situation exceptionnelle.")
     
     
            MyRecordSet.MoveLast
            MyRecordSet.MoveNext
     
     
        End If
     
    Wend
     
    MyRecordSet.Close
     
    req = ""
     
    'récupération de la liste de toutes les actions contenues dans le rapport
    'et affectation de cette liste d'action au document
     
    req = "SELECT distinct Realise.Id_Act, Actions.LibAct" & parle
    req = req + " FROM Actions INNER JOIN Realise ON Actions.Id_Action = Realise.Id_Act "
    req = req + " WHERE (((Realise.Id_Rap)='" & VarGlo.CliNumRapport & "'))"
     
     
    MyRecordSet.Open req
     
    If (MyRecordSet.EOF = False) Then
        MyRecordSet.MoveFirst
    End If
     
    i = 1
     
    While (MyRecordSet.EOF = False)
     
        If (i < 13) Then
     
            Me.[TexteAct & i] = MyRecordSet.Fields("LibAct" & parle)
     
            i = i + 1
     
            MyRecordSet.MoveNext
     
        Else
     
            MsgBox ("Il n'est pas possible d'imprimer plus de 12 actions sur un rapport. Contacter le responsable informatique pour régler ce cas particulier.")
     
     
            MyRecordSet.MoveLast
            MyRecordSet.MoveNext
     
        End If
     
    Wend
     
    MyRecordSet.Close
     
    req = ""
     
    'récupération des cohabitants
     
    req = "SELECT Cohabitants.NomCoha, Cohabitants.PrenomCoha, "
    req = req & " Cohabitants.DateNaissCoha , TypeCoha.LibTypeCoha" & parle
    req = req & " FROM TypeCoha INNER JOIN Cohabitants "
    req = req & " ON TypeCoha.Id_typeCoha = Cohabitants.TypeCoha "
    req = req & " WHERE (((Cohabitants.Date_Situ)=#" & VarGlo.ClidateSitu & "#) "
    req = req & " AND ((Cohabitants.Id_Client)='" & VarGlo.CliId & "'))"
     
     
    MyRecordSet.Open req
     
    If (MyRecordSet.EOF = False) Then
     
        MyRecordSet.MoveFirst
     
    End If
     
    i = 1
    While (MyRecordSet.EOF = False)
     
        If (i < 10) Then
     
     
            Me.[TypeCoha & i] = MyRecordSet.Fields("LibTypeCoha" & parle)
            Me.[NomCoha & i] = MyRecordSet.Fields("NomCoha")
            Me.[PrenomCoha & i] = MyRecordSet.Fields("PrenomCoha")
            Me.[DateNaissCoha & i] = MyRecordSet.Fields("DateNaissCoha")
     
            i = i + 1
            MyRecordSet.MoveNext
     
        Else
     
           MsgBox ("Il n'est pas possible d'imprimer plus de 9 cohabitants sur un rapport. Contacter le responsable informatique pour régler ce cas particulier.")
     
           MyRecordSet.MoveLast
           MyRecordSet.MoveNext
     
        End If
     
    Wend
     
    MyRecordSet.Close
    Set MyRecordSet = Nothing
    Set con = Nothing
     
     
    End Sub
    encore merci pour votre temps.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 81
    Points : 60
    Points
    60
    Par défaut
    Euh.... après avoir réalisé de nombreux test bidons juste pour voir, je crois pouvoir dire deux choses.

    Premièrement :

    Si je créé un état avec l'asistant et que je lui mets une source d'office, l'impression fonctionne bien. Si je le créé avec des textebox et que je fourni les valeurs indépendement de toutes "source" connue de l'état, l'impression ne se fait pas.

    Pire encore, il semblerait que le "Me" ne fonctionne pas... en effet, les textebox ne semblent pas être reconnues. Si je tente un débuggage pas-à-pas, j'ai plein d'erreur qui me disent que l'objet n'existe pas ou n'est pas définit (je peux vous affirmer pour avoir vérifier 20 fois que les objets existent bel et bien.... je dis "les" parce que j'ai sauté des lignes pour en tester plusieurs, et j'ai toujours le même problème....)

Discussions similaires

  1. Impression automatique d'un état crystal report!
    Par lhprogra dans le forum SAGE
    Réponses: 3
    Dernier message: 04/06/2014, 18h43
  2. Impression automatique d'un état
    Par hermana dans le forum SAGE
    Réponses: 9
    Dernier message: 29/08/2012, 14h38
  3. Impression automatique
    Par Poussy-Puce dans le forum ASP
    Réponses: 1
    Dernier message: 09/02/2006, 10h36
  4. PDF automatique sur un état
    Par laurent35 dans le forum Access
    Réponses: 7
    Dernier message: 05/12/2005, 08h13
  5. Impression automatique involontaire d'un état
    Par Celia1303 dans le forum Access
    Réponses: 5
    Dernier message: 26/10/2005, 23h29

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