สร้างตารางใน report
กระทู้เก่าบอร์ด อ.Yeadram

 4,070   12
URL.หัวข้อ / URL
สร้างตารางใน report

เรียน ผู้รู้ทุกท่าน
ฟิลด์รายการที่มีข้อความยาวๆ เวลาพิมพ์ขึ้นบรรทัดใหม่จะใช้ ctrl+enter
แต่เมื่อนำมาออกเป็น report ตารางเส้นในแนวตั้งของแต่ละฟิลด์จะสร้างมาแค่บรรทัดแรกบรรทัดเดียว จะทำอย่างไรให้สามารถมีเส้นแนวต้ังจนถึงบรรทัดสุดท้ายคะ

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

1 @R18742
ผมก็เป็นเหมือนกัน เส้นตารางที่ใส่เข้าไป มันจะยาวเท่าเดิม ในขณะที่ กล่องข้อความ เป็น 2 บรรทัด อยากรู้เหมือนกันว่าทำได้มั้ย

แต่ผมแก้ปัญหาโดย ไม่ใช้ เส้นตารางครั้ง ทำกล่องข้อความให้ทึบ โดยใช่สีดำเลยครับ
2 @R18744
หมายถึงอย่างในรูปป่าวครับ ถ้าใช่ก็เซ็ท Property ของตัวคอนโทรลนั้นที่ Format > Can Grow: Yes
ตัวภาพครับ

3 @R18745
ใครทราบช่วยแก้ปัญหาให้เราด้วยค่ะ
4 @R18746
ทำตามที่คุณ TTT แนะนำแล้ว ก้อยังไม่ได้ค่ะ ขอบคุณค่ะ
5 @R18747
capture ลักษณะที่เป็น และ ลักษณะที่อยากได้ให้ดูหน่อยครับ

6 @R18748
เลือก textbox ทั้งหมด click ขวา -> Layout -> Stacked
ที่ Property Left Padding, Right Padding ของทุก textbox กำหนดค่าให้เป็น 0
ที่ Property Can Grow ของทุก textbox กำหนดค่าให้เป็น Yes

น่าจะใช้ได้ตั้งแต่ 2007 ขึ้นไป (ผมใช้ 2010)
7 @R18749
รียน คุณ TTT
ที่ต้องการคืออยากให้มีเส้นในแนวตั้งด้วยเหมือนตารางใน excel ค่ะ
ขอบคุณมากค่ะ
8 @R18750
อื่มบ้างครั้งถ้ามีรูปภาพจะเข้าใจง่ายกว่านะครับ
เอาเป็นว่าผมใหม่ว่า ในรายงานคุณได้ทำเรื่องของ Can Grow แล้ว แต่มีปัญหาตรงที่คุณใช้คอนโทรล Line ในการตีตาราง แนวนอน แนวตั้ง ซึ่งถ้าหากฟิลด์ไม่ได้กำหนดเป็น can grow ก็จะไม่ปัญหา แต่ถ้าเป็นมันจะมีลักษณะดังรูป:


แต่สิ่งที่คุณอยากได้จะต้องเป็นแบบนี้


ใช่หรือไม่
9 @R18751
แก้ไขรูปแรก
10 @R18752
ถูกต้องค่ะที่ต้องการคือรูปที่ 2
11 @R18757
ในกรณีของคุณ คงต้องเขียนเส้น Line โดยใช้โค๊ด เพราะหากเรากำหนดเส้น Line บนฟอร์มออกแบบมันจะมีค่าตายตัวซึ่งต่างจาก Textbox ที่เราทำเป็น Can Grow ซึ่งมันจะยืดหยุ่นตามข้อมูลไม่แน่นอน ดังนั้นเราต้องอาศัยเหตุการณ์ On Print เพื่ออ่านค่าความสูงของ Textbox ณ ขณะนั้นแล้วตีเส้นตามความสูงไปเลย ซึ่งก็ต้องทำความเข้าใจซักหน่อยเพราะมันขึ้นอยู่กับความต้องการของคนออกแบบว่าต้องการจะตีเส้น ณ ตำแหน่งใดก็ต้องอ้างตำแหน่ง X Y ให้ถูก
ตัวอย่างเข่น ในส่วนพื้นที่ Detail > Event > On Print

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
    Dim X1 As Single, Y1 As Single, X2 As Single, Y2 As Single, Color As Long
    Me.ScaleMode = 5 'กำหนดโหมดอัตราส่วนหน่วยเป็น นิ้ว Inches
    Color = RGB(255, 0, 0) 'กำหนดค่าสี RGB
    X1 = 1 ' แกรนแนวนอนจุดที่ 1 (จุดบน) อยู่ตำแหน่งห่างจากขอบซ้ายรายงานออกมา 1 นิ้ว
    X2 = 1 ' แกรนแนวนอนจุดที่ 2 (จุดล่าง) อยู่ตำแหน่งห่างจากขอบซ้ายรายงานออกมา 1 นิ้ว
    Y1 = 0 ' แกรนแนวตั้งจุดที่ 1 (จุดบน) อยู่ตำแหน่งติดขอบบนของพื้นที่รายงาน
    Y2 = 2 ' แกรนแนวตั้งจุดที่ 2 (จุดล่าง) อยู่ตำแหน่งห่างจากขอบบนของรายงานลงมา 2 นิ้ว ทำให้เกิดเส้นความยาว 2 นิ้ว
    Me.DrawWidth = 1 ' ความหนาของเส้น 1 พิกเซล
    Me.Line (X1, Y1)-(X2, Y2), Color
End Sub

ไฟล์ตัวอย่าง

เว็บ Microsoft

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