访问邮件根据特定条件合并到不同的文档

时间:2011-08-11 17:54:59

标签: ms-access

我正在试图找出是否有办法将我拥有的代码合并到一个文档并设置一个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

我有几个课程,我发出确认函,每个字母根据课程不同。我希望能够按下表单上的按钮,并根据课程编号提供正确的文档。

感谢任何帮助。我是一名自学成才的编码员,还有很多需要学习的东西。

谢谢,

1 个答案:

答案 0 :(得分:0)

请注意我提供的通用解决方案可能需要根据您的实际要求/设置进行调整。

选项1:您的方法(使用Word的邮件合并)

您需要以下设置:

  • 两个相关表格:

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

  • 根据课程ID返回Conf Letter路径的查询:

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:

    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可以提供一些详细信息。我过去确实实施过类似的解决方案。工作得很好。