@ ประกาศใช้งานเว็บบอร์ดใหม่คลิกลิ้งได้ที่โลโก้ ไท.Access หรือกด --> บอร์ดเรียนรู้ Access สำหรับคนไทย 
                         โพสต์ถาม,ตอบที่บอร์ดใหม่ แล้วจะใส่ลิ้งอ้างมาที่บอร์ดนี้หรือไม่ก็ตามสะดวกครับ


Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ ระบบฐานข้อมูล
Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ การเขียนโปรแกรม
Access : เป็นได้ทั้งตัวเก็บฐานข้อมูล และตัวจัดการฐานข้อมูล
Thai Access : บอร์ดเสริมการเรียนรู้ Access ด้วยภาษาไทย


Back to Board : Thai Access Webboard

จะให้กรองข้อมูลตามช่วงวันที่ครับ


Topic by Message Posted : on : 17/5/2559 21:46:17
pookpuy  ขอขุดกระทู้มาขอความช่วยเหลือครับ
จาก http://www.thai-access.com/topic_post.asp?CategoryID=&TopicID=1477

คือผมอยากจะให้กรองช่วงวันที่นะครับ
ลองทำตามแล้วยังไม่ได้ ข้อมูลนิ่ง
ขอคำแนะนำด้วยครับ

ปล.ข้อมูลที่ต้องการให้กรองอยู่ในส่วน sub form ครับ
คำสังที่ผมลองใช้

Me.F_BB_sub.Form.Filter = "[Date] BETWEEN #" & Format(Me.BeginDate, "dd mmm yy") & "# AND #" & Format(Me.EndDate, "dd mmm yy") & "#"
'
'Me.F_BB_sub.Form.Filter = "[Date] BETWEEN " & CDate(Me.BeginDate) & " AND " & CDate(Me.EndDate)
'Me.F_BB_sub.Form.Filter = "[Date] between #" & Me.BeginDate & " and #" & Me.EndDate & "#"
อันที่สามนี่ขึ้น Runtime Error ครับ

Me.FilterOn = True
Me.Refresh


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

Reply by Message on : 18/5/2559 10:52:56
pookpuy
(R22105)
ไฟล์ครับ

ช่างอิเล็คฯอยากทำให้คุณอาใช้ช่วยแนะแนวทางด้วยครับ
          
Back to Top
Reply by Message on : 18/5/2559 11:27:05
สันติสุข
(R22106)
ปัญหาน่าจะเป็นเพราะเครื่องคุณอยู่ในระบบปี พ.ศ. ครับ ฟังก์ชั่น Format( ) ก็จะให้รูปแบบวันที่ตามที่กำหนดในระบบวินโดว์ แต่เพราะวันที่ที่อยู่ในเงื่อนไขต่างๆที่ใช้ใน SQL นั้น   ตัวจัดการฐานข้อมูลเองต้องการวันที่ในระบบภาษาอังกฤษและเป็น ค.ศ. ด้วย (แม้ว่าเครื่องจะยังอยู่ในระบบ พ.ศ. ก็ตาม) ส่วนตัวผมแนะนำให้เป็นรูปแบบ วันที่ 2 หลัก ชื่อเดือนภาษาอังกฤษ(จะชื่อย่อหรือชื่อเต็มก็ได้) และปีค.ศ.อีก 4 หลักครับ ส่วนสัญญลักษณ์ที่คั่นระหว่างส่วนของ วัน เดือน ปี จะเป็นช่องว่างหรือเครื่องหมาย / หรือ - ก็ใช้ได้ครับ

ลองอ่านเพิ่มเติมจากลิงค์นี้ครับ http://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=2294&PagePosition=1
Back to Top
Reply by Message on : 18/5/2559 16:40:14
pookpuy
(R22107)
ผมเปลี่ยน รูปแบบวันที่ในเครื่องแล้วก็ยังเป็นอยู่ครับผม


Back to Top
Reply by Message on : 18/5/2559 16:43:32
สันติสุข
(R22108)
ต้องเป็น #4 May 2016# ครับ
Back to Top
Reply by Message on : 18/5/2559 17:00:42
pookpuy
(R22109)
ได้แล้วครับ (ปุ่มคำสั่งอยู่บน sub form)
Private Sub cmdDate_Click()
Me.Filter = "[Date] between #" & Me.BeginDate & "#" & "and #" & Me.EndDate & "#"

Me.FilterOn = True
Me.Refresh
End Sub

แต่ถ้าผมยกมาใส่บน main Form
Me.F_BB_sub.Form.Filter = .........
ข้อมูลยังนิ่งครับ

ปล.รบกวนขอคำสั่งยกเลิกการ Filter ทีครับ
Back to Top
Reply by Message on : 18/5/2559 17:18:48
pookpuy
(R22110)
คำสั่งยกเลิกการ Filter ครับ

