从 ms-access 获取数据到 ms-word
Posted
技术标签:
【中文标题】从 ms-access 获取数据到 ms-word【英文标题】:fetch data from ms-access to ms-word 【发布时间】:2011-12-24 08:40:48 【问题描述】:我希望在 MS-excel 或 MS-word 中创建发票。此发票将包含多个字段,如发票编号、客户名称、产品信息、数量、金额、日期、客户地址、电话号码。等发票的功能是,生成一个唯一的发票号码,每次我打开它,然后供应商会提到客户信息,产品信息并点击提交按钮或保存。每当单击提交按钮或保存文档时,发票中提到的信息将自动保存在 MS-Access 数据库中。
因此,客户的所有记录都将保存在 MS-Access 数据库中。每当我需要搜索特定客户时,我应该能够从任一发票编号中搜索它。或该特定发票的任何唯一字段。我希望我的查询得到清楚的解释。请让我知道最简单的方法。我对这个主题没有广泛的了解,所以给我一些新手可以理解的建议。
【问题讨论】:
【参考方案1】:我认为你的出发点是错误的。使用 Access 表单获取数据,然后运行邮件合并,最简单的方法是从 Access 输出文本文件作为数据文件,然后使用 Word 模板进行合并。
自动编号可能适合发票编号,只要您只需要一个唯一编号即可。如果您需要记录的序列号,则必须自己创建。怎么做取决于同时工作的用户数量。
【讨论】:
感谢您的建议。我想知道您是否可以给我发送任何可以更好地解释它的示例。我已经在 Access 中创建了表格和表单。我唯一需要做的就是在发票中获取这些详细信息。 @sumit 为要打印的发票创建一个查询,使用docmd.TransferText
将其导出为文本(您可以链接到 Access,但最后这更容易),按照 Word向导使用现有数据源创建邮件合并,然后选择您刚刚创建的文件。第一次手动执行此操作,看看是否适合。如果是这样,它只是自动化运行邮件合并的问题。我可能可以帮你写代码。
@Remou 您不能定义单词 mailmerge 以使用 Access 表或查询作为其来源吗?这将允许您跳过DoCmd.TransferText
步骤。
@phoog 是的,我在评论中提到过,但是,它会导致 Word 打开另一个 Access 实例;您可能会在版本之间遇到问题;在一个版本中使用查询比在另一个版本中使用起来要麻烦得多;最后,如果您切换数据源,则必须重新处理所有邮件合并模板。作为奖励,您可以获得带有文本文件的邮件合并的历史记录。如果这两种方法你都试过了,我想你最终会选择文本输出。【参考方案2】:
我现在可以告诉你,使用 Access 生成 Word 文件有点让人头疼。如果您真的想进行格式化,那就很难了(这是我的经验)。
我最终生成了可以控制所有内容的 html 文件,并以.doc
s 的形式打开它们。但是,如果您真的是新手,我建议您从一些 VBA
教程开始,它们向您解释如何从数据库中获取记录并循环它们以生成输出。然后你就可以开始查看VBA
中的文件写入函数了。
找不到任何教程真的很快(我的女朋友在我们说话的时候很生气),但这里有一个示例: http://www.access-programmers.co.uk/forums/showthread.php?t=25354
只需在论坛中四处寻找,寻找文件生成和循环记录。
【讨论】:
你能给我一些链接吗 我认为这里有一个误解。如前所述,我的第一个任务是插入上述字段的值,然后将它们保存在数据库中。稍后,我想从数据库中搜索客户。 @saratis 从 Access 运行 mailmerge 一点也不差。 你有任何链接或例子来解释这个【参考方案3】:您好,刚刚阅读您的帖子,Remou l 强烈建议您使用 Access 输入和存储数据。可以让用户将数据输入电子表格并将数据写回 Access DB。我不会推荐给新手的东西,here is a link to some code on how it could be done
回到您创建发票的第一个问题,您是否考虑过使用报告从 Access 生成发票?它们可以打印为 PDF,或导出为各种电子格式。或者是否有特定的理由使用 Word/Excel?如果要使用 Word 生成发票,请使用 Remou 建议的模板。有关某些示例,请参阅此link,请参阅标题为 Access > Word 的部分。我已将这些示例用作 Access to Word 的基础。一些例子虽然使用了一种叫做 DAO 的技术,但我知道它不会包含在 Windows 7 之后的任何操作系统中。只是需要注意的一点。
在link has one possible solution 的数据库表中搜索记录。作者还包含了一个示例数据库。
【讨论】:
以上是关于从 ms-access 获取数据到 ms-word的主要内容,如果未能解决你的问题,请参考以下文章