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 :

Gestion de fichiers Hypertextes / OLE [Toutes versions]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Par défaut Gestion de fichiers Hypertextes / OLE
    Etant dernière année d'Ingénieur Industriel, je termine par un stage de 4 mois en entreprise

    On me demande de réaliser un travail (à faire en parallèle à mon travail de fin d'études) qui est de créer une base de données qui permettra d'avoir une meilleure gestion des chantiers et du matériel qu'utilise celle-ci.

    Par l'intermédiaire de formulaires, il est possible d'enregistrer les chantier avec:
    - Un N° unique de chantier
    - Une description
    - Une adresse
    - Le nom et Logo du Maître d'ouvrage
    - Le nom et Logo du Maître d'oeuvre

    Par un autre formulaire, je donne la possibilité d'ajouter du matériel . On y retrouve:
    - La classe
    - La catégorie
    - La marque
    - Le type
    - Un lien hypertexte vers un fichier PDF qui se trouve sur l'ordinateur de l'utilisateur. Ce PDF est le détail (dimensions, poids, couleurs,...) du matériel qui est enregistré.

    Finalement, un 3e formulaire permet de gérer les fiches techniques pour chaque chantier. Ces fiches techniques ont une description reprise dans le Cahier Spécifique des Charges (généralement envoyé par le client ou l'architecte). Chaque fiche technique est liée à un matériel qu'il faut rechercher par des listes déroulantes.



    Jusque là, aucun problèmes et tout fonctionne parfaitement. J'y ai même ajouté des Options d'impression pour chaque formulaire qui renvoient faire des Etats prêts à recevoir les informations pour être imprimés .

    Il est donc possible d'imprimer toutes les fiches techniques (reprenant à chaque fois les détails du matériel) pour un chantier précis. Et c'est la où ça se complique puisque la direction aimerait que lorsque ces fiches techniques s'impriment, l'impression des LIEN HYPERTEXTE (donc des PDF) se fasse automatiquement.


    De plus, un autre point qui me pose problème, lorsque l'utilisateur qui enregistre du matériel, celui-ci va donc inscrire la classe/catégorie/marque/type et enregistrer le lien hypertexte (PDF) spécifique au matériel. A ce niveau, on me demande de créer une référence unique (ce qui a été fait en utilisant classe_catégorie_marque_type... ) et d'ensuite aller copier de manière automatique le fichier PDF qui se trouve dans l'ordinateur de l'utilisateur dans un fichier "sécurisé" (mais accessible) dans le serveur de l'entreprise. Mais ce n'est pas tout lors de la copie de ce document PDF, il faut également changer son nom par la référence du matériel.

    Un petit exemple vaut mieux qu'un bloc de texte:


    Classe : Sanitaire
    Catégorie: Tuyau
    Marque : Gébérit
    Type: Mépla

    Référence automatique: Sanitaire_Tuyau_Gébérit_Mépla
    Le fichier PDF sur l'ordinateur est donc lié par l'utilisateur et porte le nom de "FicheMépla.pdf"

    Lorsque l'utilisateur va enregistrer le tout, le PDF va se copier dans le serveur de l'entreprise sous le nom " Sanitaire_Tuyau_Gébérit_Mépla.pdf"


    Cela fait 2 semaines que je chercher par tout les moyen d'y arriver. La seule piste que j'ai trouvé est la procédure SHELLEXECUTE avec laquelle j'arrive à ouvrir un lien hypertexte mais pas à l'imprimer.

    Je n'ai pas voulu travailler avec des objets OLE pour ne pas alourdir le programme une fois que des milliers de PDF seront enregistré dans la Base de donnée. Peut etre que je me trompe à ce sujet.

    des Avis ??

    Merci d'avance

    Aurélien

  2. #2
    Membre émérite Avatar de dumas.blr
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2010
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2010
    Messages : 599
    Par défaut
    Bonjour cas_aurelien,

    Essaye d'utiliser la commande shell, ou tu peux spécifier les paramètres optionnel

    extrait de l'aide sur la commande shell :

    Syntaxe
    Shell(chemin[,stylefenêtre])
    La syntaxe de la fonction Shell dispose des arguments nommés suivants :

    chemin :
    Obligatoire. Variant (String). Nom du programme à exécuter et tout argument ou commutateur de ligne de commande requis ; peut inclure un répertoire ou un dossier et un lecteur.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Par défaut
    Citation Envoyé par dumas.blr Voir le message
    Bonjour cas_aurelien,

    Essaye d'utiliser la commande shell, ou tu peux spécifier les paramètres optionnel


    Je te remercie pour ta réponse.
    J'avais dejà essayé cette commande shell qui ne me permet que d'ouvrir le lien hypertexte (pas très interessant dans mon cas). Même en remplaçant le paramètre adéquat, je n'arrive pas à imprimer le lien :/

  4. #4
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    Pour essayer de comprendre pourquoi la "méhode Shell" ne fonctionne pas, peux-tu copier/coller le code qui suit dans un module de code et exécuter TrouverOpenEtPrint() ?
    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
    ' Trouver les méthodes "open" et "print" d'une extension de fichier
    Sub TrouverOpenEtPrint()
    Dim sExt As String, sVerb As String, sCmd As String
    Dim i As Long
    Dim sLog As String
     
    sExt = "pdf"
     
    For i = 1 To 2
       sVerb = Choose(i, "open", "print")
       sCmd = TrouverVerbePourExt(sExt, sVerb)
       If Len(sCmd) > 0 Then
          sLog = sLog & sVerb & ": " & sCmd & vbCrLf
       End If
    Next
     
    MsgBox sLog, vbOKOnly, "Resultat pour [" & sExt & "]"
    End Sub
     
    ' Trouver la ligne de commande d'un verbe d'une extension de fichier
    Function TrouverVerbePourExt(sExt As String, sVerb As String)
    Dim oSh As Object
    Dim sFileType As String, sCmd As String
     
    Set oSh = CreateObject("WScript.Shell")
     
    On Error GoTo ErrH
     
    sFileType = oSh.RegRead("HKCR\." & sExt & "\")
    If Len(sFileType) > 0 Then
       sCmd = oSh.RegRead("HKCR\" & sFileType & "\shell\" & sVerb & "\command\")
    End If
     
    ExitProc:
        Set oSh = Nothing
        TrouverVerbePourExt = sCmd
        Exit Function
     
    ErrH:
        On Error Resume Next
    End Function
    Lorsque la boîte de message s'affiche, faire Ctl+C et coller dans le bloc-notes.
    Exemple chez moi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ---------------------------
    Resultat pour [pdf]
    ---------------------------
    open: "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe" "%1"
    print: "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe" /p /h "%1"
     
    ---------------------------
    OK   
    ---------------------------
    Si le verbe "print" est trouvé, voici comment on peut l'exploiter en vba:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub TestImprimerPdf()
    Dim sCmd As String, sPrintCmd As String
    Dim sPdf As String, i As Integer
     
    sPrintCmd = TrouverVerbePourExt("pdf", "print")
     
    For i = 1 To 3
        sPdf = "C:\TestPdf\FichierPdf_0" & i & ".pdf"
        sCmd = Replace(sPrintCmd, "%1", sPdf)
        Shell sCmd, vbMinimizedNoFocus
    Next
     
    End Sub
    A+

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Par défaut
    Je viens d'essayer ta proposition, le code TrouverOpenEtPrint fonctionne puisqu'il ouvre le MessageBox.

    Par contre, rien ne s'affiche à l'intérieur de celui-ci .

    Merci pour ton aide

    Cas_aurelien

  6. #6
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Citation Envoyé par cas_aurelien Voir le message
    Je viens d'essayer ta proposition, le code TrouverOpenEtPrint fonctionne puisqu'il ouvre le MessageBox.

    Par contre, rien ne s'affiche à l'intérieur de celui-ci .

    Merci pour ton aide

    Cas_aurelien
    Cela laisse entendre qu'aucune application n'est associée à l'extension de fichier "pdf" ...
    Avec quoi s'ouvrent les fichiers dont l'extension est "pdf" ?

    A+

  7. #7
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,
    Citation Envoyé par cas_aurelien Voir le message
    Cela fait 2 semaines que je chercher par tout les moyen d'y arriver. La seule piste que j'ai trouvé est la procédure SHELLEXECUTE avec laquelle j'arrive à ouvrir un lien hypertexte mais pas à l'imprimer.
    Avec ShellExecute, on ouvre un document avec le verbe "open" et on l'imprime avec le verbe "print".
    Voir Comment imprimer un document sans pour autant ouvrir l'application associée ?

    A+

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

Discussions similaires

  1. [Excel] Gestion de fichiers via OLE en Cobol
    Par zulot dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/02/2008, 11h59
  2. gestion de fichier à partir d'un formulaire
    Par seb59dk dans le forum Access
    Réponses: 3
    Dernier message: 06/09/2005, 16h52
  3. Fonctions de gestion de fichiers
    Par sebduth dans le forum Fortran
    Réponses: 4
    Dernier message: 22/08/2005, 10h38
  4. [JDOM] Gestion "gros fichiers"
    Par Haazheel dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 17/10/2003, 13h42
  5. [Concept] BD ou Gestion par fichier. Intérêt de la BD ?
    Par Cian dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/11/2002, 12h16

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