根据另一个表单上的值填充报表上的文本框

Populate Text box on report based on value on another form

非常新手的问题,但我有一份报告,其中有几列包括用户名。我还有一个表单,用户可以在组合框中 select 一个用户名,然后打开的报告只会显示与该用户相关的记录。有没有一种方法可以在报告上放置一个文本框,该文本框是根据用于打开报告的表单的组合框中 select 编辑的内容填充的?请注意,我将在打开报告后立即关闭表格。

经过一番尝试,我能够通过创建一个名为 temp 的变量来解决这个问题,该变量存储组合框的值,并用存储的值填充报表上的文本框。

Private Sub reportbyuser_bt_Click()
Dim temp As String

temp = Filteruser_cb.Value

DoCmd.OpenReport "Report by user", acViewReport
[Report_Report by user].Username_txt.Value = temp
DoCmd.Close acForm, "Restructuring Report"
End Sub

事实上,我什至不需要使用临时文件,只需执行以下操作即可:

[Report_Report by user].Username_txt.Value = Filteruser_cb.Value
  • 此外,我刚刚意识到如果组合框中有几个不同的列,我的解决方案不是很好。我改用这个:

    [Report_Report by user].Username_txt.Value = Filteruser_cb.Column(n) 
    

    (n为列数)

由于您的 Access 版本是 2007 或更高版本,您可以使用 TempVar 将组合框值传递到报表文本框的控件源。

例如,将此作为 Username_txt 的控件源,以下单击事件过程将确保在该文本框中显示正确的值:

=[TempVars]![user_name]

Private Sub reportbyuser_bt_Click()
    TempVars("user_name") = Me.Filteruser_cb.Value
    DoCmd.OpenReport "Report by user", acViewReport
    DoCmd.Close acForm, Me.Name
End Sub

您可以调整它以使用您的 Filteruser_cb.Column(n) 而不是 Filteruser_cb.Value