簡體   English   中英

使用數據庫字段名稱作為文件名從Mailmerge保存Word文件

[英]Saving a Word File from Mailmerge with Data Base Field Name as the File Name

我希望能夠將活動文件及其文件名從數據庫字段“ First_Name”和數據庫字段“ Last_Name”派生到Word 2010 MailMerge中,並保存到子文件夾中,該子文件夾為硬編碼子文件夾。

我收到一個錯誤, "requested member of the collection does not exist"

我知道當您嘗試訪問不存在的對象時會發生此錯誤。 數據庫字段是First_Name,如果代碼正在搜索FirstName的數據庫字段,則我也嘗試過First Name。 這是我嘗試過的:

Sub SavingIndividuallyByCustomerName()

Dim firstname As String
Dim lastname As String

firstname = ActiveDocument.FormFields("First_Name").Result
lastname = ActiveDocument.FormFields("Last_Name").Result

    With ActiveDocument.MailMerge
    .Destination = wdSendToNewDocument
    .SuppressBlankLines = True
    With .DataSource
        .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
        .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
    End With
    .Execute Pause:=False
End With
ChangeFileOpenDirectory "C:\folder\subfolder\subsubfolder\"


 ActiveDocument.SaveAs2 FileName:= _
        "C:\folder\subfolder\subsubfolder\" & firstname & lastname & ".docx"
End Sub

當我用硬編碼名稱時

firstname = "John"
lastname = "Doe"

我沒有其他錯誤,活動文件已保存。

我也嘗試使用沒有成功:

Dim firstname As Field
Dim lastname As Field

代替

firstname = ActiveDocument.FormFields("First_Name").Result

lastname = ActiveDocument.FormFields("Last_Name").Result

你需要

firstname = ActiveDocument.MailMerge.DataSource.DataFields("First_Name").Value

lastname = ActiveDocument.MailMerge.DataSource.DataFields("Last_Name").Value

引號中的名稱區分大小寫(在Windows編程中不常見)。 它必須與Word實際使用的名稱匹配,該名稱可能與數據源中的名稱不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM