Bonjour à tous,
L'introduction
je suis en train de réaliser sous Access 2010 une base de donnée me permettant de gérer un ensemble de bâtiments administratifs (je début sous Access mais j'ai de bonnes bases en VBA Word/Excel).
Cette base me permettrait, entre autre, de réaliser des documents Word pour sortir des rapports pour chaque bâtiment ( je ne peut pas utiliser les "Report" intégrés à Access car chez nous (banque), tout est Corporate, et les documents types sont imposés)
J'ai donc crée une table avec tous les documents type dont j'ai besoin (fichier attachés à un enregistrement) et, entre autre, un formulaire alimenté par différentes tables qui regroupent les informations des bâtiment.
J'aimerai que, quand je clic sur OK en bas du formulaire, Access ouvre le bon fichier Word attaché à un enregistrement de la table des fichiers types et le remplisse comme il faut. J'ai, en ce moment, plusieurs fichiers Word avec leurs macros VBA et une base de donnée sous excel et ça marche assez bien mais ce n'est quand-même pas optimal...
Les soucis
J'ai, dans un premier temps un souci pour ouvrir le fichier attaché (en revanche, aucun problème pour ouvrir un fichier qui se trouve ailleurs dans un dossier Windows mais j'aimerais que tout soit intégré à la table et pas avoir un sous-dossier avec plein de fichiers Word ou autre...)
Mon deuxième souci sera sûrement de remplir le document via les "Text Form Fields" de Word et ce, depuis Access, mais ça, je me laisse chercher encore un peu avant de sonner l'alarme
J'ai bien mis,
1 2
| Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String _
, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long |
dans un module, je suppose que c'est aussi nécessaire pour ouvrir un fichier attaché à un enregistrement.
Ensuite je connais ce code :
ShellExecute 0&, vbNullString, "monfichier.doc", vbNullString, vbNullString, vbNormalFocus
Mais bon, ça c'est pour un fichier situé dans un dossier Windows.
J'ai essayé vers cette voie:
ShellExecute 0&, vbNullString, MA_TABLE.MON_FIELD.MA_LIGNE, vbNullString, vbNullString, vbNormalFocus
mais si c'est ça, je n'ai pas trouver la bonne formulation...
Malgré mes recherches, je n'ai pas trouvé de solution.
merci d'avance de votre aide
Sylvain
Partager