-3

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

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

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。

访问专家需要您的帮助。

4

1 回答 1

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

于 2013-10-26T17:38:58.153 回答