Export d'un état au format PDF à partir d'ACCESS

damedom41 Messages postés 79 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 2 août 2014 - 2 août 2014 à 17:03
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 - 2 août 2014 à 17:21
Bonjour,

Je génère des états à partir d'une base ACCESS que je code en VBA, en particulier des commandes fournisseur, que je souhaite pouvoir envoyer par mail.
Tout fonctionne parfaitement (lorsque l'état est en visualisation clic droit puis choix du format d'export, ou du lien vers outlook)
tant que l'état ne fait qu'une page.
Dès que l'état fait plus d'une page, je reçois le message suivant :
"l'exécution d'une macro personnalisée dans cet état a échoué, ce qui empêche le rendu de l'état".
Je ne comprends vraiment pas, puisque le code VBA est le même (ci-dessous) et que seul le nombre de lignes de produits peut 'obliger' à avoir deux pages au lieu d'une, mais c'est complètement automatique.

Si quelqu'un a une idée, elle serait gravement bienvenue, parce que mon client final est très gêné d'être obligé pour envoyer sa commande d'imprimer l'état, puis de le scanner, puis de l'envoyer à son fournisseur.

Cordialement,

Dominique Boiret

Option Compare Text
Option Explicit

Public dbhcgcli As String

Private Sub EntêteÉtat_Format(Cancel As Integer, FormatCount As Integer)
'MsgBox ("hcgdtc " & HCGDTC & " hcgdtl " & HCGDTL)
txt_hcgdtc2 = Mid(txt_hcgdtc, 7, 2) & "/" & Mid(txt_hcgdtc, 5, 2) & "/" & Mid(txt_hcgdtc, 1, 4)
txt_hcgdtl2 = Mid(txt_hcgdtl, 7, 2) & "/" & Mid(txt_hcgdtl, 5, 2) & "/" & Mid(txt_hcgdtl, 1, 4)
End Sub

Private Sub EntêteÉtat_Print(Cancel As Integer, PrintCount As Integer)
txt_hcgdtc2 = Mid(txt_hcgdtc, 7, 2) & "/" & Mid(txt_hcgdtc, 5, 2) & "/" & Mid(txt_hcgdtc, 1, 4)
txt_hcgdtl2 = Mid(txt_hcgdtl, 7, 2) & "/" & Mid(txt_hcgdtl, 5, 2) & "/" & Mid(txt_hcgdtl, 1, 4)
End Sub

Private Sub PiedÉtat_Format(Cancel As Integer, FormatCount As Integer)
If dbnodata = True Then
    Exit Sub
End If
End Sub

Private Sub PiedÉtat_Print(Cancel As Integer, PrintCount As Integer)
If dbnodata = True Then
    Exit Sub
End If
End Sub

Private Sub Report_NoData(Cancel As Integer)
dbnodata = True
End Sub

Private Sub ZonePiedPage_Format(Cancel As Integer, FormatCount As Integer)
If IsNull(HCGCLI) = False Then
    If lec_client(HCGCLI) = 1 Then
        dbhcgcli = rscli("clisoc") & "-" & rscli("cliad1") & "-" & rscli("cliad2")
        dbhcgcli = dbhcgcli & "-" & rscli("clicpo") & "-" & rscli("clivil") & " Téléphone " & rscli("clitel")
    Else
        dbhcgcli = ""
    End If
End If
If IsNull(dbhcgcli) = False Then
    txt_hcgcli = dbhcgcli
End If
End Sub

Private Sub ZonePiedPage_Print(Cancel As Integer, PrintCount As Integer)
If IsNull(HCGCLI) = False Then
    If lec_client(HCGCLI) = 1 Then
        dbhcgcli = rscli("clisoc") & "-" & rscli("cliad1") & "-" & rscli("cliad2")
        dbhcgcli = dbhcgcli & "-" & rscli("clicpo") & "-" & rscli("clivil") & " Téléphone " & rscli("clitel")
    Else
        dbhcgcli = ""
    End If
End If
If IsNull(dbhcgcli) = False Then
    txt_hcgcli = dbhcgcli
End If
End Sub
Bonjour,

1 réponse

Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
Modifié par Whismeril le 2/08/2014 à 17:22
Merci de penser à poster dans la catégorie VBA.

Penser aux balises de coloration syntaxique: bouton <>, préciser le langage :<code csharp>.
Quand la solution est trouvée, mettre la discussion Résolue.
0
Rejoignez-nous