กระทู้เก่าบอร์ด อ.Yeadram
1,183 4
URL.หัวข้อ /
URL
ขอCode รับค่าตามตำแหน่งหมายเลข
สมุติผมเขียนCode รับค่าเข้าเป็นฐานข้อมูลใหม่เป็นระเบียนสินค้า เช่น
ในข้อมูลมีเลข 1234567 200 L001 0020220140009
อยากจะเขียน Code ดังนี้
[text1] = 567
[text2] = 200
[text3]=L001
จากลำดับตำแหน่งของตัวเลขอยากให้โปรแกรมรับค่าตามตำแหน่งเข้าไปโดยอัติโนมัติ จะต้องเขียน Code อย่างไรครับ
ขอบคุณครับ
ในข้อมูลมีเลข 1234567 200 L001 0020220140009
อยากจะเขียน Code ดังนี้
[text1] = 567
[text2] = 200
[text3]=L001
จากลำดับตำแหน่งของตัวเลขอยากให้โปรแกรมรับค่าตามตำแหน่งเข้าไปโดยอัติโนมัติ จะต้องเขียน Code อย่างไรครับ
ขอบคุณครับ
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R18023
อ่านแล้วไม่แน่ใจว่าให้เอาค่าจาก Text1/2/3 ไปสร้างเป็นข้อมูล หรือเอาข้อมูลมาแยกแต่ละส่วนแล้วแสดงที่ Text1/2/3 อธิบายให้ชัดเจนหน่อยครับ แล้วถ้าเป็นกรณีหลัง ในเนื้อข้อมูลจริงๆมีช่องว่างคั่นอยู่หรือไม่
2 @R18024
ขออภัยที่อธิบายได้ไม่ช้ดเจนนะครับอาจารย์ คือเป็นอย่างหลังครับ ข้อมูลตัวเลขเป็นชุดตัวเลขที่แปลงมาจาก Barcode จัดเก็บข้อมูลในรูปแบบExcel file ชุดตัวเลขจะมีจำนวนและรูปแบบการเว้นวรรค(ช่องว่างคั่น)เหมือนกันทุก record ในความหมาย รูปแบบการทำงานของโปรแกรมหลังจาก Import ข้อมูลจาก Excel ก็จะทำการแปลงชุดตัวเลขแยกจัดเก็บเป็นระเบียนการรับสินค้า สมุติว่า
Text0 = 1234567 200 L001 002022140009 (123 = รหัสพนักงานผมใช้ Code รับข้อมูลดังนี้
If [Text0] Like "1234*" Then
[Receiver] = "K.Thongdee"
End If
ถ้าจะเขียน Code ให้
Text1= 567 (ไม่รับค่า1234 ให้ข้ามมารับเข้าข้อมูลเฉพาะเลข 567 เลย)
Text2=200 (ข้ามตัวเลขหลักอื่นๆมารับเข้าข้อมูลเฉพาะเลข 200)
Text3=L200 (ข้ามตัวเลขหลักอื่นๆมารับเข้าข้อมูลเฉพาะเลข L200)
ตามที่ต้องการคือ
If[text0] = ? then
[text1]=567
end if
if[text0] = ? then
[text2]=200
end if
if[text0]= ? then
[text3] = L200
end if
ในเครื่องหมายคำถาม(?)จะต้องเขียนCode อย่างไรครับ
ขอบคุณครับ
Text0 = 1234567 200 L001 002022140009 (123 = รหัสพนักงานผมใช้ Code รับข้อมูลดังนี้
If [Text0] Like "1234*" Then
[Receiver] = "K.Thongdee"
End If
ถ้าจะเขียน Code ให้
Text1= 567 (ไม่รับค่า1234 ให้ข้ามมารับเข้าข้อมูลเฉพาะเลข 567 เลย)
Text2=200 (ข้ามตัวเลขหลักอื่นๆมารับเข้าข้อมูลเฉพาะเลข 200)
Text3=L200 (ข้ามตัวเลขหลักอื่นๆมารับเข้าข้อมูลเฉพาะเลข L200)
ตามที่ต้องการคือ
If[text0] = ? then
[text1]=567
end if
if[text0] = ? then
[text2]=200
end if
if[text0]= ? then
[text3] = L200
end if
ในเครื่องหมายคำถาม(?)จะต้องเขียนCode อย่างไรครับ
ขอบคุณครับ
3 @R18025
ใช้โค้ดต่อไปนี้ได้โดยไม่ต้องมีคำสั่ง If...End If นะครับ
Me.Text1 = Mid(Me.Text0,5,3) ' จาก Text0 ให้เอาตำแหน่งที่ 5 มา 3 ตัวอักษร
Me.Text2 = Mid(Me.Text0,9,3) ' จาก Text0 ให้เอาตำแหน่งที่ 9 มา 3 ตัวอักษร
Me.Text3 = Mid(Me.Text0,13,4) ' จาก Text0 ให้เอาตำแหน่งที่ 13 มา 4 ตัวอักษร
แล้วถ้า Text1/2/3 เอาไว้แสดงอย่างเดียว ไม่ให้ป้อนเข้าไป หรือไม่ให้แก้ตัวเลขในช่องเหล่านี้เลย และไม่ได้ผูกเข้ากับฟิลด์อะไรในเทเบิลแล้ว เราสามารถกำหนดไว้ที่ ControlSource ของแต่ละเท็กซ์บ็อกซ์ได้เลย เป็น
ControlSource ของ Text1 ให้พิมพ์คำว่า =Mid(Me.Text0,5,3) ต้องมีเครื่องหมายเท่ากับด้วยนะครับ ส่วน Text2/3 ก็ทำแบบเดียวกันครับ
Me.Text1 = Mid(Me.Text0,5,3) ' จาก Text0 ให้เอาตำแหน่งที่ 5 มา 3 ตัวอักษร
Me.Text2 = Mid(Me.Text0,9,3) ' จาก Text0 ให้เอาตำแหน่งที่ 9 มา 3 ตัวอักษร
Me.Text3 = Mid(Me.Text0,13,4) ' จาก Text0 ให้เอาตำแหน่งที่ 13 มา 4 ตัวอักษร
แล้วถ้า Text1/2/3 เอาไว้แสดงอย่างเดียว ไม่ให้ป้อนเข้าไป หรือไม่ให้แก้ตัวเลขในช่องเหล่านี้เลย และไม่ได้ผูกเข้ากับฟิลด์อะไรในเทเบิลแล้ว เราสามารถกำหนดไว้ที่ ControlSource ของแต่ละเท็กซ์บ็อกซ์ได้เลย เป็น
ControlSource ของ Text1 ให้พิมพ์คำว่า =Mid(Me.Text0,5,3) ต้องมีเครื่องหมายเท่ากับด้วยนะครับ ส่วน Text2/3 ก็ทำแบบเดียวกันครับ
4 @R18026
ตรงตามที่ผมต้องการเลยครับอาจารย์ ขอบพระคุณมากๆครับ
Time: 0.3223s