Board logo

標題: ACCESS查詢表單製作 [打印本頁]

作者: sandry49    時間: 2014-4-29 11:30     標題: ACCESS查詢表單製作

拜託~誰可以幫幫我!!!!
想做像以下的查詢,
1.一開始進入頁面,為顯示全部資料
2.選擇條件然後點選查詢,查詢結果顯示在下方子報表
3.查詢可以是單一條件,或多個條件一起查詢
4.點選清除查詢,回復為一開始進入的畫面

[attach]18192[/attach]
作者: aa7551    時間: 2014-4-30 11:22

上傳部份資料,以利回答
作者: sandry49    時間: 2014-5-2 11:20

回復 2# aa7551

程式碼會想這樣想,主要是為了,
一開始進入頁面,顯示所有資料,因為如果用查詢設準則的方式,子表單中,設準則的欄位如空值就不會顯示
所以改用寫程式碼,這樣一開始進入頁面就會顯示全部資料,
只是現在不知道我的程式,出了甚麼問題,最下面紅字標記的,哪裡有錯,
選取In Charge 跟輸入客戶名稱,無法查詢,請幫我解答,謝謝!!!

[attach]18201[/attach]

If IsNull(Me![SearchName]) = True Then '若欄位無記錄
    Me![專案查詢子表單].Form.RecordSource = "select * from 專案查詢" '更改子表單記錄來源
ElseIf IsNull(Me![SearchName]) = False Then '若欄位有記錄
    Me![專案查詢子表單].Form.RecordSource = "select * from 專案查詢 where [專案名稱] Like '" & IIf(IsNull(Me![SearchName]), " * ", ("*" & Me![SearchName] & "*")) & "'" '更改子表單記錄來源


ElseIf IsNull(Me![SearchPM]) = True Then
    Me![專案查詢子表單].Form.RecordSource = "select * from 專案查詢"
ElseIf IsNull(Me![SearchPM]) = False Then
    Me![專案查詢子表單].Form.RecordSource = "select * from 專案查詢 where [PM] Like '" & IIf(IsNull(Me![SearchPM]), " * ", Me![SearchPM]) & "'"


ElseIf IsNull(Me![SearchClient]) = True Then
    Me![專案查詢子表單].Form.RecordSource = "select * from 專案查詢"
ElseIf IsNull(Me![SearchClient]) = False Then
    Me![專案查詢子表單].Form.RecordSource = "select * from 專案查詢 where [客戶] Like '" & IIf(IsNull(Me![SearchClient]), " * ", Me![SearchClient]) & "'"


ElseIf IsNull(Me![SearchInCharge]) = True Then
    Me![專案查詢子表單].Form.RecordSource = "select * from 專案查詢"
ElseIf IsNull(Me![SearchInCharge]) = False Then
    Me![專案查詢子表單].Form.RecordSource = "select * from 專案查詢 where [In Charge] Like '" & IIf(IsNull(Me![SearchInCharge]), " * ", Me![SearchInCharge]) & "'"

作者: sandry49    時間: 2014-5-2 11:27

回復 2# aa7551
還是可否將檔案寄給您,讓你幫我看一下,謝謝!!
我遇到蠻多問題的
作者: aa7551    時間: 2014-5-3 09:00

[email protected],個人認為架構出問題,同一畫面有需要這麼多條件嗎,還是你一次需要看這麼才能滿足
作者: sandry49    時間: 2014-5-4 16:35

用ACCESS製作查詢介面時遇到一些問題,可否請你幫我指點迷津,非常感謝!!!!

打開資料庫會出現專案查詢介面,想做到以下功能:
1.一開始進入頁面分為上半部及下半部
2.上半部
  (1)文字方塊:專案名稱 客戶 開始日期 結束日期
      下拉式選單:選取PM 選取In Charge
   6個條件查詢,可以是單一條件,也可以是多個條件
     
  (2)按鈕:查詢 清除查詢
   選擇條件後,點選查詢,查詢結果顯示下方子報表
   點選清除查詢,會清空剛選擇的條件,然後可以再重新查詢別的條件
3.下半部
    子報表:一開始進入查詢頁面顯示全部資料及顯示查詢結果

現在遇到的問題有:
打開專案查詢,裡面有以下準則
In Charge:
Is Null Or Like IIf(IsNull([forms]![專案查詢介面]![SearchInCharge]),"*",[forms]![專案查詢介面]![SearchInCharge])

PM:
Is Null Or Like IIf(IsNull([forms]![專案查詢介面]![SearchPM]),"*",[forms]![專案查詢介面]![SearchPM])

開始時間:
Is Null Or Between IIf(IsNull([FORMS]![專案查詢介面]![StartDate1]),#1911/1/1#,[FORMS]![專案查詢介面]![StartDate1]) And IIf(IsNull([FORMS]![專案查詢介面]![StartDate2]),#2030/1/1#,[FORMS]![專案查詢介面]![StartDate2])

結束時間:
Is Null Or Between IIf(IsNull([FORMS]![專案查詢介面]![EndDate1]),#1911/1/1#,[FORMS]![專案查詢介面]![EndDate1]) And IIf(IsNull([FORMS]![專案查詢介面]![EndDate2]),#2030/1/1#,[FORMS]![專案查詢介面]![EndDate2])

查詢按鈕寫一個VBA為
Private Sub ProjectSearch_Click()
   Me![專案查詢子表單].Requery
End Sub


問題1.最開頭的IS NULL是因為這些準則欄位會有沒資料的情況發生,為了讓一開始進入查詢頁面,下方子報表顯示所有資料
不過現在出現一個問題是,
當我選條件,按下查詢按鈕時,下方子報表會顯示我選取的條件結果之外連欄位為空值的資料也顯示
例如:選取In Charge選擇曾國維時,資料會顯示In Charge為曾國維的資料,及In Charge為空值的資料
我希望能只顯示我輸入條件的資料,不知道準則要怎麼修改才能做到一開始縣市所有資料包括有空值資料,查詢篩選時只顯示我選擇條件的資料

問題2.上方還有一些專案類別選取的核取方塊,我想依下方子報表專案類別欄位做選擇,另外專案類別欄位為多重值,
用多重值欄位是不是無法做抓資料,是否須改其他方式??
作者: aa7551    時間: 2014-5-4 21:38

Is Null Or Like IIf(IsNull([forms]![專案查詢介面]![SearchInCharge]),"*",[forms]![專案查詢介面]![SearchInCharge]),當資料是空的,進入iif判斷時會成為什麼?iif(isnull(....),"*",............),在sql語句時select ..........from ........... where .........,在where  條件 = ...........,如是空值,則不應為修件




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)