คำถามที่ต้องการความช่วยเหลือ
กระทู้เก่าบอร์ด อ.Yeadram

 1,192   7
URL.หัวข้อ / URL
คำถามที่ต้องการความช่วยเหลือ

ผมขอความช่วยเหลือวท่านผู้รู้ และ อ. ทุกท่านครับ

     ถ้ามีเรคคอร์ดที่มีข้อมูลอยู่ 55 เรคคอร์ด หรือมากกว่าที่ระบุ ให้ทุก 10 เรคคอร์ด ทำการจัดกลุ่มโดยอัตโนมัติ คือ
        เรคคอร์ดที่ 1 ถึง 10 เท่ากับ 1
        เรคคอร์ดที่ 11 ถึง 20 เท่ากับ 2
        เรคคอร์ดที่ 21 ถึง 30 เท่ากับ 3
ให้ทำเรียงอย่างนี้ไปเรื่อยๆ ครับ

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

ขอบคุณมากครับ

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

1 @R14445
ต้องขอโทษด้วยถ้าผมตั้งคำถามแล้วไม่เข้าใจ เอาใหม่ครับ

     ถ้าผมมีข้อมูลอยู่ 55 เรคคอร์ด หรือมากกว่าที่ระบุไว้ (เนื่องจากต้อง add อยู่ประจำ) ความต้องการคือ ให้ข้อมูลที่มีอยู่ทั้งหมดจัดกลุ่มเองโดยอัตโนมัติทุก 10 เรคคอร์ด คือ
        เรคคอร์ดที่ 1 ถึง 10 ให้แต่ละเรคคอร์ดเท่ากับ 1 (คืออยู่กลุ่ม1)
        เรคคอร์ดที่ 11 ถึง 20 ให้แต่ละเรคคอร์ดเท่ากับ 2 (คืออยู่กลุ่ม2)
        เรคคอร์ดที่ 21 ถึง 30 ให้แต่ละเรคคอร์ดเท่ากับ 3 (คืออยู่กลุ่ม3)
ให้ทำเรียงอย่างนี้ไปเรื่อยๆ โดยอาจจะไม่ต้องเรียง Auto_No

เช่น ถ้าผมเรียกข้อมูลเฉพาะเดือนออกมา โดยเรียงตัวอักษรชื่อ และสมมติว่าข้อมูลที่เรียกขึ้นมามีข้อมูลอยู่ 25 ราย แล้วให้มันเรียงอักษรชื่อออกมาและให้จัดกลุ่มเรียงตามให้ด้วย (ตามที่คำถามข้างต้นนั้น)

ผมไม่ทราบว่าท่านผู้รู้ และ อ. จะเข้าใจคำถามหรือไม่

ถ้าพอเข้าใจ ก็อยากจะทราบว่าสามารถทำได้ หรือไม่ ถ้าทำได้ ต้องทำอย่างไร ช่วยอธิบาย และแสดงตัวอย่างให้ดูด้วยครับ

แต่ถ้าไม่เข้าใจ จะให้ผมอธิบายส่วนไหนเพิ่มเติมอีก ผมก็จะพยายามจะอธิบายให้เข้าใจมากขึ้นครับ

ต้องขอขอบคุณทุกท่านด้วยครับ
2 @R14446
ในรีปอร์ตทำได้ครับ ลองศึกษาที่หน้าจอออกแบบดู
3 @R14451
ค่านี้ไม่ติดไปกับเทเบิลใช่ไหมครับ ถ้าครั้งต่อไปเรียกดูข้อมูลที่เรียงลำดับอีกอย่างนึง หรือเรียกดูข้อมูลได้จำนวนเรคอร์ดต่างจากครั้งนี้ หมายเลขกลุ่มของเรคอร์ดเดิมนั้นก็อาจจะเปลี่ยนไปได้ใช่ไหม
4 @R14453
ใช่ครับ อ.สันติสุข
5 @R14456
อ.สันติสุข และท่านผู้รู้ครับ
จะต้องทำอย่างไรดีครับ

สามารถทำได้ หรือไม่ครับ

ขอบคุณครับ
6 @R14457
คุณต้องสร้างฟอร์มให้แสดงข้อมูลจากคิวรี่ที่คุณใช้งาน โดยคิวรี่นั้นจะต้องมีฟิลด์(หรือหลายฟิลด์รวมๆกัน) ที่ทำหน้าที่เป็น unique key ที่สามารถระบุถึงเรคอร์ดออกมาได้เพียงเรคอร์ดเดียวเท่านั้น ถ้าคิวรี่ดึงมาจากเทเบิลเดียวอยู่แล้ว ก็ให้ใส่ Primary Key ของเทเบิลลงในคิวรี่ไปด้วยเลย (ตรงนี้สมมุติฟิลด์ K คือฟิลด์ที่เป็น unique key)

ฟอร์มกำหนดให้เป็นรูปแบบ Datasheet Form หรือ Continuous Form ก็ได้ ในฟอร์มก็มีฟิลด์ต่างๆที่ต้องการแสดง และมีอีกเท็กซ์บ็อกซ์ที่แสดงค่าของกลุ่ม (สมมุติชื่อ G) ใน ControlSource property ของ G ให้ใส่เป็น
=Int((GetRecNo(K) + 9)/10)

ในโค้ดนี้ลงใน module level ของฟอร์ม
Private Function GetRecNo(pKey As Variant) As Long
    Dim RS As DAO.Recordset
    
    Set RS = Me.RecordsetClone
    With RS
    .FindFirst "K = " & pKey (หรือ "K = '" & pKey & "'" ในกรณีที่ K มี data type เป็น Text)
    If Not .NoMatch Then GetRecNo = .AbsolutePosition + 1
    End With
    RS.Close: Set wRS = Nothing
End Function


ถ้ามีหลายฟิลด์ทำหน้าที่เป็น unique key ต้องแก้โค้ดตรงส่วนสีแดงให้รองรับตามจำนวนฟิลด์ด้วย ผมยังไม่ได้ทดลองโค้ดนี้นะครับ อาจมี syntax error หรือ runtime error ก็แก้ไขด้วย

ปล.อย่างเร่งให้ตอบครับ ผมมีงานต้องทำ
7 @R14459
ขอโทษครับ อ.สันติสุข ที่เร่ง ขอโทษจริงๆ
เดี๋ยวผมจะลองนำไปลองทำดู แล้วได้ผลประการใด จะเข้ามาแจ้งให้ทราบครับ

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