2011-08-11 19 views
1

我想弄清楚是否有一種方法可以將我合併到文檔中的代碼設置爲if ...然後,基於表中字段中特定文本的不同文檔。訪問郵件根據特定標準合併到不同的文檔

我的代碼有效。

Sub SendConfirmation_Click(CourseNumber As Index) 
DoCmd.SetWarnings False 
DoCmd.OpenQuery "ConfirmationMailMerge" 

     Dim LevelIConf As String 
     Dim OpenWord As Object 

     'Path to word document 
     LevelIConf = "G:\POSTPROFESSIONAL\NAIOMT\Classes\PTH536 Level I\LevelIConf.doc" 

     'Create instance of Word 
     Set OpenWord = CreateObject("Word.Application") 
     OpenWord.Visible = True 

     'Open the document 
     OpenWord.Documents.Open FileName:=LevelIConf 

DoCmd.SetWarnings True 
End Sub 

我有幾個課程,我發出的確認信件,每個字母是不同的基礎上的課程。我希望能夠按下表格上的按鈕並根據課程編號提供正確的文檔。

任何幫助表示讚賞。我是一位自學的編碼員,仍然有很多東西需要學習。

感謝,

回答

0

請注意我提供了可能需要根據您的實際要求/設置,以適應通用的解決方案。

選擇1:你的方法(使用Word的郵件合併)

您需要以下設置:

  • 兩個關係表:

enter image description here enter image description here enter image description here

  • 查詢,基於課程ID返回CONF信道:

enter image description here

  • 函數調用從前面的步驟查詢:

    Function GetConfLetterPathByCourseID(CourseID As Integer) As String 
    
        GetConfLetterPathByCourseID = "" 
    
        Dim qdf As QueryDef 
        Dim rs As Recordset 
    
        Set qdf = CurrentDb.QueryDefs("GetConfLetterPathByCourseId") 
        qdf.Parameters("CourseID_par") = CourseID 
        Set rs = qdf.OpenRecordset 
    
        If rs.RecordCount > 0 Then 
         GetConfLetterPathByCourseID = rs("ConfLetterPath") 
        End If 
    
    End Function 
    
  • 形式發送按鈕。事情是這樣的:

enter image description here

  • 最後,對於發送按鈕子:

    Sub ConfLetterButton_Click() 
    
        DoCmd.SetWarnings False 
    
        Dim LevelIConf As String 
        Dim OpenWord As Object 
    
        'Path to word document 
        LevelIConf = GetConfLetterPathByCourseID(Me.CourseID) 
    
        'Create instance of Word 
        Set OpenWord = CreateObject("Word.Application") 
        OpenWord.Visible = True 
    
        'Open the document 
        OpenWord.Documents.Open FileName:=LevelIConf 
    
        DoCmd.SetWarnings True 
    
    End Sub 
    

請注意,我稍微改變你的代碼(例如刪除索引類型,刪除Docmd.OpenQuery)

選項2:在VBA代碼中編寫電子郵件,並使用選項1中的查詢/功能附加Conf Letter doc文件。我認爲this link from Microsoft可以提供一些詳細信息。我過去實施過類似的解決方案。工作得很好。

相關問題