Word邮件合并:Database字段SQL查询如何引用Emp_ID合并字段?
邮件合并中关联Emp_ID字段的SQL查询解决方案
问题背景
现有Word邮件合并文档的DATABASE域代码可查询固定员工ID(9999)的经手账户,但无法通过{Emp_ID}关联邮件合并的Emp_ID字段,需调整SQL查询的参数引用方式。
当前有效代码(固定员工ID)
DATABASE \d "M:\Acme\Testing Sandbox\Database11.accdb" \s "SELECT DISTINCT SalesDB.[Parent Acct Name] FROM SalesDB WHERE SalespersonNumber = 9999"
尝试的无效代码
DATABASE \d "M:\Acme\Testing Sandbox\Database11.accdb" \s "SELECT DISTINCT SalesDB.[Parent Acct Name] FROM SalesDB WHERE SalespersonNumber = {Emp_ID}"
可行方案
Word邮件合并的DATABASE域无法直接用{Emp_ID}引用字段,需通过嵌套MERGEFIELD域实现动态参数传递,具体分两种情况处理:
1. 员工ID为数字类型
使用以下域代码(需在域代码视图下编辑,按Alt+F9切换视图):
{ DATABASE \d "M:\Acme\Testing Sandbox\Database11.accdb" \s "SELECT DISTINCT SalesDB.[Parent Acct Name] FROM SalesDB WHERE SalespersonNumber = " { MERGEFIELD Emp_ID } }
2. 员工ID为文本类型
若SalespersonNumber是文本字段,需在SQL语句中添加单引号包裹参数:
{ DATABASE \d "M:\Acme\Testing Sandbox\Database11.accdb" \s "SELECT DISTINCT SalesDB.[Parent Acct Name] FROM SalesDB WHERE SalespersonNumber = '" { MERGEFIELD Emp_ID } "'" }
操作步骤
- 确保邮件合并已连接包含
Emp_ID字段的数据源。 - 按
Alt+F9切换到域代码视图,替换原有DATABASE域代码为上述格式。 - 按
Alt+F9切回域结果视图,执行邮件合并预览验证效果。
内容的提问来源于stack exchange,提问作者Robert Simmons
相关产品推荐
相关产品推荐

