【问题标题】:How to fill a Word 2016 form with data stored in an Access 2016 database.?如何使用存储在 Access 2016 数据库中的数据填写 Word 2016 表单。?
【发布时间】:2016-06-12 20:12:41
【问题描述】:

我正在处理一个小项目,我需要能够使用存储在 Access 2016 数据库中的数据填写 Word 2016 表单。为此,我创建了一个带有按钮(保存)的表单(客户)。单击按钮时,表单中的数据应保存到表(客户)中,并发送到 Word 表单。这是我按照Techrepublic.的说明编写的代码

Private Sub cmdPrint_Click()

'Print customer slip for current customer.

Dim appWord As Word.Application

Dim doc As Word.Document

'Avoid error 429, when Word isn't open.

On Error Resume Next

Err.Clear

'Set appWord object variable to running instance of Word.

Set appWord = GetObject(, "Word.Application")

If Err.Number <> 0 Then

'If Word isn't open, create a new instance of Word.

Set appWord = New Word.Application

End If

Set doc = appWord.Documents.Open("E:\Usuarios\Acrocephalus\Daniel\Projectes\AnemaDB\ProgramaControlDDD2015.docx", , True)

With doc

.FormFields("fldIDClient").Result = Me!IDClient

.FormFields("fldNomLocal").Result = Me!NomLocal

.FormFields("fldNomFiscal").Result = Me!NomFiscal

.FormFields("fldNIF_CIF").Result = Me!NIF_CIF

.FormFields("fldTipusVia").Result = Me!TipusVia

.FormFields("fldAdreca").Result = Me!Adreca

.FormFields("fldCP").Result = Me!CP

.FormFields("fldMunicipi").Result = Me!Municipi

.FormFields("fldProvincia").Result = Me!Provincia

.FormFields("fldFix").Result = Me!Fix

.FormFields("fldMobile").Result = Me!Mobile

.FormFields("fldemail").Result = Me!email
.Visible = True

.Activate

End With

Set doc = Nothing

Set appWord = Nothing

Exit Sub

errHandler:

MsgBox Err.Number & ": " & Err.Description

End Sub

但是,当我填写数据并点击按钮时,我遇到了 3 个问题:

  1. 它不会将任何数据保存到表中
  2. 它没有填满单词
  3. 我必须按两次按钮才能打开表单。

有人可以帮忙吗? 谢谢!!

丹妮

【问题讨论】:

  • 您需要在您的 Access VB 项目中添加对 Word 应用程序库的引用。

标签: forms ms-access ms-word vba


【解决方案1】:

您是否在 VBA 中使用了正确的引用?

在 VBA 编辑器上按工具 > 参考,并在 Microsoft Work xx.0 对象库之前进行检查

【讨论】:

  • 谢谢,我从访问开始,对于这样一个愚蠢的问题,我深表歉意。你能看看我新编辑的问题吗?我有一些新问题。再次感谢!
  • 1.在代码中没有任何地方将数据保存到表中。现在,Access 通常在关闭表单时自行执行此操作,但前提是表单的属性中已经有一个表。关闭表单并将其数据保存到表中的 vba 命令是 'DoCmd.Close acForm, "Form Name", acSaveYes'。如果您希望被提示保存,请使用 acSavePrompt。对于其他两个问题,它更难。当您删除“On Error Resume Next”时,它是否会给您任何错误?
  • 尝试调试并一步一步地检查代码。单击您希望代码停止的代码行,在左侧灰色条上,您会看到编辑器在那里放了一个圆圈。运行程序,它会在到达该行时停止。然后只需调试 > Step into(或 F8)将一次运行代码一行,让您查看它是否跳过了一些 IF 或忽略任何代码行。
  • 感谢您的回复,很抱歉之前没有提供任何反馈。我会试试你的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2019-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多