邮件合并:如何格式化 "database" 字段中的各个字段
Mail merge: How can I format indiviidual fields within "database" field
对于从 Microsoft Excel 中的数据在 Microsoft Word 中进行邮件合并,我编写了一个数据库字段,它成功添加了我想要的所有字段,并为每个邮件合并记录动态更改("many to one").
然后我尝试在此 DATABASE 语句中格式化数字,但是当我使用 FORMAT()
时,数字确实更改为我想要的格式,但是 header 被替换为 Expr1003
.
有没有办法在不丢失 header 标题的情况下格式化如下所示的 DATABASE 语句中的数字?
没有格式化的代码:
{DATABASE \d"{FILENAME \p}/../data5.xlsx" \s "SELECT [Accountable Officer], [Cost Centre Group], [Description], [Annual Budget], [Outturn Forecast], [Outturn Forecast Variance] FROM [data$] WHERE [Accountable Officer] = {Quote 39}{MERGEFIELD Accountable_Officer}{Quote 39} ORDER BY [Cost Centre Group] "\l \b "16" \h}
如果我用 FORMAT()
修改年度预算如下:
{DATABASE \d"{FILENAME \p}/../data5.xlsx" \s "SELECT [Accountable Officer], [Cost Centre Group], [Description], FORMAT([Annual Budget], '£#,##0;-£#,##0'), [Outturn Forecast], [Outturn Forecast Variance] FROM [data$] WHERE [Accountable Officer] = {Quote 39}{MERGEFIELD Accountable_Officer}{Quote 39} ORDER BY [Cost Centre Group] "\l \b "16" \h}
然后年度预算列中显示的数字格式正确,但 header 标题随后更改为 Expr1003
(或 Expr1004
、Expr1006
等)。
字段名称变化的原因是因为函数是"hiding"字段名称。在这种情况下,数据库字段正在为字段名称创建一个 expression。
解决此问题的一种方法是在数据源中预先格式化,在 Excel 的情况下,将单元格内容转换为文本而不是数字。
另一种方法是使用 AS
:
指定一个 别名 作为字段名称
FORMAT([Annual Budget], '£#,##0;-£#,##0') AS Budget.
我 认为 您应该可以使用 AS [Annual Budget]
,但首先要测试它,以确保基本语法有效。我在 Access 中的快速测试 不允许 允许使用与别名相同的字段名称,但我在 Word 中的测试允许它...
对于从 Microsoft Excel 中的数据在 Microsoft Word 中进行邮件合并,我编写了一个数据库字段,它成功添加了我想要的所有字段,并为每个邮件合并记录动态更改("many to one").
然后我尝试在此 DATABASE 语句中格式化数字,但是当我使用 FORMAT()
时,数字确实更改为我想要的格式,但是 header 被替换为 Expr1003
.
有没有办法在不丢失 header 标题的情况下格式化如下所示的 DATABASE 语句中的数字?
没有格式化的代码:
{DATABASE \d"{FILENAME \p}/../data5.xlsx" \s "SELECT [Accountable Officer], [Cost Centre Group], [Description], [Annual Budget], [Outturn Forecast], [Outturn Forecast Variance] FROM [data$] WHERE [Accountable Officer] = {Quote 39}{MERGEFIELD Accountable_Officer}{Quote 39} ORDER BY [Cost Centre Group] "\l \b "16" \h}
如果我用 FORMAT()
修改年度预算如下:
{DATABASE \d"{FILENAME \p}/../data5.xlsx" \s "SELECT [Accountable Officer], [Cost Centre Group], [Description], FORMAT([Annual Budget], '£#,##0;-£#,##0'), [Outturn Forecast], [Outturn Forecast Variance] FROM [data$] WHERE [Accountable Officer] = {Quote 39}{MERGEFIELD Accountable_Officer}{Quote 39} ORDER BY [Cost Centre Group] "\l \b "16" \h}
然后年度预算列中显示的数字格式正确,但 header 标题随后更改为 Expr1003
(或 Expr1004
、Expr1006
等)。
字段名称变化的原因是因为函数是"hiding"字段名称。在这种情况下,数据库字段正在为字段名称创建一个 expression。
解决此问题的一种方法是在数据源中预先格式化,在 Excel 的情况下,将单元格内容转换为文本而不是数字。
另一种方法是使用 AS
:
FORMAT([Annual Budget], '£#,##0;-£#,##0') AS Budget.
我 认为 您应该可以使用 AS [Annual Budget]
,但首先要测试它,以确保基本语法有效。我在 Access 中的快速测试 不允许 允许使用与别名相同的字段名称,但我在 Word 中的测试允许它...