我希望用Word公司的Access数据库中的表条目填充Word中的Text Form字段。
到目前为止,我有一个用户表单,用公司的项目编号填充组合框。我希望当用户提交来自所选项目的客户端信息时,将其放入Word文档中的文本表单字段中。
我的问题是在表格中搜索项目编号并访问记录。当我在' Find First'之后检查Recordset值时函数它返回表中的第一条记录。
到目前为止,这是我的代码:
'Access Database
Dim db As Database
Dim rst As Recordset
Dim strPath As String
Dim doc As Document
Set doc = ThisDocument
strPath = "string path name"
Set db = OpenDatabase(strPath)
Set rst = db.OpenRecordset("Word Report Query")
rst.FindFirst "Project Number = " & ProjectBox.Value
答案 0 :(得分:0)
使用Access表单选择正确的记录 - 应使用组合框设置并按照向导进行设置。
Word Merge是Office的功能集,其中使用Word - 可以设置链接到Access表或查询或Excel工作表的模板 - 并且该数据源用于将数据插入Word模板/文件:
或者,Access可用于创建报告,然后将其导出为rtf Word文件。
答案 1 :(得分:0)
我最终使用while循环来搜索数据库。可能不是最好的解决方案,但是我能够可靠地找到记录集的唯一方法。
'Access Database
Dim db As Database
Dim rst As Recordset
Dim strPath As String
Dim doc As Document
Set doc = ThisDocument
strPath = "path name"
Set db = OpenDatabase(strPath)
Set rst = db.OpenRecordset("Word Report Query")
'Find Selected Record
Do While rst![Project Number] <> ProjectBox.Value
rst.MoveNext
Loop
ActiveDocument.FormFields("Company").Result = rst![Client]
ActiveDocument.FormFields("Email").Result = EmployeeBox.Value
ActiveDocument.FormFields("Date").Result = DateBox.Value
If rst![Consultant] <> Null Then
ActiveDocument.FormFields("Addressing").Result = rst![Consultant]
End If
项目编号没有错误检查,因为我在初始化用户窗体时使用数据库填充下拉框选项
'Populate Project Box Dropdown
Do While Not rst1.EOF
ProjectBox.AddItem rst1(0)
rst1.MoveNext
Loop