คำสั่ง sql แยกตัวเลขออกจาก Text ครับ
กระทู้เก่าบอร์ด อ.Yeadram

 3,366   3
URL.หัวข้อ / URL
คำสั่ง sql แยกตัวเลขออกจาก Text ครับ

ผมมี Text ที่มีทั้งตัวอักษรและตัวเลขอยู่รวมกัน เช่น วิธีใช้ยาฉีดอินสุลิน
"ฉีดก่อนอาหารเช้า 10 ยูนิต ก่อนอาหารเย็น 20 ยูนิต" ทำอย่างไรจึงจะแยกตัวเลข 10 กับ 20 มาเก็บไว้ field1,field2 เพื่อนำไปใช้คำนวณต่อไป ขอเป็นคำสั่ง sql นะครับ ขอบคุณครับ
ปล.วิธีใช้ยาจะไม่ Fix คำ ครับเช่นบางทีเป็น ฉีดยาใต้ผิวหนัง ฉีดก่อนอาหารเช้า 10 ยูนิต ก่อนอาหารเย็น 20 ยูนิต หรือ ฉีดยา 10 ยูนิต เวลา 18.00 น. แต่ข้อสังเกตคือ ตัวเลขจะอยู่ก่อนคำว่า ยูนิต เสมอ ครับ

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

1 @R19373
อื่มลองอย่างนี้ดูครับ

ใส่โค๊ดนี้ลงไปใน Module ใหม่

Public Function SplitA(Str As String, Delim As String, N As Integer) As String
    Dim Temp As String
    Str = Replace(Str, Delim, ";;" & Delim)
On Error GoTo Err0
    Temp = Split(Str, Delim)(N - 1)
    SplitA = Temp
Err0: Exit Function
End Function

Public Function NumOnly(strTxt) As Long
    Dim i As Long
        If strTxt Like "*;;" Then
               For i = 1 To Len(strTxt)
                    If Asc(Mid(strTxt, i, 1)) > 47 And Asc(Mid(strTxt, i, 1)) < 58 Then
                            TTT = TTT & Mid(strTxt, i, 1)
                    End If
               Next i
        End If
    NumOnly = TTT
End Function

จากนั้นที่คิวรี่สร้างฟิลด์ใหม่ตามต้องการประมาณนี้ครับ สมมุติฟิลด์ชื่อ Details
T1: NumOnly(SplitA([Details],"ยูนิต",1))
T2: NumOnly(SplitA([Details],"ยูนิต",2))
T3: NumOnly(SplitA([Details],"ยูนิต",3))
T4: NumOnly(SplitA([Details],"ยูนิต",4))

ประมาณนี้ครับ ปรับใช้ดู
ปล. ข้อมูลจะช้าลงตามจำนวนเรคคอร์ดที่มากขึ้นนะครับ
2 @R19374
พยายามนั่งอ่านทำความเข้าใจ code อย่างตั้งใจ บอกตรงๆ มึนเลยครับ เอาเป็นว่าขอ copy ไปใช้งานเลย ขอบคุณมากๆ ครับ ขอถามนอกเรื่องต่ออีกนิดครับ ถ้าผมใช้ฐานข้อมูลเป็น mysql และต้องการ query ข้อมูลผ่าน command line โดยตรง (ไม่ใช้ access) จะเขียนคำสั่งอย่างไรครับ เพื่อให้ได้ข้อมูลแบบเดียวกัน "select ...."
3 @R19382
เรื่อง MySQL ห่างไปนานและไม่ชำนาญครับ ยังไงรอท่านอื่นตอบแล้วกันนะครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3611s