显示基于组合框选择的消息框

时间:2012-10-24 16:12:09

标签: ms-access ms-access-2010

我有一个包含多个子表单的表单。目前我有两个组合框。一个按供应商过滤掉子表单,另一个选择确定哪个子表单,价格级别可见的价格级别。我有那部分工作正常。但是,现在我还想根据价格水平选择显示一个消息框。

我有另一张包含特殊客户定价的表格。例如,当选择组合框价格水平时,它会检查是否存在具有特殊定价的该价格水平的客户,并显示具有特殊定价的客户的消息框。

如果有两个客户:“客户名称”和“客户名称”具有特殊价格。

这是我的表关系

enter image description here

以下是我目前的价格水平组合框代码

Option Compare Database

Sub ShowSubform()

'Save unsaved changes to currently open subform
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

'Display appropriate subform based on cboPriceLevel chosen
If cboPriceLevel = "J6" Then
    J6_All_subform.Visible = True
    J7_All_subform.Visible = False
    J8_All_subform.Visible = False


    ElseIf cboPriceLevel = "J7" Then
    J6_All_subform.Visible = False
    J7_All_subform.Visible = True
    J8_All_subform.Visible = False

    Else
    J6_All_subform.Visible = False
    J7_All_subform.Visible = False
    J8_All_subform.Visible = True

End If

End Sub

Private Sub Form_Current()

'Call subroutine to display appropriate subform based on template type
ShowSubform

End Sub

Private Sub cboPriceLevel_AfterUpdate()

'Call subroutine to display appropriate subform based on template type
ShowSubform

End Sub

感谢您的帮助。如果我没有意义,请告诉我,你需要更好的解释。

1 个答案:

答案 0 :(得分:0)

您可以创建一个On_Click事件(或丢失焦点或任何您喜欢的事件),在选择价格时会触发。例如,如果您有一个名为&#34的表;客户"包含列" name"和#34; specialPricing"然后,您可以运行SQL查询以查找具有特殊定价的人员并将该数据显示给用户。算法会是这样的:

  • 用户选择后,从组合框中获取价格
  • 使用存储的SQL查询并将价格值添加到字符串中:  SELECT c。[name] FROM Customers AS c WHERE c。[specialPricing] =" &安培; comboBoxPrice.value& &#34 ;;"
  • 将查询的返回值存储在记录集中。
  • 如果RS为空,则向用户显示MsgBox"没有在此价格水平下具有特殊定价的客户" else:遍历记录集以创建一个字符串,其中包含具有特殊定价的客户以及MsgBox此列表/字符串给用户。