我正在试图找出是否有办法将我拥有的代码合并到一个文档并设置一个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 :(得分:0)
请注意我提供的通用解决方案可能需要根据您的实际要求/设置进行调整。
选项1:您的方法(使用Word的邮件合并)
您需要以下设置:
从上一步调用查询的函数:
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
使用“发送”按钮的表单。这样的事情:
最后,发送按钮的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可以提供一些详细信息。我过去确实实施过类似的解决方案。工作得很好。