ขึ้นบรรทัดใหม่ Access 2003
กระทู้เก่าบอร์ด อ.Yeadram

 3,383   5
URL.หัวข้อ / URL
ขึ้นบรรทัดใหม่ Access 2003

เรียนขอคำแนะนำ
เนื่องจากผมต้องการทำ barcode 128 ลงในใบชำระค่าเทอม ตอนนี้ผมซื้อฟอร์น มาอ่านได้เรียบร้อยแล้ว เป็น Module ครับ ใชในReprt ว่า
=bar128a([file1]&[file2]&[file3])
ข้อมูลที่อ่านได้คือ 12345678222255275000

แต่ตามมาตรฐานต้องอ่านเป็น
|12345678
2222552
75000

ผมพยายามแล้วอย่างไรก็อ่านเป็นบรรทัดเดียวครับ
คั่นด้วย Chr(13) ก็อ่านไดบรรทัดเดียวครับ
ขอความกรุณาท่านผู้รู้ช่วแนะนำด้วยครับ
ขอบคุณมากครับ

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

1 @R04269
อ่านได้อะไรช่างมันครับ
เมื่อจะนำไปใช้เราค่อยมาสั่งตัดมันครับ
ใช้ Left(), Mid(), หรือ Right() ช่วยตัดครับ

เช่นการนำไปใช้ใน รายงาน
- สร้าง textbox แบบ multi line
- เขียนนิพจน์ว่า
=bar128a([file1]) & chr(10) & bar128a([file2]) & chr(10) & bar128a([file2])

หรือถ้ายังไม่ได้ ลอง
= "|" & left(bar128a([file1]&[file2]&[file3]),8) & chr(13) & Mid(bar128a([file1]&[file2]&[file3]),9,7) & chr(10) & Right(bar128a([file1]&[file2]&[file3]),5)

หรืออื่นๆ อีกหลายวิธีครับ
ถ้าเราได้ข้อมูลออกมาเป็นสายอักขระแล้ว ยิ่งมีจำนวนตำแหน่งคงที่อย่างนี้ ไม่ใช่เรื่องยากครับ ค่อยลองหาวิธีที่เหมาะดูครับ หาวิธีที่ประหยัดทรัพยากรของเครืองด้วย (เพราะบางวิธี อาจใช้ซีพียูเกินความจำเป็น)
2 @R04270
ขอบพระคุณมากครับ
เดี๋ยวลองดู ได้ผลอย่างไจแจ้งอีกทีครับ
ขอบคุณอีกครั้งครับ
3 @R04272
แจ้งความคืบหน้า
ลองแล้วทุกวิธีที่ คุณyeadram แนะนำครับ ไม่สำเร็จครับ
วิธีแรกอ่านออกข้อมูลเป็นช่วง ต้องอ่าน 3 ที
วิธีที่ 2 ไม่อ่านครับ

อาจเป็นเพราะผมใช้ code 128 มันต้องเช็คดิจิตทำให้ไม่สามารถอ่านได้ครับ

เนื่องจากต้องนำไปชำระที่เคาเตอร์ธนาคาร เงื่อนไขคือ ต้องอ่านทีเดียวแล้วได้ข้อมูลจากเครื่องอ่านบาร์โคดอย่างนี้

|5710600554995
4521009940
75000


รบกวนอีกครั้งนะครับ
ขอบคุณครับ
4 @R04277
คำว่า มันต้องอ่านได้ 3บรรทัด น่ะคืออะไรกันแน่ครับ
ทำไมต้องได้สามบรรทัด

"อ่านได้"
"แสดงผลได้"

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

แต่ถ้าบอกว่าให้มันแสดงผล 3 บรรทัด เออ อันนี้ผมว่า มันต้องได้ ถ้าข้อมูลมันอยู่ในสายอักขระแล้ว มันต้องได้ครับ ตั้งค่าตัวแสดงผลถูกต้องหรือเปล่า ลำดับเหตุการณ์ของงานได้ถูกต้องหรือเปล่า นั่นแหละประเด็น

ลองเอาฟังก์ชั่นนี้ไปวาง


Function spLine(sq As String) As String
sq = Trim(sq)
Dim t1, t2, t3 As String
t3 = Right(sq, 5)
t2 = Mid(sq, 14, 10)
t1 = Left(sq, 13)
spLine = t1 & vbCrLf & t2 & vbCrLf & t3
End Function

จากปกติ คุณเรียกข้อมูลด้วย
=bar128a([file1]&[file2]&[file3])

ลองเรียกใหม่เป็น
=spLine(bar128a([file1]&[file2]&[file3]))

ว่าแต่คุณแสดงผลข้อมูลนี้ใน textbox หรือใน label ครับ
5 @R04281
ขอบคุณมากครับ
คือบาร์โคด ตัวนี้มันต้องนำไปอ่านจากเครื่องอ่านของเคาเตอร์ธนาคาร
เท่าที่ผมทราบ มันประมาณว่า พออ่านได้ปุ๊ปมันจะนำค่าที่ได้ใส่ใน textbox ของโปรแกรมธนาคารเช่น เลขที่บัญชี เลขที่อ้างอิง1 เลขที่อ้างอิง 2 จำนวนเงิน ประมาณนี้ครับ

หากว่าอ่านแล้วได้ข้อมูลบรรทัดเดียวขอมูลทั้งหมดจะถูกเก็บเข้า textbox ของเลขที่บัญชี Filed เดียว ซึ่งผิด จึงจำเป็นต้องให้มัน Enter ไปในการอ่านครั้งเดียวครับ

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