2016-01-18 3 views
0

У меня есть шаблон Word с закладками. Эти закладки извлекают данные из приложения базы данных Access через код VBA.Word bookmarks template using Access data

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" 

Вопрос заключается в том, чтобы открыть копию шаблона, чтобы позволить пользователю нажать на «Сохранить» после рассмотрения документа? На данный момент используется оригинальный шаблон, и пользователь должен выполнить «Сохранить как». Это не удобно.

+0

Вы можете добавить 'doc.SaveAs (somepathHere)' сразу после открытия его из шаблона. Но тогда вам нужно будет обрабатывать случай, когда пользователь * не * хотел его сохранить. –

ответ

1

«Шаблон» в Word - это определенный тип файла (.dot, .dotx или .dotm). Как бы то ни было, у вас нет шаблона Word, просто стандартный документ Word (.doc).

Открыть .doc в Слове и сохранить его в качестве «шаблона документа (.dot).

Теперь измените строку Documents.Open к Documents.Add, ссылающийся на новый .DOT и изменение параметров совпадают с методом Add.

это будет автоматически открыть копию файла шаблона, так что nevver какая-либо опасность пользователя или ваш затирание кода шаблона.

Заметим, однако, что «Сохранить как «по-прежнему требуется, поскольку это новый документ, но он будет автоматически возникать - пользователю не придется думать, чтобы использовать« Сохранить как ». Если вы не хотите, чтобы пользователь видел «Сохранить как», как ваш код должен выполнять Document.SaveAs, и вам нужно знать путь к файлу и место, в которое оно должно быть сохранено.

+0

Спасибо. он работает отлично. Есть ли возможность создать местоположение по умолчанию и имя по умолчанию на основе комбинации двух закладок для этого нового документа Word? –

+0

Отлично - не забудьте нажать галочку рядом с ответом, чтобы другие с тем же вопросом могли видеть, что это ответ :-) Да, чтобы создать имя по умолчанию, если я правильно вас понимаю. Однако вы должны задать новый вопрос, который явно требует этого. Затем мы можем отправить код в ответ (который не так хорошо работает в комментарии). На самом деле, его уже можно было спросить и где-то ответить, поэтому сначала вы можете искать. –