การทำตัวกรองผ่านฟอร์ม
กระทู้เก่าบอร์ด อ.Yeadram

 8,250   61
URL.หัวข้อ / URL
การทำตัวกรองผ่านฟอร์ม

การทำตัวกรองผ่านฟอร์ม สามารถทำได้มั้ยคะ

61 Reply in this Topic. Dispaly 4 pages and you are on page number 1

1 @R15766
ปกติก็มีอยู่แล้วนะครับ แต่เป็น Access 2010
ครับ
2 @R15772
ถ้่าเป็น 2007 ทำยังไงคะ
3 @R15773
เดี๋ยวผมตอบให้นะครับ
4 @R15776
ขอบคุณค่ะ
5 @R15777
ต้องการประมาณนี้ค่ะ หนูต้องทำตัวกรองผ่านฟอร์มหรือยังไงคะ ^^"

ต้องการสร้างคิวรี่จากตาราง Tran เพื่อนำข้อมูลนตาราง Tran
มาเเสดงซึ่งแยกตามวันที่ที่ต้องการ เพื่อสะดวกแก่การรวมยอดเงินของแต่ละวันของสมาชิก ตามประเภทการฝาก

ลำดับ   >>> AutoNumber
รหัสส. >>> Number
ประเภทรายการ >>> Text
วันเวลา   >>> Date/Time
จำนวนเงิน >>> Number


ตัวอย่างตารางการทำรายการ(Tran)
------------------------------------------------------------------------------------------
ลำดับ รหัสส. ประเภทรายการ        วันเวลา                      จำนวนเงิน
1        1        Y                      02/4/2556 10:50:05          100
2        2        Y                      02/4/2556 12:50:05          150
3        1        Y                      10/4/2556 14:50:05          100
4        2        Z                      10/4/2556 15:50:05          200
5        1        Y                      11/4/2556 15:55:55          150
-----------------------------------------------------------------------------------------

ซึ่งนำมาสร้างฟอร์มคือ

ยอดเงินประจำวันที่........................
(เมื่อผู้ใช้ใส่วันที่ที่ต้องการใน............. ข้อมูลการทำรายการก็จะเเสดงด้านล่างตามวันี่ทั้งหมด)
-----------------------------------------------------------------------------------------
เช่นในฟอร์มยอดเงินประจำวัน


                                ยอดเงินประจำวันที่...02/4/2556...
----------------------------------------------------------------------------------
ลำดับ รหัสส. ประเภทรายการ        วันเวลา                      จำนวนเงิน
1        1        Y                      02/4/2556 10:50:05          100
2        2        Y                      02/4/2556 12:50:05          150
-----------------------------------------------------------------------------------
สรุปยอดเงินประจำวันที่ ...02/4/2556...
ประเภท Y   >>> 250 บาท
ประเภท Z   >>>   0    บาท

------------------------------------------------------------------------------------------


รบกวนด้วยนะค่ะ
6 @R15780
ขอ email ด้วยครับ จะส่งตัวอย่างให้ครับ
7 @R15782

ลองโหลดไปศึกษาดูนะครับ
จริงๆทำได้หลายแบบครับ

www.gmail.com
userName : accboard
password : accgmail
file name : test_1
8 @R15784
ขอบคุณ ค่ะ ^^"
9 @R15785
ลองทำดูแล้ว ทำไมพอใส่วันที่มันไม่อัปเลยว่า รวมของวันนั้นเท่าไหร่
รบกวนอีกครั้งค่ะ
10 @R15786
คืออยากให้โชว์ข้อมูลที่เลือกตามวัน จำนวนเงินรวมของวันที่เลือก เมื่อเลือกวันที่ที่ต้องการจะดูข้อมูลใน ฟอร์ม Form1_Main เลยคะ รบกวนขอคำแนะนำด้วยคะ ^^"
11 @R15787
ผมยังไม่เคลียร์คำถามครับผม
12 @R15789
คืออยากให้โชว์ข้อมูลตามวันที่เลือก   ภายใน ฟอร์ม Form1_Main เลย

นั้นคือ

ยอดเงินประจำวันที่........................
(เมื่อผู้ใช้ใส่วันที่ที่ต้องการใน............. ข้อมูลการทำรายการก็จะเเสดงด้านล่างตามวันี่ทั้งหมด)
-----------------------------------------------------------------------------------------
เช่นในฟอร์มยอดเงินประจำวัน


                                ยอดเงินประจำวันที่...02/4/2556...
----------------------------------------------------------------------------------
ลำดับ รหัสส. ประเภทรายการ        วันเวลา                      จำนวนเงิน
1        1        Y                      02/4/2556 10:50:05          100
2        2        Y                      02/4/2556 12:50:05          150
-----------------------------------------------------------------------------------
สรุปยอดเงินประจำวันที่ ...02/4/2556...
ประเภท Y   >>> 250 บาท
ประเภท Z   >>>   0    บาท

------------------------------------------------------------------------------------------


รบกวนด้วยนะค่ะ
13 @R15792
คือจะกรองก่อนเปิดฟอร์ม หรือ หลังจากเปิดฟอร์มแล้วค่อยใส่วันที่กรองครับ
14 @R15793
เมื่อเปิดฟอร์มแล้ว เลือกวันที่ที่ต้องการ
แล้วแสดงข้อมูลออกมาค่ะ .ในฟอร์มนั้นเลค่ะ ^^"
15 @R15796
เดี๋ยวผมค่อยๆตอบนะครับ ไม่ว่าง แต่น่าจะไม่เกินวันนี้จะยกตัวอย่างให้ลองทำดูครับ
16 @R15797
ขอบคุณมากค่ะ
17 @R15803
เริ่มต้นด้วยผมมีตารางชื่อ Tran ดังนี้:
ลำดับ รหัส   ประเภทรายการ        วันเวลา                      จำนวนเงิน
1        1        Y                      02/4/2556 10:50:05          100
2        2        Y                      02/4/2556 12:50:05          150
3        1        Y                      10/4/2556 14:50:05          100
4        2        Z                      10/4/2556 15:50:05          200
5        1        Y                      11/4/2556 15:55:55          150

