我已经创建了一个数据库。但是我遇到了问题。
例如,我有以下学生的数据:
No. name department Passing year
1 X economics 2002
2 Y history 2000
3 Z Math 2002
当我在组合框搜索中输入passing year 2002
时,它会显示only one result
,但我想显示那些过去年份为2002年的所有结果。我该怎么做?我使用的是Microsoft 2007。
访问专家需要您的帮助。
答案 0 :(得分:1)
根据你所陈述的内容,我甚至无法猜测究竟发生了什么,但我可以告诉你如何获得你正在搜索的结果。
1)设置新表格。称之为subfrmPassingYear。对于表单的RecordSource,将其设置为学生信息所在的表的名称。为了我们的目的,我将继续将其称为tblStudents。
2)在此表单的“默认视图”属性中,您需要将其更改为“连续表单”或“数据表”。它将默认为Single Form,这是一个不错的选择。
3)设置另一个新表格。称之为frmPassingYear。
4)将新的子表单添加到frmPassingYear。它是一个对象,应该与文本框,标签,组合和所有其他对象位于同一工具箱中。它应该自动启动向导,您可以选择“现有表单”并从列表中选择subfrmPassingYear。如果向导未启动,只需将子窗体的Source Object属性设置为subfrmPassingYear。
5)向frmPassingYear添加一个新组合。称之为cboPassingYear。作为其RecordSource,将其设置为“SELECT DISTINCT [Passing Year] FROM tblStudents ORDER BY [Passing Year] ASC”。
6)在cboPassingYear的AfterUpdate事件中,输入以下语句:
Dim sSQL as String
sSQL = "SELECT * FROM tblStudents WHERE [Passing Year] = " & Trim(Me!cboPassingYear.Text) & ""
Forms!frmPassingYear.subfrmPassingYear.Form.RecordSource = sSQL
运行frmPassingYear,从组合中选择一个过去的年份,子窗体应该只填充该年份的记录。如果您的年份存储为TEXT而不是INTEGER,则需要在SQL字符串中添加单引号。