如何在访问中找到同年的不同数据

时间:2013-10-26 16:01:46

标签: ms-access

我已经创建了一个数据库。但是我遇到了问题。

例如,我有以下学生的数据:

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。

访问专家需要您的帮助。

1 个答案:

答案 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字符串中添加单引号。