กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
359 5
URL.หัวข้อ /
URL
จะขีดเส้นกั้นหน้า-หลังโดยมีข้อความอยู่ตรงกลางหน่ะ(ในเช็ค)
คือผมทำ Report พิมพ์เช็คหน่ะครับ คืออยากจะให้มีเส้นกั้นหน้า-กั้นหลังระหว่างชื่อผู้รับเช็ค
จนเต็มใน Textbox เช่น
ชื่อ ----บริษัทรวมพลก่อสร้าง จำกัด------------------------------------------หรือผู้ถือ
เพื่อป้องกันการเขียนข้อความใหม่ในเช็คทีหลังหน่ะครับ ไม่ทราบว่ามีใครพอแนะนำได้บ้างครับ
เส้น Line เวลาพิมพ์ผมใช้ "-" บนคีย์บอร์ดครับ
ขอบคุณครับ
จนเต็มใน Textbox เช่น
ชื่อ ----บริษัทรวมพลก่อสร้าง จำกัด------------------------------------------หรือผู้ถือ
เพื่อป้องกันการเขียนข้อความใหม่ในเช็คทีหลังหน่ะครับ ไม่ทราบว่ามีใครพอแนะนำได้บ้างครับ
เส้น Line เวลาพิมพ์ผมใช้ "-" บนคีย์บอร์ดครับ
ขอบคุณครับ
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
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. ....?!? .....
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 ครับ
ถ้า strText รับค่ามาจาก Field ที่ชื่อ Payee หล่ะครับ...เราจะกำหนดอย่างไร
เพราะผมลองใช้ดูมันต้องใส่ข้อความลงใน " " ถึงจะแสดงออกมาได้..แต่พอใส่
ชื่อ Field มันฟ้องว่า #error ครับ
4 @R04484
ลองแบบนี้ครับ
Me.ชื่อTextBoxที่ต้องการแสดงผล = PrintDash(Me.ชื่อTextBoxที่เก็บชื่อบริษัท, 50)
Me.ชื่อTextBoxที่ต้องการแสดงผล = PrintDash(Me.ชื่อTextBoxที่เก็บชื่อบริษัท, 50)
5 @R04559
ขอบคุณมากเลยครับ ทำได้เรียบร้อยแล้วครับ
Time: 0.1233s
ลองดูฟังก์ชันนี้ครับ
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)
จะได้
--บริษัทรวมพลก่อสร้าง จำกัด-----------------------