กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
345 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 ไม่ได้ครับ มันขึ้นมาเหมือนกันหมด กรุณาแนะนำด้วยครับ
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
2 @R04719
อาจารย์ครับ ยังไม่เข้าใจที่อาจารย์ตอบดีครับ คือผมต้องการให้พอ Update แล้ว ก็ไปเปิด Report เลย หรือไม่ก็ให้หน้าฟอร์มแสดงอยู่ก่อน แล้วค่อยไปเปิด Report ตอนที่สั่งน่ะครับ
หรือถ้าสร้างคอมมานด์บัทท่อนสำหรับเปิด Report แล้ว จะต้องเขียน SQLText&SortKey อย่างไร
รบกวนอาจารย์ช่วยอีกครั้งครับ
หรือถ้าสร้างคอมมานด์บัทท่อนสำหรับเปิด Report แล้ว จะต้องเขียน SQLText&SortKey อย่างไร
รบกวนอาจารย์ช่วยอีกครั้งครับ
3 @R04720
หรือจะใช้วิธีอ้างอิงกับ RecordSource ของฟอร์มปัจจุบันก็ได้ครับ
DoCmd.OpenReport "ชื่อรายงาน"
Reports("ชื่อReportเป้าหมาย").RecordSource = Forms!ชื่อฟอร์ม.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 ฉบับเดียวกันหรือเปล่าครับ
รู้สึกขอบคุณ แต่ก็เกรงใจอาจารย์เหลือเกิน
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
ให้เอาโค้ดส่วนนี้ไปใส่ใน 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 นี้ออกครับ
ขอบพระคุณอาจารย์เป็นอย่างยิ่งที่ติดตามช่วยเหลือจนสำเร็จครับผม
แต่ต้องเอาไปใส่ใน OnOpen
และต้องตัดบรรทัด Reports("ชื่อReportเป้าหมาย").RecordSource = Forms!ชื่อฟอร์ม.RecordSource นี้ออกครับ
ขอบพระคุณอาจารย์เป็นอย่างยิ่งที่ติดตามช่วยเหลือจนสำเร็จครับผม
Time: 0.1012s
ตรงปุ่มคำสั่งเปิด Report ให้ลองเพิ่มบรรทัดนี้ลงไปครับ
DoCmd.OpenReport ...
Reports("ชื่อReportเป้าหมาย").RecordSource = SQLText & SortKey