将查询结果传递给访问表单上的文本框控件

时间:2015-05-20 15:51:43

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

我需要有关Access 2007表单上的文本框字段的帮助。我正在尝试将查询结果插入到表单上的文本框控件中。这被用作用户的信息。表单为查询提供参数以获取值。查询工作正常并返回正确的结果。我似乎无法弄清楚如何将查询结果传递给文本框。我尝试了几种不同的方法,但没有运气。

(PS>我知道组合框可以进行查找,但我不希望用户只需单击下拉列表来选择值,因为查询中只能有一个值结果。)I我可以接受建议,因为我不是程序员或数据库管理员,但我在Access上学了几门课(足够危险)。

Private Sub cbo3_Change()
Me.tbx2 = ("SELECT tbl_Billing.Savings_b FROM tbl_Billing GROUP BY tbl_Billing.UBI_b, tbl_Billing.TaxYr_b, tbl_Billing.TaxPrg_b, tbl_Billing.Savings_b HAVING (((tbl_Billing.UBI_b)=forms!f1_UpBilled!cbo1) And ((tbl_Billing.TaxYr_b)=forms!f1_Upbilled!cbo2) And ((tbl_Billing.TaxPrg_b)=forms!f1_UpBilled!cbo3));")

End Sub

1 个答案:

答案 0 :(得分:1)

如果您希望在运行时执行此操作,则需要执行以下操作,我将您所指的控件放在同一表单上。

完成它的非常简单直接的方法如下,

Private Sub cbo3_Change()
    Dim tmpRS As DAO.Recordset

    Set tmpRS = CurrentDb.OpenRecordset("SELECT tbl_Billing.Savings_b FROM tbl_Billing GROUP BY " & _
                                        "tbl_Billing.UBI_b, tbl_Billing.TaxYr_b, tbl_Billing.TaxPrg_b, " & _
                                        "tbl_Billing.Savings_b HAVING ((tbl_Billing.UBI_b = '" & Me.cbo1 & "') And (tbl_Billing.TaxYr_b = '" & Me.cbo2 & "') " & _
                                        "And (tbl_Billing.TaxPrg_b = '" & Me.cbo3 & "'))")
    If tmpRS.RecordCount > 0 Then
        Me.tbx2 = tmpRS.Fields(0)
    Else
        Me.tbx2 = 0
    End If

    Set tmpRS = Nothing
End Sub 

请注意,我暗示您的所有组合框都返回字符串,并且您要比较的字段是文字类型。如果不是这种情况,则需要相应地进行更改。