*ผมขอเปลี่ยชื่อฟิลด์ รหัสส. เป็น รหัส นะครับ เพราะมันตั้งชื่อมีจุดไม่ได้

1. สร้างฟอร์มขึ้นมาใหม่ กำหนด Property ของฟอร์มดังนี้:
Format > Default View: Continuous Forms
Data > Record Source: Tran

2. บนพื้นที่บนฟอร์มส่วนของ Detail สร้าง Textbox เรียงกันทางแนวนอน 5 ตัว โดยใช้ชื่อ Text1, Text2, Text3, Text4, Text5 ตามลำดับ

3. กำหนด Property ในส่วน Control Source: ของ Textbox แต่ละตัวดังนี้
Text1 > Data > Control Source: ลำดับ
Text2 > Data > Control Source: รหัส
Text3 > Data > Control Source: ประเภทรายการ
Text4 > Data > Control Source: วันเวลา
Text5 > Data > Control Source: จำนวนเงิน

4. เปิดในส่วนของพื้นที่ Form Header/Footer

5. พื้นที่ในส่วน Form Footer สร้าง Textbox ขึ้นมา 3 ตัว เรียงกันทางแนวตั้ง โดยใช้ชื่อ Text6, Text7, Text8 ตามลำดับ

6. ในส่วนของ Label ที่มากับ Text6, Text7, Text8 ให้กำหนดข้อความในส่วนของ Property ดังนี้
Text6 > Format > Caption: สรุปยอดเงินประจำวันที่
Text7 > Format > Caption: ประเภท Y   >>>
Text8 > Format > Caption: ประเภท Z   >>>

7. กำหนด Property ให้กับ Text7 และ Text8 (Text6 ไม่ต้อง ให้เป็น Unbound) ดังนี้:
Text7
Format > Text Align: Right
Data > Control Source:
=DSum('[จำนวนเงิน]','Tran','[ประเภทรายการ] = ''Y''')
Text8
Format > Text Align: Right
Data > Control Source:
=DSum('[จำนวนเงิน]','Tran','[ประเภทรายการ] = ''Z''')

8. พื้นที่ในส่วน Form Header สร้าง Textbox ขึ้นมา 1 ตัว ให้ชื่อว่า Text9 สร้างปุ่มขึ้นมา 1 ปุ่ม ชื่ออะไรก็ได้
- Text9 ให้เป็น Unbound ไม่ต้องทำอะไร เอาไว้สำหรับใส่ค่าวันที่ ที่จะกรอง
- Label ที่ติดมากับ Text9 ให้ใส่ Caption เป็น ยอดเงินประจำวันที่
- ที่ปุ่ม ใส่โค๊ดลงในปุ่มที่ Event > On Click ดังนี้:
Dim Fdate As String
If Me.Text9 & "" <> "" Then Fdate = Me.Text9
If Me.Text9 & "" = "" Then
Me.FilterOn = False
Me.Text6 = "Every Day"
Me.Text7.ControlSource = "=DSum('[จำนวนเงิน]','Tran','[ประเภทรายการ] = " & "''Y''" & "')"
Me.Text8.ControlSource = "=DSum('[จำนวนเงิน]','Tran','[ประเภทรายการ] = " & "''Z''" & "')"
Else
Me.Filter = "DateValue(Tran.[วันเวลา]) = '" & Me.Text9 & "'"
Me.FilterOn = True
Me.Text6 = Me.Text9
Me.Text7.ControlSource = "=Nz(DSum('[จำนวนเงิน]','Tran','[ประเภทรายการ] = " & _
"''Y''" & "AND DateValue([วันเวลา]) = " & "''" & Me.Text6 & "''" & "'),0)"
Me.Text8.ControlSource = "=Nz(DSum('[จำนวนเงิน]','Tran','[ประเภทรายการ] = " & _
"''Z''" & "AND DateValue([วันเวลา]) = " & "''" & Me.Text6 & "''" & "'),0)"
End If
If Not IsNull(Fdate) Then Me.Text9 = Fdate


9. บนฟอร์ม ให้โค๊ดที่ Event > On Close:
Me.Filter = ""
Me.FilterOn = False


เป็นอันเสร็จ เมื่อเปิดฟอร์ม ใส่ค่าวันที่ต้องการลงที่ Text9 กดปุ่ม ฟอร์มจะกรองข้อมูลที่ต้องการ



เมื่อรันฟอร์ม


เมื่อกรองวันที่
18 @R15804
วางแผนไว้ว่าสุดท้ายจะอัพรูป ทำพังหมดเลยครับ รูปซ้ำกันหมด ลองอีกครั้ง ไม่ได้ไว้พรุ่งนี้อัพใหม่ให้

19 @R15808
ขอบคุณค่ะ

ปล. ถ้าอาจารย์มีไฟล์โปรแกรม หนูขอดูประกอบด้วยได้มั้ยคะ
20 @R15809
โหลดที่นี่ กำหนด 7 วัน

ในไฟล์ตัวอย่างผมทำ ใน Text1 ผมทำเป็น Running Sum นะครับ หากไม่ต้องการ Running Sum ก็ให้กำหนด Text1 เหมือนที่อธิบายในกระทู้แทน
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3614s