返回活动子窗体上的字段值

时间:2013-06-19 17:07:25

标签: sql vba ms-access ms-access-2003

我正在尝试将带有子表单的表单中的数据传递到此图像中的Microsoft Word文档,表单和子表单中:enter image description here

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

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

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]只是多次给出第一个值而不会向下移动行

1 个答案:

答案 0 :(得分:1)

所以价格是下降 - 但你不关心。这里重要的是数据:记录集,它填充了下拉行。

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

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

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

希望这有帮助