我想将 SQL Server 数据库中的数据检索到 MS Word 中。我可以通过使用 DATABASE 字段代码 来实现此目的,方法是将以下内容插入按 CTRL+F9 创建的特殊括号中,然后按 F9 将查询作为 MS Word 中的表执行:
DATABASE \d "C:\Users\MyUser\Documents\My Data Sources\MyDataSource.odc" \c "DRIVER={SQL Server};SERVER=MYSERVER;DATABASE=MYDB;Trusted_Connection=Yes;" \s "SELECT TOP 1 Id FROM MyTable"
这可以在本地运行,因为我已将 MyDataSource.odc 配置为使用 SQL Server 驱动程序,但我希望它可以在没有这种依赖性的同事的计算机上运行。 是否可以在不指定 Office 数据连接文件的情况下使此功能发挥作用?
这是我的 ODC 文件的相关部分:
<xml id=docprops><o:DocumentProperties
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns="http://www.w3.org/TR/REC-html40">
<o:Description>MyDescription</o:Description>
<o:Name>MyName</o:Name>
</o:DocumentProperties>
</xml><xml id=msodc><odc:OfficeDataConnection
xmlns:odc="urn:schemas-microsoft-com:office:odc"
xmlns="http://www.w3.org/TR/REC-html40">
<odc:Connection odc:Type="ODBC">
<odc:ConnectionString>{SQL Server};SERVER=MYSERVER;DATABASE=MYDB;Trusted_Connection=yes;</odc:ConnectionString>
<odc:CommandType>Table</odc:CommandType>
<odc:AlwaysUseConnectionFile/>
</odc:Connection>
</odc:OfficeDataConnection>
</xml>
数据库代码字段文档告诉我 \d 开关是“用于除使用 ODBC 对 SQL 数据库表的查询之外的所有数据库查询”,但仅提供连接到文件中保存的数据库的示例,但不提供连接到文件中的数据库的示例。 SQL Server 数据库。
用例是我们必须定期将数据库中的列表发送到仅接收 MS Word 格式文件的第三方。我希望团队中的任何人都能够打开文件并更新它,或者更好的是,在 O365 Sharepoint / Power Automate 中实现自动化,并且这个 DATABASE 字段只要不与特定文件绑定就可以实现这一点我的电脑。
请注意,我可以使用此连接字符串连接到相关数据。例如,我可以在 Excel 的 Get & Transform (Power Query) 中使用以下代码进行连接:
= Odbc.Query("Driver={SQL Server};Server=MYSERVER;Database=MYDB", "SELECT TOP 1 Id FROM MyTable")
数据库字段可以使用任何可用于邮件合并的数据源。
您可以通过以下方式进行编码来简化数据库字段并使其更加可移植:
{DATABASE \d "{FILENAME \p}/../ MyDataSource.CSV" \s "从 MyTable 中选择前 1 个 ID" \l "9" "63" \h}
这将允许字段引用与包含 DATABASE 字段的文档保存在同一文件夹中的数据源(在上面的示例中为“MyDataSource.CSV”)。请注意,{FILENAME \p} 字段的字段大括号必须也可以通过 Ctrl-F9 创建。
\l 和 \h 字段开关可用于控制输出格式。请参阅:http://office.microsoft.com/en-us/word-help/field-codes-database-field-HP010260104.aspx。该链接引用“表格自动套用格式”对话框,您可以通过“插入|快速部件|字段>数据库”访问该对话框。您需要先建立与数据源的连接,然后才能访问对话。