การตัดคำในข้อความ
กระทู้เก่าบอร์ด อ.Yeadram

 2,659   5
URL.หัวข้อ / URL
การตัดคำในข้อความ

ตัวอย่าง
        Field_1
       ABC1234
       D456789
       EFGH12
       4567

ต้องการให้มีการตัดคำเป็น 2 Field ดังนี้

Field_1          Field_2
ABC              1234
D                   456789
EFGH            12
                     4567
ต้องทำยังไงครับ

ขอบคุณครับ



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

1 @R08765
รูปแบบตัวอย่างที่เห็น พอสรุปได้ว่า
- ต้องการแยกตัวอักษร ออกจากตัวเลข
- ถ้าสายอักขระใด มีตัวอักษรอยู่ พวกมันจะอยู่ด้านหน้าเสมอ
- กลุ่มตัวอักษรจะอยู่ติดกันเสมอ ในระหว่างพวกมันจะไม่มี ตัวเลขมาแทรกคั่น
- กลุ่มตัวเลขก็เช่นกัน ถ้ามีหลายตัว พวกมันจะอยู่ติดกันเสมอ ไม่มีตัวอักษรมาแทรกคั่น
- กลุ่มตัวเลขจะอยู่ทางด้านหลังเสมอ หลังกลุ่มตัวเลข จะไม่มีตัวอักษรใดๆ อีกเลย

งั้นก็ต้องสร้างเป็นฟังก์ชั่นขึ้นมาเอง แล้วเรียกใช้ผ่านคิวรี่
ลักษณะลำดับการทำงานของฟังก์ชั่นก็คือ
- วนลูปตั้งแต่ตัวอักขระตัวแรกไปจนตัวสุดท้าย
- เพื่อดูว่า ตัวอักขระตำแหน่งใดเป็นตัวเลข Isnumeric()
- เมื่อได้ตำแหน่งมาแล้วก็ค่อยมาแยกสายอักขระออกจากกัน โดย
ถ้าอยากได้ชุดหน้า ให้ใช้ left(... , ตำแหน่งที่หาได้ ลบด้วย 1)
ถ้าอยากได้ชุดหลังให้ใช้ mid(... , ตำแหน่งที่หาได้)
2 @R08767
เรียน คุณ yeadram ผมลองทำในคิวรีีแล้วผลที่ได้

        Field_1          test : IsNumeric([field_1])
       ABC1234                      0
       D456789                      0
       EFGH12                        0
       4567                            -1

ไม่ทราบผมทำผิดตรงส่วนไหน ต้องแก้ไขอย่างไรครับ

ขอบคุณครับ
3 @R08770
ลองดูอันนี้ครับ ผมลองแล้วได้
Function Split(Val1 As String)
    Dim Chk As String, ChkTxt As String, ChkNum As String
    ChkTxt = ""
    ChkNum = ""
     For i = 1 To Len(Val1) - 1
        Chk = Mid(Val1, i, 1)
        If IsNumeric(Chk) Then
            'µÑÇàÅ¢
            ChkNum = ChkNum & Chk
        Else
            If Len(Trim(Chk)) > 0 Then ChkTxt = ChkTxt & Chk
        End If
     Next
     MsgBox "Text = " & ChkTxt & vbCrLf & "Num = " & ChkNum
End Function
4 @R08771
ไม่ทราบ Function ดังกล่าวต้องนำไปวางที่ไหนครับ
5 @R08772
ใน vba ครับ (กด alt+f11)
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3372s