เรียงลำดับข้อมูลในฟอร์มแล้ว จะสั่งพิมพ์อย่างไรครับ
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 279   7
URL.หัวข้อ / URL
เรียงลำดับข้อมูลในฟอร์มแล้ว จะสั่งพิมพ์อย่างไรครับ

ผมสร้างฟอร์มขึ้นมาเพื่อเรียงลำดับข้อมูล โดยใช้ Option Group เขียนโค๊ดดังนี้
Private Sub SortOrder_AfterUpdate()
Dim SQLText As String
Dim SortKey As String

SQLText = "Select * From Data Order By" & Chr(32)
Select Case [SortOrder]
Case 1
SortKey = "Name;"
Case 2
SortKey = "Surname;"
Case 3
SortKey = "Birth;"
End Select
Screen.ActiveForm.RecordSource = SQLText & SortKey
End Sub

สามารถเรียงลำดับได้แล้ว ติดปัญหาตรงเวลาจะสั่งพิมพ์ข้อมูลเป็นรูปแบบรายงาน ตามที่กำหนดในแต่ละ Option ไม่ได้ครับ มันขึ้นมาเหมือนกันหมด กรุณาแนะนำด้วยครับ

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

1 @R04713
ลองส่ง SQLText ตัวนี้ไปให้ Report ด้วยครับ

ตรงปุ่มคำสั่งเปิด Report ให้ลองเพิ่มบรรทัดนี้ลงไปครับ

DoCmd.OpenReport ...
Reports("ชื่อReportเป้าหมาย").RecordSource = SQLText & SortKey

2 @R04719
อาจารย์ครับ ยังไม่เข้าใจที่อาจารย์ตอบดีครับ คือผมต้องการให้พอ Update แล้ว ก็ไปเปิด Report เลย หรือไม่ก็ให้หน้าฟอร์มแสดงอยู่ก่อน แล้วค่อยไปเปิด Report ตอนที่สั่งน่ะครับ

หรือถ้าสร้างคอมมานด์บัทท่อนสำหรับเปิด Report แล้ว จะต้องเขียน SQLText&SortKey อย่างไร

รบกวนอาจารย์ช่วยอีกครั้งครับ
3 @R04720
หรือจะใช้วิธีอ้างอิงกับ RecordSource ของฟอร์มปัจจุบันก็ได้ครับ

DoCmd.OpenReport "ชื่อรายงาน"
Reports("ชื่อReportเป้าหมาย").RecordSource = Forms!ชื่อฟอร์ม.RecordSource

4 @R04723
Run-time error 2191
You can't set the recordsoure properties after printing has started

Try setting this property in the OnOpen Event.

มันตอบอย่างข้างบนครับ

ไม่ทราบว่า "ชื่อรายงาน" บรรทัดแรก กับ "ชื่อReportเป้าหมาย" บรรทัดที่สอง เป็นชื่อ Report ฉบับเดียวกันหรือเปล่าครับ

รู้สึกขอบคุณ แต่ก็เกรงใจอาจารย์เหลือเกิน
5 @R04724
สงสัยต้องใส่ acViewPreView ด้วยล่ะมั๊ง มันจะได้ไม่สั่งพิมพ์ทันที
6 @R04725
ขออภัยครับ

ให้เอาโค้ดส่วนนี้ไปใส่ใน Report เป้าหมายเลยครับ ลองกับเหตุการณ์ OnPrint ดูครับ

Dim SQLText As String
Dim SortKey As String

SQLText = "Select * From Data Order By" & Chr(32)
Select Case Forms!ชื่อฟอร์ม![SortOrder]
Case 1
SortKey = "Name;"
Case 2
SortKey = "Surname;"
Case 3
SortKey = "Birth;"
End Select
Me.RecordSource = SQLText & SortKey
7 @R04727
สำเร็จแล้วครับอาจารย์
แต่ต้องเอาไปใส่ใน OnOpen
และต้องตัดบรรทัด Reports("ชื่อReportเป้าหมาย").RecordSource = Forms!ชื่อฟอร์ม.RecordSource นี้ออกครับ

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