Excel VBA:邮件合并-未找到字段对话框

Excel VBA:邮件合并-未找到字段对话框,excel,vba,mailmerge,Excel,Vba,Mailmerge,我一直在编写一个工具,通过ExcelVBA中的一组ODBC表从SQL数据库中提取数据,并使用邮件合并和Word对象将信息插入到一些预格式化的报告中。某些报告具有一些可选字段,这些字段可能并不总是包含数据。在这些情况下,数据库中将完全不存在这些可选字段 我的代码被设计为动态的,并通过使用VBA合并的CSV文件生成合并信息,使用数据库中的问题详细信息作为字段标题。我的问题源于输出合并文件中没有选项问题,Word会提示用户删除字段。我一直在努力寻找一种编程方式来代表用户基本上回答这个对话框,这将始终是

我一直在编写一个工具,通过ExcelVBA中的一组ODBC表从SQL数据库中提取数据,并使用邮件合并和Word对象将信息插入到一些预格式化的报告中。某些报告具有一些可选字段,这些字段可能并不总是包含数据。在这些情况下,数据库中将完全不存在这些可选字段

我的代码被设计为动态的,并通过使用VBA合并的CSV文件生成合并信息,使用数据库中的问题详细信息作为字段标题。我的问题源于输出合并文件中没有选项问题,Word会提示用户删除字段。我一直在努力寻找一种编程方式来代表用户基本上回答这个对话框,这将始终是删除字段,或者让word只知道做什么,而不需要询问


我没有幸运地找到一个模块、命令或函数,这些模块、命令或函数要么会告诉word对象自动清理这个问题,要么会告诉任何处理程序以编程方式回答这个问题。任何帮助都将不胜感激。

如果其他人遇到类似问题,我将以以下方式解决此问题:

与其打开数据源,不如打开headersource。在我的例子中,源和数据源是同一个文件。 将合并字段.MailMerge.fields与文件.MailMerge.DataSource.FieldNames中的字段进行比较。当找不到每个合并字段时,将其删除。删除。 正常打开数据源,如果第一条记录与headerfile相同,则将其设置为2。
我猜如果缺少任何数据,SQL结果将为null。如果您返回EmptyString呢?有了这个对话框,你有没有试过这样的方法:是的,我有。我有一个名为oWord的word应用程序对象,我设置了oWord.DisplayAlerts=wdAlerts空思想的一个问题是SQL代码只是以迭代的方式转储问题和结果。没有硬编码来知道将存在什么问题/答案。这是唯一的邮件合并文档本身,其中包含特定的代码,因为最终将有数百个这样的文档与工程师正在使用的检查文档相匹配。