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 :

Fonction SaveAsPDF et erreur d'exécution '429' : Le composant activeX ne peut pas créer d'objet [AC-2003]


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Fonction SaveAsPDF et erreur d'exécution '429' : Le composant activeX ne peut pas créer d'objet
    Bonjour,
    J'utilise la fonction SaveAsPDF depuis plusieurs années pour imprimer un état access en PDF.
    Depuis quelques temps ça ne fonctionne plus mais je ne sais pas pourquoi. J'obtiens le message d'erreur :
    "Erreur d'exécution '429': Un composant activeX ne peut pas créer d'objet."
    Le debugger met en évidence la ligne :
    set pdfc = New clsPDFCreator

    Est ce quelqu'un peut me venir en aide ?
    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
    Option Compare Database
    Option Explicit
     
    ' Ne pas oublier de cocher la bibliothèqe PDFCreator
    ' dans le menu Outils / Références de Visual Basic Editor
     
    ' API Windows pour faire une temporisation en millisecondes
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
     
    ' Constantes pour les temporisations
    Private Const maxTime = 20    ' en secondes
    Private Const sleepTime = 500 ' en millisecondes
     
    ' ---
    ' IMPRESSION D'UN ETAT EN PDF
    ' ---
    ' Entrée : strReportName <- Nom de l'état à imprimer en PDF
    '          strWhere      <- Clause WHERE filtrant l'état (facultatif)
    '          strPDFName    <- Nom du fichier PDF à générer (facultatif)
    '          strDirectory  <- Chemin de stockage du fichier PDF (facultatif)
    '
    Public Sub SaveAsPDF( _
      ByVal strReportName As String, _
      Optional ByVal strWhere As String = "", _
      Optional ByVal strPDFName As String = "", _
      Optional ByVal strDirectory As String = "")
     
      ' Quelques variables...
      Dim pdfc As PDFCreator.clsPDFCreator
      Dim DefaultPrinter As String
      Dim c As Long
      Dim OutputFilename As String
     
      ' Instancier un nouvel objet PDFCreator
      Set pdfc = New clsPDFCreator
     ' Paramétrer l'objet PDFCreator
      With pdfc
        .cStart "/NoProcessingAtStartup"
        .cOption("UseAutosave") = 1
        .cOption("UseAutosaveDirectory") = 1
     
        ' Chemin de destination
        ' Par défaut : dossier 'Mes documents' de l'utilisateur
        If strDirectory = "" Then
          strDirectory = Environ("USERPROFILE") & "\Mes documents\"
        End If
        .cOption("AutosaveDirectory") = strDirectory
     
        ' Nom du fichier PDF à générer
        .cOption("AutosaveFilename") = _
          IIf(strPDFName = "", strReportName, strPDFName)
     
        ' Format de sauvegarde (0 = PDF)
        .cOption("AutosaveFormat") = 0
     
        ' Mémoriser l'imprimante par défaut
        ' et définir PDFCreator à la place
        DefaultPrinter = .cDefaultPrinter
        .cDefaultPrinter = "PDFCreator"
        .cClearCache
     
        ' Imprimer l'état
        DoCmd.OpenReport strReportName, acViewNormal, , strWhere
        .cPrinterStop = False
      End With
     
      ' Temporisation
      c = 0
      Do While (pdfc.cOutputFilename = "") And (c < (maxTime * 1000 / sleepTime))
        c = c + 1
        Sleep 400
      Loop
     
      ' Nom du fichier PDF produit
      OutputFilename = pdfc.cOutputFilename
     
      ' Réinstaller l'imprimante d'origine
      With pdfc
        .cDefaultPrinter = DefaultPrinter
        Sleep 400
        .cClose
      End With
     
      ' Attendre jusqu'à ce que PDFCreator soit supprimé de la mémoire
      Sleep 4000
     
      ' Vérifier si le fichier a été créé
      If OutputFilename = "" Then
        MsgBox "Création du fichier PDF." & vbCrLf & vbCrLf & _
          "Une erreur s'est produite : temps écoulé !", vbExclamation + vbSystemModal
      End If
    End Sub

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Visiblement PDFcreator n'est plus inscrit en BDR ou ses clefs ont été altérées.

    Faire un réparation ou un reinstallation du PDFCreator devrait résoudre le problème.
    Dans les références tu dois avoir ce composant marqué MANQUANT.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Fonction SaveAsPDF et erreur d'exécution '429' : Le composant activeX ne peut pas créer d'objet
    Merci pour la réponse,
    Il n'y avait pas marqué MANQUANT dans les références.
    J'ai désinstallé puis réinstallé Pdfcreator et tout est rentré dans l'ordre.

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, il suffit de décocher Manquant puis de cliquer sur Ok.
    pour ensuite revenir à VBE : Outils/Références : Parcourir pour aller sélectionner PDFCreator.exe dans son dossier d'installation.
    pas de réinstallation à faire.

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

Discussions similaires

  1. [XL-2007] Erreur 429 Un composant ActiveX ne peut pas créer d'objet
    Par mouftie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/04/2013, 15h51
  2. [Débutant] Erreur '429' le composant activeX ne peut pas créer l'objet.
    Par sidisadmir dans le forum ADO.NET
    Réponses: 4
    Dernier message: 23/11/2012, 16h51
  3. Erreur '429' le composant activex ne peut pas créer l'objet
    Par sidisadmir dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 02/11/2012, 10h19
  4. [AC-2010] Erreur d'exécution 429 un composant ActiveX ne peut pas créer d'objet
    Par toumack dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/07/2012, 16h05
  5. [XL-2010] erreur 429 -un composant ActiveX ne peut pas créer d'objet
    Par Vince89 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/07/2012, 16h09

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