สมัครสมาชิก
 

ทำ Report จากข้อมูลที่ค้นหาหรือกรอง มาใน form



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

04 ต.ค. 62 , 16:16:06
อ่าน 95 ครั้ง

boreris

  • สมาชิกไท.Access
  • กระทู้: 5

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

 :cry:พี่ครับสมมุติว่าผมทำฟอร์มค้นหาข้อมูลได้แล้ว  ซึ่งผมอยากจะทำReport จากข้อมูลที่กรองมาแล้วในฟอร์มเลยอ่ะครับ ต้องใส่โค้ดอะไรตรงไหน

ที่ทำได้ตอนนี้คือ ผมกรองข้อมูลออกมาแล้ว สมมุติได้ข้อมูลมา 4 เรคคอร์ด *(ผมอยากได้ report ของ 4 เรคคอดนี้)
พอจะทำ Report ก็ต้องไปค้นหาข้อมูลอีกทีนึง เพราะใส่เงื่อนไขใน query เอาไว้

ผมไม่อยากค้นข้อมูลซ้ำ ค้นที่หน้าฟอร์มล่ะกดปริ้นได้เลย
« แก้ไขครั้งสุดท้าย: 04 ต.ค. 62 , 16:34:02 โดย boreris »

 

04 ต.ค. 62 , 23:05:42
ตอบกลับ #1

PNR

: ทำ Report จากข้อมูลที่ค้นหาหรือกรอง มาใน form
« ตอบกลับ #1 เมื่อ: 04 ต.ค. 62 , 23:05:42 »
ใช้ recordsetclone ได้คับ ไว้พรุ่งนี้จะทำให้ดูพอดี ไม่มีคอมวันนี้
:meaw: :grin: :shout:
 
โพสต์นี้ได้รับคำขอบคุณจาก: boreris

05 ต.ค. 62 , 15:49:11
ตอบกลับ #2

boreris

  • สมาชิกไท.Access
  • กระทู้: 5

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

: ทำ Report จากข้อมูลที่ค้นหาหรือกรอง มาใน form
« ตอบกลับ #2 เมื่อ: 05 ต.ค. 62 , 15:49:11 »
ติดตามดูได้ที่ไหนครับ

 

07 ต.ค. 62 , 08:31:44
ตอบกลับ #3

PNR

: ทำ Report จากข้อมูลที่ค้นหาหรือกรอง มาใน form
« ตอบกลับ #3 เมื่อ: 07 ต.ค. 62 , 08:31:44 »
1.ที่ฟอร์มสร้างปุ่มเปิดรายงานไว้ 1 ปุ่ม ใส่โค้ดนี้เข้าไป
DoCmd.OpenReport "ชื่อรายงาน", acViewPreview

วิธีที่ 1 กำหนดrecordsource

2.ที่รายงานใส่โค้ดนี้เข้าไป
(ถ้าเป็นฟอร์มที่มีซัพฟอร์ม)
Private Sub Report_Open(Cancel As Integer)
On Error Resume Next
Me.RecordSource = [Forms]![ชื่อฟอร์มหลัก]![ชื่อฟอร์มย่อย].Form.RecordSource
End Sub

(ถ้าเป็นฟอร์มเดี่ยว)
Private Sub Report_Open(Cancel As Integer)
On Error Resume Next
Me.RecordSource = [Forms]![ชื่อฟอร์มหลัก].Form.RecordSource
End Sub

วิธีที่ 2 RecordsetClone

ที่ปุ่มเปิดรายงานใส่โค้ดนี้เข้าไป
Private Sub Command56_Click()
Dim strWhere As String
        Me.Dirty = False
        With Me.Recordset.Clone
            Do Until .EOF
                strWhere = strWhere & "," & !ID
                .MoveNext
            Loop
        End With
        strWhere = Mid(strWhere, 2)
        DoCmd.OpenReport "rpt", acViewReport, WhereCondition:="ID In (" & strWhere & ")"
        End Sub

หมายเหตุ rpt คือชื่อรายงานนะครับ โดยส่วนตัวผมชอบใช้ RecordsetClone นะครับเพราะถ้ากรณีที่เรามีการกรองข้อมูลในฟอร์มแบบ Datasheet ข้อมูลก็จะแสดงที่รายงานเหมือนฟอร์มทุกประการ

« แก้ไขครั้งสุดท้าย: 07 ต.ค. 62 , 09:04:39 โดย PNR »
:meaw: :grin: :shout:
 


บอร์ดเรียนรู้ Access สำหรับคนไทย