【发布时间】:2019-02-13 23:36:31
【问题描述】:
我正在尝试将 Access 表单中的字段内容传递给 Word 文档,该文档使用以下代码完全符合我的需要,除了其中一个字段的一个小问题。
.FormFields("txtReasonforReward").Result = Me![Reason for Reward]
在我达到字符数限制时给了我一些问题。
我已经看过几个关于如何规避这种情况的示例,但我不确定它们在我的基本代码中是如何工作的。目前我对 VBA 的理解有点不足,因此任何明确的防白痴建议将不胜感激。
请有人告诉我如何进行。
Dim objWord As Object
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set doc = objWord.Documents.Open(***path to file***, , True)
With doc
.FormFields("txtFirstName").Result = Me![First Name]
.FormFields("txtLastName").Result = Me![Last Name]
.FormFields("txtReasonforReward").Result = Me![Reason for Reward]
.FormFields("txtCompanyValue").Result = Me![Company Value]
.FormFields("txtRequestingManager").Result = Me![Requesting Manager]
.FormFields("txtLocation").Result = Me![Location]
.FormFields("txtJobTitle").Result = Me![Job Title]
.FormFields("txtReqMgrJobTitle").Result = Me![Requesting Manager Job Title]
.FormFields("txtMonetaryValue").Result = Me![MoneyCalculated]
.FormFields("txtDesc").Result = Me![Description]
.FormFields("txtPayroll").Result = Me![Payroll Number]
.FormFields("txtGrade").Result = Me![Grade]
.FormFields("txtLocation2").Result = Me![Location]
.FormFields("txtRequestingMgr").Result = Me![Requesting Manager]
.FormFields("txtLevelofAction").Result = Me![ValueofPayment]
.FormFields("txtGemNom").Result = Me![GemNomination]
.FormFields("txtHRID").Result = Me![ID]
.FormFields("txtPeriod").Result = Me![Period]
.Visible = True
.Activate
End With
objWord.View.ReadingLayout = True
【问题讨论】:
-
txtReasonforReward的数据类型是什么?如果是Short text,则将数据类型更改为Long text,并在其下将TextFormat更改为RichText。 -
嗨,Tarun,您是指在 Access 中吗?这会在不更改我的代码的情况下消除字符数问题吗?
-
你能在Form中看到
Reason for Reward的全文吗? -
Short Text最多可包含 255 个字符。您可以更改它,它不会影响您的代码。 -
Joe,使用表单域是绝对必要的吗?您是否希望用户随后在受保护的文档中编辑此信息?如果不是,请使用
Bookmark作为数据目标。表单字段名称也是一个书签,因此只需取消对文档的保护并写入书签...