在Access中使用VBA计算的Word中的值使用

在Access中使用VBA计算的Word中的值使用

问题描述:

我必须使用Microsoft Access数据库在Microsoft Office Word中创建不同的批量字母。这在大多数情况下工作得很好,但只要数据源包含由Access数据库中的VBA代码计算的列,就无法在Word中使用View(在Access中定义)。嗯,我需要这个计算出来的值,把它放到Microsoft Office Word字段中。在Access中使用VBA计算的Word中的值使用

不幸的是没有办法做到这一点在SQL计算,所以我需要一个解决方案,我可以如何使用这些视图作为MS Word中的来源。

我发现只有一种方式:将Access从Access导出到Excel工作表中,并将其用作Word中的源代码。你可以认为这是非常不可用:-(。

(我们使用Microsoft Office 2003)

干杯, 格雷戈尔

+0

您是从Access还是从Word启动合并? – 2010-09-11 19:27:36

+0

在大多数情况下,其中一个“用户”(至少具有Word和Access经验的用户)创建Word文档并从Access中添加数据。所以它是从Word开始的。 – Gregor 2010-09-12 09:20:51

尝试使用Access“Make Table”查询。生成的表格将具有预先计算的所有值,Word将不会有问题读取它。

这很像使用文本文件的建议,但没有使用户生成文本文件的额外混乱。

+0

如果你经常使用Word和Access,你会看到一个文本文件的值,事实上,简单地输出一个文本文件的代码示例的数量说明了这个问题,我注意到Albert Kallal提供了一些代码的链接。用户所要做的就是点击一个按钮或类似于Word或Access的按钮,具体取决于所选择的应用程序,并且运行邮件合并。我想大多数用户会发现这更方便,奇怪的额外的Access实例弹出。 – Fionnuala 2010-09-11 18:32:13

+0

我认为这取决于邮件合并的触发位置。如果它来自Access,我会做@apenwarr建议的事情,并预先填充一个表,以便邮件合并作为其数据源。我不会使用MakeTable,但使用一个持久表,根据需要清空并重新填充。事实上,几乎所有的应用程序都已经具有这种结构。不过,如果你从Word开始合并,这并不是那么简单。一些逻辑可以用If/Then/Else逻辑在Word字段中复制,但这真的很不方便(因为编辑它们有多困难)。 – 2010-09-11 19:27:08

的解决方案是使用输出查询一些访问Word合并码一个文本文件,然后启动word模板并将模板指向该中间文本文件

上述方法有很多优点,例如,不要让word附加到ms-access,所以整个方法更稳定(如果冻结一个应用程序不会影响另一个应用程序) ou使用sql server,甚至是工作组安全访问数据库,因为访问代码正在生成该中间文件,所以无关紧要。因此,即使对于SQL服务器,Oracle,MySql等,由于我们生成中间文本文件,单词合并将继续工作。因此,相同的合并系统适用于JET,MySql,Oracle,SQL服务器,并且事情可以正常工作,无需担心数据库上的安全问题。

另外使用中间文件也意味着你不必诉诸于一些书签的例子,这通常意味着你必须为每一个合并编写新的代码(这是没有道理的!)。而且,书签很难被看到并插入word文档中。

这里的另一个好处是用户可以继续使用他们的培训课程,教学和书籍以及如何设置单词合并文档。使用合并字段的另一个好处是它允许在编辑和编写单词模板文档期间实时预览数据。而且,最终生成的合并文档在其中没有任何特殊代码或字段。

我在这里有一个工作示例,它允许您使用一行代码来启用任何表单。这个超级简单的词汇合并系统然后接管。

http://www.members.shaw.ca/AlbertKallal/msaccess/msaccess.html

刚下来,直到你到达超易Word合并滚动以上。

以上将允许您的查询中的VBA表达式也用于单词合并。

+0

我不得不同意,文本文件让生活变得如此简单。 – Fionnuala 2010-09-11 18:03:05

+0

我真的很喜欢这个解决方案,但我现在已经使用了一个解决方案,因为它更容易完成,我不需要一个防弹的实现。谢谢。 *投票* – Gregor 2010-09-11 18:53:46

+0

我已经使用阿尔伯特的解决方案,但只是在一个严重改变的形式。说实话,我不喜欢依赖Access中的表单加载的数据,而当我使用它时,我不得不为此创建表单。我不记得为什么我不能使用现有的表单(这是一个子表单,但我不认为Albert的代码不能使用子表单),我也不记得为什么我的常用临时表方法不起作用。但是我感觉受到艾伯特的工具的制约,必须作出相当大的改动,因为它对我来说不仅有用。 – 2010-09-11 19:34:40