2016-01-18 1 views
0

J'ai un modèle Word avec des signets. Ces signets extraient des données d'une application de base de données Access via le code VBA.Modèle de marque-pages Word utilisant les données Access

On Error GoTo ErrHandler 
Me.Recalc 

If Me!txtCount = 0 Then 
    MsgBox "Please select a record to print.", vbOKOnly, "Error" 
Else 

Dim oWord As Object 'Word.Application 
Dim doc As Object 'Word.Document 

Set oWord = CreateObject("Word.Application") 
Set doc = oWord.Documents.Open("C:\Request_Template.doc") 
oWord.Visible = True 

Dim oAccess As Object 
Dim dbs As Database 
Dim rst As Recordset 

Dim strCriteria As String 

     With oWord.ActiveDocument 
      If .Bookmarks.Exists("DatePage1") = True Then 
       .Bookmarks("DatePage1").Select 
       If Not IsNull([Forms]![frmForRequest_Preview]!Date) Then 
        oWord.selection.Text = (CStr(Format([Forms]![frmForRequest_Preview]!Date, "mmm d, yyyy"))) 
       Else 
        oWord.selection.Text = "" 
      End If 
     End With 
End If 
Exit Sub 

ErrHandler: 
MsgBox Err.Number & ": " & Err.Description, vbOKOnly, "Error" 

La question est de savoir comment ouvrir une copie du modèle pour permettre à l'utilisateur de cliquer sur « Enregistrer » après avoir examiné le document? Pour l'instant, le modèle d'origine est utilisé et l'utilisateur doit effectuer "Enregistrer sous". Ce n'est pas pratique.

+0

Vous pouvez ajouter 'doc.SaveAs (somepathHere)' immédiatement après l'avoir ouvert à partir du modèle. Mais vous devrez alors gérer le cas où l'utilisateur * n'a pas voulu le sauvegarder. –

Répondre

1

"Modèle" dans Word est un type de fichier spécifique (.dot, .dotx ou .dotm). En l'état, vous n'avez pas de "modèle" Word, juste un document Word standard (.doc).

Ouvrir ce .doc dans Word et l'enregistrer comme un « modèle de document (.dot).

Maintenant, changer la ligne Documents.Open à Documents.Add, faisant référence à la nouvelle .dot et en changeant les paramètres correspondent à ceux de la méthode Add.

Cela ouvrira automatiquement une copie du fichier de modèle, donc il y a nevver danger de l'utilisateur ou votre code d'écraser le modèle. cependant,

Notez que « Enregistrer sous "est toujours nécessaire car il s'agit d'un nouveau document, mais il apparaîtra automatiquement - l'utilisateur n'aura pas à penser à utiliser Enregistrer sous. ne veut pas que l'utilisateur voit Enregistrer Comme tout votre code doit exécuter Document.SaveAs et vous devez connaître le chemin du fichier et l'emplacement où il doit être sauvegardé.

+0

Merci. ça fonctionne parfaitement. Est-il possible de créer un emplacement par défaut et un nom par défaut en fonction de la combinaison de deux signets pour ce nouveau document de mot? –

+0

Super - n'oubliez pas de cliquer sur la coche à côté de la réponse pour que les autres ayant la même question puissent voir que c'est une réponse :-) Oui à la création d'un nom par défaut, si je vous comprends bien. Vous devriez poster une nouvelle question, cependant, qui demande clairement cela. Ensuite, nous pouvons afficher du code dans une réponse (cela ne fonctionne pas si bien dans un commentaire). En fait, il peut déjà être demandé et répondu quelque part, donc vous pourriez vouloir chercher, d'abord. –