在Form上的文本框中显示RecordSet

时间:2015-03-16 15:52:33

标签: vba access-vba ms-access-2007

我创建了一个记录集代码,用于比较业务ID以抓住每个在此业务中的客户。我想通过一个ubounded文本框将这些数据传递到一个表单上,或者哪个最适合Access。当我通过在记录集Forms!Form.Badge = StrBusinesses中使用此代码将其存储到记录集中的无界文本框中时,它不会在每个记录/业务ID的表单上唯一显示。当我滚动浏览每条记录时,它对每个业务都显示相同的内容。

如何让表单上的记录集唯一地显示给每条记录?

Public Sub OpenRecordset()
    Dim qdf As QueryDef
    Set qdf = CurrentDb.QueryDefs("QOff2")
    qdf.Parameters(0).Value = [Forms]![Form]![Text10]

    Dim db As Database
    Dim rs As Recordset
    Dim StrBusinesses As String

    Set rs = qdf.OpenRecordset

    If rs.EOF And rs.BOF Then
        MsgBox ("No businesses exist for this Customer")
        Exit Sub
    Else
        rs.MoveFirst
    End If

    StrBusinesses = ""
    Do While Not rs.EOF
        StrBusinesses = StrBusinesses & rs!Fnam & ", "
        rs.MoveNext
    Loop

    rs.Close

    StrBusinesses = Left(StrBusinesses, Len(StrBusinesses) - 2)
    Forms!Form.Badge = StrBusinesses

    Set rs = Nothing
End Sub

我的查询sql代码:

SELECT badgeno, FNAM, filenum
FROM ((INC LEFT JOIN AIO ON INC.NUM = aio.NUM) LEFT JOIN off ON aio.FNUM = off.FNUM) LEFT JOIN all ON aio.AIO_NUM = all.ALGNUM
WHERE (((FILENUM)=[forms]![form].[text10]));

我通过在表单上创建一个无界文本框并将其命名为徽章(Forms!Form.Badge)来在表单上显示它。当我按下run / green play按钮时,它会更新每个表单中的所有无界文本框,所以当我看到下一条记录时,它在前一条记录中显示相同的内容。此外,我希望它无需按下模块中的绿色播放按钮即可自动显示。

1 个答案:

答案 0 :(得分:0)

您可以像这样更改文本框分配代码

Me.yourtextboxname.value = StrBusinesses