office交流網--QQ交流群號

Access培訓群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

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

Access利用DAO在窗體中查詢數據(篩選數據)

2020-01-09 08:00:00
tmtony8
原創
905

在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

運行篩選結果如圖

註意:

要先創建一箇對應名稱的查詢哦

    分享