office交流网--QQ交流群号

Access培训群:792054000         Excel免费交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

Access利用DAO在窗体中查询数据(筛选数据)

2020-01-09 08:00:00
tmtony8
原创
6990

在Access中,筛选数据的方法有好多,如下面的示例

access用宏筛选子窗体的数据

Access动态设置子窗体及筛选子窗体数据的技巧


这里介绍一下用DAO做窗体的筛选:

如这样的窗体,我们通过输入课程或者学生来查询数据


详细代码如下,主要是通过QueryDefs对象来执行sql语句。

 Dim sql As String
    Set qdf = CurrentDb.QueryDefs("学生成绩查询")
    If Not IsNull(学生姓名) And Not IsNull(课程编号) Then
        sql = "select 学生选修课程表.学号,姓名,学生选修课程表.课程号,课程名,成绩,选课学期 from 学生表,课程表,学生选修课程表 where 学生表.学号=学生选修课程表.学号 and 课程表.课程号=学生选修课程表.课程号 and 学生表.学号=" + CStr(学生姓名) + " and 课程表.课程号=" + CStr(课程编号)
        
    ElseIf Not IsNull(学生姓名) Then
        
        sql = " select 学生选修课程表.学号,姓名,学生选修课程表.课程号,课程名,成绩,选课学期 from 学生表,课程表,学生选修课程表 where 学生表.学号=学生选修课程表.学号 and 课程表.课程号=学生选修课程表.课程号 and 学生表.学号=" + CStr(学生姓名)
    ElseIf Not IsNull(课程编号) Then
        sql = "select 学生选修课程表.学号,姓名,学生选修课程表.课程号,课程名,成绩,选课学期 from 学生表,课程表,学生选修课程表 where 学生表.学号=学生选修课程表.学号 and 课程表.课程号=学生选修课程表.课程号 " + " and 课程表.课程号=" + CStr(课程编号)
    Else
        sql = "select 学生选修课程表.学号,姓名,学生选修课程表.课程号,课程名,成绩,选课学期 from 学生表,课程表,学生选修课程表 where 学生表.学号=学生选修课程表.学号 and 课程表.课程号=学生选修课程表.课程号 "
    End If
    qdf.sql = sql
    学生成绩查询子窗体.Form.Recordset.Close
    Set 学生成绩查询子窗体.Form.Recordset = qdf.OpenRecordset

运行筛选结果如图

注意:

要先创建一个对应名称的查询哦

    分享