สอบถามวิธีการ set format เพิ่ม 0 ในข้อความ string
ขอสอบถามเรื่องวิธีการเพิ่ม เลข 0 ในข้อความหน่อยครับตัวอย่างข้อมูล เกี่ยวกับป้ายทะเบียนรถ
ระบกำหนดให้ใส่ข้อมูลลง database ได้ 7 ตัวอักษร ถ้าไม่ไม่ครบ 7 ตัวอักษรก็ให้ใส่ 0 ข้างหน้า แต่ว่าข้อมูลที่ได้รับมามีดังนี้
ข้อมูลตัวอย่าง
1กข-1234 => 1กข1234
กข-123 => 0กข0123
กข-12 => 0กข0012
ต้องสร้าง function แบบไหนคับ ถึงจะเติม 0 ก่อนหน้า string และตรงกลาง string.
ได้แล้วครับ ใช้ mid(string,start,length) สำหรับเชค
อาจจะมาตอบให้ช้าไปสักนิด แต่คิดว่าคงมีประโยชน์ให้กับคนอื่นๆด้วยล่ะกันครับ ...
Dim Sample As String
'// ค่าทดสอบ
'Sample = "1กข-1234"
'Sample = "กข-123"
Sample = "กข-12"
'Sample = "กข12"
'// หาเครื่องหมาย - ... หากเจอ InStr จะรีเทิร์นค่ากลับมากกว่า 0
If InStr(Sample, "-") > 0 Then
Dim sArr() As String
'// แยกชุดข้อมูลออกจากกัน
sArr = Split(Sample, "-")
'// ข้อมูลชุดแรกต้องการ 3 หลัก
'// ไม่ต้องทดสอบเงื่อนไขก็ใช้การเรียงต่อ "000" & "กข" = "000กข"
'// จากนั้นให้นับจากทางขวามา 3 หลัก ก็จะได้ "0กข"
sArr(0) = Right$("000" & sArr(0), 3)
'// ข้อมูลชุดสองต้องการ 4 หลัก
sArr(1) = Right$("0000" & sArr(1), 4)
Else
'// หาเครื่องหมาย - ไม่พบ
MsgBox "Not Found - Sign!!!"
Exit Sub
End If
'// คำตอบ
MsgBox sArr(0) & sArr(1)
แก้ไขครั้งสุดท้ายโดย bagpacker2010 เมื่อ 2018-10-22 12:23
ขอบคุณครับอาจารย์ ผมใช้select เล่นซะยาวเลยSub CheckNumberPlateFormat()
Select Case Len(NumberPlateOriginal)
Case Is = 2
NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "000" & Mid(NumberPlateOriginal, 2, 1)
Case Is = 3
Select Case Mid(NumberPlateOriginal, 2, 1)
Case "-"
NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "000" & Mid(NumberPlateOriginal, 3, 1)
Case "1"
NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
Case "2"
NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
Case "3"
NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
Case "4"
NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
Case "5"
NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
Case "6"
NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
Case "7"
NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
Case "8"
NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
.
.
.
.
.
ที่มาของเรื่องนี้นื่องจาก ข้อมูลป้ายทะเบียนรับมาจากหน้าเว็บที่ user กรอก บางครั้งก็รูปแบบแตกต่างกัน (เนื่องจากไม่ได้กำหนด format การกรอกข้อมูลไว้ตั้งแต่ต้น)
ผมบอกข้อมูลตัวอย่างไปไม่ครบ ขาดไปอีกอย่างคือ บางที user กรอกมา "กข12" เราก็ต้องมาแปลงให้เป็น "0กข0012"
ก่อนนำส่งข้อมูลของอีกโปรแกรมนึง
หน้า:
[1]