我正在尝试将带有子表单的表单中的数据传递到此图像中的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“”&我。[订单明细] .Form。[Price]只是多次给出第一个值而不会向下移动行
答案 0 :(得分:1)
所以价格是下降 - 但你不关心。这里重要的是数据:记录集,它填充了下拉行。
由于rst1 是一个记录集,它有一些字段,我们称之为field0,field1。您可以通过这种方式调用field1:rst1![field1]或rst1!(“field1”),或者您可以说rst1!Fields(1)
。
如果您必须在表单中引用控件,方法是Me.[Price].Column(1)
,但正如您所说,这只会返回控件中当前选定的值。改为使用记录集。
RecordsetClone不是打开记录集的唯一方法。您有如何在Access'帮助中使用DAO的示例。在目录中搜索DAO。
希望这有帮助