【问题标题】:Returning values of fields on active subform返回活动子表单上的字段值
【发布时间】:2013-06-16 08:12:32
【问题描述】:

我正在尝试将带有子表单的表单中的数据传递到 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] 只是多次给出第一个值并且似乎没有向下移动

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    希望对你有帮助

    【讨论】:

    • 如果价格是一个下拉菜单,并且我想要返回文本而不是 ID 的列,那么我将如何使用 DAO 做到这一点?
    • 补充一点,我的意思是 MsgBox "" & rst1.[Price].Column(1) 无效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多