จะขีดเส้นกั้นหน้า-หลังโดยมีข้อความอยู่ตรงกลางหน่ะ(ในเช็ค)
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 287   5
URL.หัวข้อ / URL
จะขีดเส้นกั้นหน้า-หลังโดยมีข้อความอยู่ตรงกลางหน่ะ(ในเช็ค)

คือผมทำ Report พิมพ์เช็คหน่ะครับ คืออยากจะให้มีเส้นกั้นหน้า-กั้นหลังระหว่างชื่อผู้รับเช็ค
จนเต็มใน Textbox เช่น

ชื่อ ----บริษัทรวมพลก่อสร้าง จำกัด------------------------------------------หรือผู้ถือ

เพื่อป้องกันการเขียนข้อความใหม่ในเช็คทีหลังหน่ะครับ ไม่ทราบว่ามีใครพอแนะนำได้บ้างครับ
เส้น Line เวลาพิมพ์ผมใช้ "-" บนคีย์บอร์ดครับ
ขอบคุณครับ

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

1 @R04412
ลองประยุกต์ใช้ฟังก์ชัน String() ของ Access ดูครับ

ลองดูฟังก์ชันนี้ครับ

Function PrintDash(strText As String, intX As Integer)
If intX > Len(strText) + 2 Then
PrintDash = String(2, "-") & strText & String(intX - Len(strText) - 2, "-")
End If
End Function

การนำไปใช้ ก็ใส่ข้อความที่ต้องการจะพิมพ์ลงไป และจำนวนความยาวของบรรทัดทั้งหมด เช่น

? PrintDash("บริษัทรวมพลก่อสร้าง จำกัด",50)

จะได้

--บริษัทรวมพลก่อสร้าง จำกัด-----------------------

2 @R04413
1. สมมติ ฟิลด์กรอกชื่อนี้เป็นชนิด text ขนาด 100 ตัวอักษร ชื่อ fname
2. ใช้เหตุการณ์ after update เขียน code ลงไป
3. ประการตัวแปร i as long ; str as string
4. ให้นับจำนวนตัวอักษรที่พิมพ์ลงไปโดยใช้คำสั่ง len() แล้วนำไปเก็บไว้ที่ตัวแปร str เช่น str = len([fname]) สมมติได้ = 40
5. ฉะนั้น 100 - 40 = 60(คือเหลือที่ว่างใน text box = 60 ตัวอักษร)
6. หารจำนวนในข้อ 3 ด้วย 2 (เพื่อทำการขีดเส้นด้านหน้าข้อความ และหลังข้อความ)
7. ใช้วิธี loop ขีดเส้นจนครบจำนวนที่ต้องการ เช่น .. จากตัวอย่าง 60/2 = 30
for i=1 to 30
[fname] = [fname] & "-"
next i

[fname] = [fname] & str

for i=1 to 30
[fname] = [fname] & "-"
next i

หมายเหตุ :
1. ที่เขียนมาทั้งหมดยังไม่ได้ลองทำดูนะครับ(นั่งเทียนเขียนเอา) ให้ไว้
เป็นแนวคิดเท่านั้น
2. ถ้านับจำนวนแล้วได้เป็นเลข คี่ พอหารด้วย 2 แล้วจะเป็นอย่างไรต่อไป
3. ถ้าชื่อบริษัทยาวๆ เกิน 100 ตัวอักษรจะทำอย่างไร
4. ....?!? .....
3 @R04476
เรียนถาม อ.สุภาพครับ
ถ้า strText รับค่ามาจาก Field ที่ชื่อ Payee หล่ะครับ...เราจะกำหนดอย่างไร
เพราะผมลองใช้ดูมันต้องใส่ข้อความลงใน " " ถึงจะแสดงออกมาได้..แต่พอใส่
ชื่อ Field มันฟ้องว่า #error ครับ
4 @R04484
ลองแบบนี้ครับ

Me.ชื่อTextBoxที่ต้องการแสดงผล = PrintDash(Me.ชื่อTextBoxที่เก็บชื่อบริษัท, 50)
5 @R04559
ขอบคุณมากเลยครับ ทำได้เรียบร้อยแล้วครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0418s