0

我正在尝试将带有子表单的表单中的数据传递到此图像中的 microsoft word 文档、表单和子表单中:在此处输入图像描述

我有用于传递表单数据的代码,但我不确定如何从子表单引用或请求数据?理想情况下,返回的字符串将包含引用列的每条子表单数据。

到目前为止,我所拥有的如下:

Private Sub Command90_Click()

Dim objWRD As Word.Application
Dim objDoc As Word.Document
Set objWRD = CreateObject("Word.Application")
objWRD.Visible = True
objWRD.Activate
Set objDoc = objWRD.Documents.Add("C:\WordTemplate.dot", , , True)
Set objRange = objDoc.Bookmarks("AccountCode").Range
objRange.Text = "" & Me.[Account Code / Project Number].Column(1)
Set objRange = objDoc.Bookmarks("Consignto").Range
objRange.Text = "" & Me.[Consign To]

End Sub

我确实尝试添加以下代码,但当然它只返回子表单的第一条记录,而我希望它返回显示的所有子表单价格记录:

Set objRange = objDoc.Bookmarks("Price").Range
objRange.Text = "" & Me.[Order Details].Form.[Price]

编辑:

我最接近的解决方案是:

Private Sub Command90_Click()

Dim rst1 As DAO.Recordset
MsgBox "" & Me.[Order Details].Form.RecordsetClone.RecordCount

Set rst1 = Me.[Order Details].Form.RecordsetClone
rst1.MoveFirst

Do Until rst1.EOF
MsgBox "" & rst1.[Price]
rst1.MoveNext

rst1.Close

Loop
End Sub

MsgBox "" & rst1.[Price] 是错误的, MsgBox "" & Me.[Order Details].Form.[Price] 只是多次给出第一个值并且似乎没有向下移动行

4

1 回答 1

1

所以价格是一个下拉菜单——但你不在乎。这里重要的是数据:填充下拉行的记录集。

由于 rst1一个记录集,它有一些字段,我们称它们为 field0,field1。您以这种方式调用 field1:rst1![field1],或 rst1!("field1"),按名称,或者您可以说rst1!Fields(1).

如果您必须在表单中引用控件,则方法是Me.[Price].Column(1),但是,正如您所说,这仅返回控件中当前选择的值。请改用记录集

RecordsetClone 不是打开记录集的唯一方法。您在 Access 的帮助中提供了如何使用 DAO 的示例。在目录中搜索 DAO。

希望这可以帮助

于 2013-06-20T09:39:22.673 回答