Private Sub Filteroff_Click()
Me.FilterOn = False
Me.Refresh
End Sub

Back to Top
Reply by Message on : 18/5/2559 17:20:26
สันติสุข
(R22111)
ถ้ายกมาใน main form ก็ต้องสั่ง Me.F_BB_sub.form.FilterOn = True ด้วยครับ ถ้าต้องการยกเลิก ก็กำหนดให้เป็น False เท่านั้นเอง
Back to Top
Reply by Message on : 18/5/2559 17:34:10
pookpuy
(R22112)
เยี่ยมเลยครับ

ขอบคุณมากมายเลยครับผม

Back to Top
Reply by Message on : 18/5/2559 23:56:32
pookpuy
(R22116)
....
คือว่า จะสั่งพิมพ์เป็นรายงานออกมายังไงครับผม
ผมลองใช้วิธี ขณะที่เปิดอยู่กดปุ่ม Ctrl+P มั้นปริ้นออกมาทุกๆรายชื่อลูกค้าเลยครับ
ทั้งๆที่ผมก็เลือกดูอยู่แค่รายเดียวในหน้าต่างนั้น และแม้ข้อมูลจะว่าง(ตามช่วงวันทีที่เลือก) ก็ปริ้นหัวเป็นชื่อ ด้านล่างว่างเปล่า (รวมถึงลองๆสร้างปุ่มคำสั่งปริ้นก็แนวๆเดียวกันเลยครับ)

หรือว่าถ้าจะทำเป็น Report ต้องทำอย่างไรครับโดยเฉพาะให้ส่งค่าจากตัวแปลที่เราได้ทำการเลือกๆใว้ครับ
Back to Top
Reply by Message on : 19/5/2559 9:52:54
สันติสุข
(R22117)
เรื่องพิมพ์ออกมาได้ทุกรายชื่อ ถ้าถูก filter อยู่ก็ไม่เคยเจอว่าเป็นอย่างนั้นนะครับ ส่วนพิมพ์หัวกระดาษเมื่อไม่มีรายชื่อตามเงื่อนไข ระบบมันเป็นอย่างนั้นอยู่แล้วครับ ถ้าไม่ต้องการให้พิมพ์เลย ต้องตรวจเช็คว่าถ้ามีรายการตามเงื่อนไขที่ filter ก็ไม่ต้องพิมพ์ครับ โดยใช้โค้ดนี้ใส่ในปุ่มคำสั่งพิมพ์ที่คุณสร้างขึ้นมาเอง

If me.F_BB_sub.form.recordsetclone.recordcount > 0 then
   ' คำสั่งพิมพ์
   Docmd.PrintOut
else
   MsgBox "No data to be printed"
end if

แต่ถ้าคุณจะทำเป็น Report เพื่อพิมพ์โดยเฉพาะ ก็ให้ใส่โค้ดในปุ่มพิมพ์เป็น

Docmd.OpenReport "ชื่อรายงาน",acViewDesign,,"[Date] between #" & Me.BeginDate & "# and #" & Me.EndDate & "#"

และเพื่อให้รายงานไม่พิมพ์เมื่อไม่มีข้อมูลตามเงื่อนไข ใน event : On No Data ของตัว Report ให้เลือก [Event Procedure] แล้วกดปุ่ม ... ที่ด้านท้าย ตัวโค้ดจะเปิดออกมา ให้ใส่คำสั่ง Cancel = True แทรกลงไปตามตัวอย่างนี้

Private Sub Report_NoData(Cancel As Integer)
   Cancel = True
End Sub
Back to Top
Reply by Message on : 19/5/2559 12:01:51
pookpuy
(R22119)
แล้วต้องเพิ่มคำสั่งอะไรครับ
ให้มันกรองตาม Cus_ID ด้วยนะครับ
Back to Top
Reply by Message on : 19/5/2559 13:13:30
สันติสุข
(R22121)
"[Cus_ID] = """ & Me.อะไรก็ว่าไป & """ and [Date] between #" & Me.BeginDate & "# and #" & Me.EndDate & "#"
Back to Top
Reply by Message on : 19/5/2559 16:31:13
pookpuy
(R22123)
ขอขอบคุณ
การเพิ่มลำดับที่ให้เรียง 1234... ในแต่ละครั้งที่ดู
สำหรับการทำให้ออโต้แทรกลำดับที่ครับ
Back to Top

 @ ประกาศใช้งานเว็บบอร์ดใหม่คลิกลิ้งได้ที่โลโก้ ไท.Access หรือกด --> บอร์ดเรียนรู้ Access สำหรับคนไทย 
                         โพสต์ถาม,ตอบที่บอร์ดใหม่ แล้วจะใส่ลิ้งอ้างมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ


Sorry, you can NOT post a reply.
+++ webboard source: ASPThai.Net Webboard 6.0 webbord +++++++ admin : yeadram +++