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

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

在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

運行篩選結果如圖

注意:

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

    分享
    北京十一选五基本走势