我有一个Microsoft Access数据库。它有一个客户表和每个客户的进入日期。我还有一个表格,其中包括所有客户及其信息。
我想制作一个组合框(下拉框),其中包括一年中的几个月(1月,2月,3月,4月等)。当用户从组合框中选择April时,只有那个月添加的记录将显示在记录表中。
可以这样做吗?我一直试图这样做至少3天但没有运气..
亲切的问候。
答案 0 :(得分:5)
基本上,您需要一个下拉字段,该字段应用过滤器功能来按月过滤相应的记录。根据您是否使用子表单,执行以下操作。
主要表格(无子表格) - 使用ApplyFilter
宏:ApplyFilter FilterName: (leave blank), Where Condition: ="=[Record Month Field]='" & Forms!MainForm!FilterMonthCombo & "'", Control Name: (leave blank)
VBA:DoCmd.ApplyFilter , "[Record Month Field]='" & Me.FilterMonthCombo & "'"
主窗体(带子窗体) - 使用RecordSource
VBA:Forms!MainForm!Subform.Form.RecordSource = "SELECT * FROM Records WHERE [Record Month Field]='" & Forms!MainForm!FilterMonthCombo & "'"
答案 1 :(得分:1)
在MS Access中,我觉得这很简单。 如果您对VBA感到满意,可以编写程序 “更新后”组合框的事件。 此过程应该只是将FROM的RecordSource更新为
"SELECT * FROM [the table with the records you want to filter] WHERE [Field with month number] = " & ComboxboxField.Column(0)
将您的组合框设置为两列,一列包含月份编号,另一列包含月份名称。 格式化组合框时,选择通过将其大小设置为0“
来隐藏第一列数据答案 2 :(得分:0)
您需要执行几个步骤,首先进入组合框的属性并更改行源,使其具有第一列中的月份编号和第二列中的月份名称。你需要为此制作一张桌子。接下来,进入组合框的属性并将列计数更改为2.然后更改列宽,使第一列为0.它应该看起来像这样 - 0“; 2”。现在组合框应该在下拉列表中列出月份名称,但是如果以编程方式访问它,它将为您提供月份的编号。
这应该让你开始,从那里取决于你如何获得数据,你需要一个使用Month()来分离它的查询,或者如果你使用子表单,你需要一个月的字段在那里链接。
希望如果不是太晚,这会有所帮助。