ดูข้อมูลดูทั้งหมดและดูแบบช่วงเวลา
กระทู้เก่าบอร์ด อ.Yeadram

 3,323   5
URL.หัวข้อ / URL
ดูข้อมูลดูทั้งหมดและดูแบบช่วงเวลา

ต้อนนี้ผมสามารถดูแบบช่วงเวลาได้แล้วครับ โดยการสร้าง Textbox รับวันที่ BeginDate กับ EndDateโดยการทำในคิวรี่ Between[Forms]![FrmAccident]![BeginDate]And[Forms]![FrmAccident]![EndDate]
คือเปิดฟอร์มครั้งแรกจะต้องใส่ช่วงเวลาก่อนถึงจะโชว์ข้อมูล
แต่ผมอยากให้เวลาเปิดฟอร์มขึ้นมาครั้งแรกให้มันแสดงข้อมูลทั้งหมดก่อนแล้วค่อยเลือกดูช่วงเวลาครับ

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

1 @R06246
- เอาเงื่อนไข (Between) ออกจากคิวรี่ครับ
ให้ข้อมูลมันเข้าฟอร์มมาทั้งหมดเลย ไม่ต้องไปกรองดักมัน
- ลำดับต่อไป ถ้าอยากกรองแบบ on demand คืออยากกรองเมื่อไหร่ค่อยกรอง ไม่ใช่ไปสั่งกรองไว้แต่เริ่มต้น ก็แนะนำให้ทำปุ่มคำสั่งเพิ่มปุ่มหนึ่ง ฝังโค้ดลงในเหตุการณ์ "เมื่อคลิ๊ก" ของปุ่มคำสั่งนี้ คำสั่งก็คือสั่งให้มันกรองครับ

Private sub command1_click()
me.filter="[ฟิลด์วันที่] BETWEEN " & me.BeginDate & " AND " & me.EndDate
me.filteron = true
me.refresh
End sub
2 @R06249
ผมทำตามที่แนะนำแล้ว เมื่อกดป่มคำสั่ง ข้อมูลที่โชว์อยู่หายหมดเลย ไม่รู้ว่าผมทำผิดตรงไหนหรือเปล่าครับ

Private sub command89_click()
me.filter = "[StartDate] BETWEEN " & me.BeginDate & " AND " & me.EndDate
me.filteron = true
me.refresh
End sub
3 @R06251
ขณะทีข้อมูลมันหาย
- ให้เปลียนมุมมองไปที่ออกแบบทันที
- ดูคุณสมบัติของฟอร์ม ดูที่ช่อง "ตัวกรอง" ดูสายอักขระที่มันเขียน โดยเฉพาะรูปแบบของวันที่ มันเขียนได้ถูกต้องหรือไม่

คุณอาจต้องปรับเปลี่ยนรูปแบบของข้อมูลก่อนนำเข้าไปในสายอักขระเงื่อนไข หรืออาจต้องใช้เครื่องหมายชาร์ฟ (#) เข้าช่วยเช่น

"[StartDate] BETWEEN #" & me.BeginDate & "# AND #" & me.EndDate & "#"
หรือ
"[StartDate] BETWEEN " & cdate(me.BeginDate) & " AND " & cdate(me.EndDate)
หรือ
"[StartDate] BETWEEN #" & format(me.BeginDate,"yyyy-mm-dd") & "# AND #" & format(me.EndDate,"yyyy-mm-dd") & "#"

ลองปรับเปลียนหาดูครับ ทั้งนี้ต้องปรับจนเข้ากันได้
กับ system date ของคุณ, กับรูปแบบการกรอกข้อมูลของคุณ, รูปแบบของฟิลด์ที่คุณกำหนดไว้ก่อน
4 @R06255
ขอบคุณมากน่ะครับ
คุณ yeadram
5 @R08298
ก่อนเครื่องหมายเท่ากับ
ถ้าคุณเขียนโค้ดบน main form แล้วสั่ง
me.filter =............
นั่นหมายความว่า คุณกำลังจะกรองข้อมูลบนฟอร์มหลัก

ถ้าคุณเขียนโค้ดบน main form แต่จะสั่งกรองข้อมูลใน sub form คุณจะใช้ me.filter (ข้าพเจ้าต้องการจะกรอง...) ไม่ได้ อย่างของคุณต้องเขียน
me.morot.form.filter (ฟอร์มย่อยของข้าพเจ้าที่ชื่อ morot ต้องการจะกรอง..)

หลังเครื่องหมายเท่ากับ
คุณควรเขียนแค่ว่า "[date] between #" & me.begindate & " and #" & me.enddate & "#"
สายอักขระชุดนี้จะถูกส่งเข้าไปในฟอร์มย่อย ซึ่งก็คือ ฟอร์มย่อย จะเป็นผู้อ่านสายอักขระ จะเป็นผู้ปฎิบัติตามคำสั่งในสายอักขระ ฟอร์มหลักไม่มีสิทธิ์ไปอ่านมันอีก ดังนั้นเมื่อฟิลด์ชื่อ [Date] มันเป็นของฟอร์มย่อยอยู่แล้ว ก็ไม่ต้องไปอ้างอิงให้อ้อมโลกอีก คุณก็จึงเขียนแค่ [Date] Between.... ได้เลย
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2498s