กระทู้เก่าบอร์ด อ.Yeadram
1,796 5
URL.หัวข้อ /
URL
ตัดคำหลังเครื่องหมาย
เรียนท่านผู้ทราบครับ ผมมีเรื่องจะรบกวนขอความรู้หน่อยครับ
คือผมมีข้อมูลดังนี้ครับ
D 09470 91 01702,D 09470 91 01703,D 020 17 0002 00472
ผมอยากทราบวิธีตัดคำดังตัวอย่างข้างบนนี้ในคิวรี่ให้ออกเป็นแบบนี้ครับ
ชุดที่ 1 ชุดที่ 2 ชุดที่ 3
D 09470 91 01702 D 09470 91 01703 D 020 17 0002 00472
คือผมอยากจะตัดที่อยู่หลังเครื่องหมาย "," ครับ
ผมลองทำใน Query ดังนี้ครับ
ชดที่ 1 : Trim(Left([ชื่อฟิวด์],InStrRev([ชื่อฟิวด์],",")-1))
แต่พอชุดที่ 2,3 ผมไม่ทราบว่าจะต้องใช้คำสั่งว่าอย่างไรครับผม
รบกวนทุกท่านด้วยครับผม
คือผมมีข้อมูลดังนี้ครับ
D 09470 91 01702,D 09470 91 01703,D 020 17 0002 00472
ผมอยากทราบวิธีตัดคำดังตัวอย่างข้างบนนี้ในคิวรี่ให้ออกเป็นแบบนี้ครับ
ชุดที่ 1 ชุดที่ 2 ชุดที่ 3
D 09470 91 01702 D 09470 91 01703 D 020 17 0002 00472
คือผมอยากจะตัดที่อยู่หลังเครื่องหมาย "," ครับ
ผมลองทำใน Query ดังนี้ครับ
ชดที่ 1 : Trim(Left([ชื่อฟิวด์],InStrRev([ชื่อฟิวด์],",")-1))
แต่พอชุดที่ 2,3 ผมไม่ทราบว่าจะต้องใช้คำสั่งว่าอย่างไรครับผม
รบกวนทุกท่านด้วยครับผม
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R18226
ผมต้องขอขอบพระคุณ คุณ TTT อย่างมากเลยครับ ที่ได้ให้ความรู้ดีๆกับผม
3 @R18249
คุณ TTT ครับ ผมลืมแจ้งคุณ TTT ไปครับว่า คืองานของผม จะมีการเลือกจาก Combobox ครับ ผมกำหนดให้เลือกสูงสุดได้แค่ 3 ชุดครับ แต่บางครั้ง อาจจะเลือกแค่ 1 ชุด,2 ชุด หรืออาจจะครบ 3 ชุด แต่พอผมทำตามคุณ TTT ก็ใช้ได้ดีมากเลยครับ แต่มันจะต้องเลือกให้ครบ 3 ชุด ผมลองเลือกแค่ 1 ชุด หรือ 2 ชุด มันจะขึ้นฟ้องที่ฟังก์ชั่นอันนี้ครับ
ที่ต้องการคือ เราอาจจะเลือกแค่ 1 ชุด หรือ 2 ชุด หรือ 3 ชุด หรืออาจไม่เลือกเลยก็ให้มันแสดงเป็นค่าว่างก็ได้ครับผม
ต้องรบกวนคุณ TTT อีกครั้งครับผม
ที่ต้องการคือ เราอาจจะเลือกแค่ 1 ชุด หรือ 2 ชุด หรือ 3 ชุด หรืออาจไม่เลือกเลยก็ให้มันแสดงเป็นค่าว่างก็ได้ครับผม
ต้องรบกวนคุณ TTT อีกครั้งครับผม
4 @R18253
อื่มไม่ค่อยเข้าใจนะ หมายถึงข้อมูลไม่แน่นอนเช่น
บางเรคคอร์ดก็มี 3 ช่วง
D 09470 91 01702,D 09470 91 01703,D 020 17 0002 00472
บางเรคคอร์ดก็มี แค่ 2
D 09470 91 01703,D 020 17 0002 00472
อะไรอย่างนี้ป่าวครับ ไงลองใส่คำสั่งกัน Error ดูก่อนครับ โดยเปลี่ยนฟังก์ชั่นที่เคยให้ไปเป็นแบบนี้แทนครับ
บางเรคคอร์ดก็มี 3 ช่วง
D 09470 91 01702,D 09470 91 01703,D 020 17 0002 00472
บางเรคคอร์ดก็มี แค่ 2
D 09470 91 01703,D 020 17 0002 00472
อะไรอย่างนี้ป่าวครับ ไงลองใส่คำสั่งกัน Error ดูก่อนครับ โดยเปลี่ยนฟังก์ชั่นที่เคยให้ไปเป็นแบบนี้แทนครับ
Public Function SplitA(Str As String, Delim As String, N As Integer) As String
Dim Temp As String
On Error GoTo Err0
Temp = Split(Str, Delim)(N - 1)
SplitA = Temp
Err0: Exit Function
End Function
5 @R18256
ตามความต้องการพอดีเลยครับผม
ผมต้องขอบคุณ คุณ TTT มากครับผมที่ช่วยเหลือผมเป็นอยากดีครับ
ขอบคุณจริงๆครับผม
ผมต้องขอบคุณ คุณ TTT มากครับผมที่ช่วยเหลือผมเป็นอยากดีครับ
ขอบคุณจริงๆครับผม
Time: 0.3635s
1. ใส่โค๊ดลงใน Module
Public Function SplitA(Str As String, Delim As String, N As Integer) As String
SplitA = Split(Str, Delim)(N - 1)
End Function
2. ในคิวรี่
ชุดที่ 1: SplitA([ชื่อฟิลด์],",",1)
ชุดที่ 2: SplitA([ชื่อฟิลด์],",",2)
ชุดที่ 3: SplitA([ชื่อฟิลด์],",",3)
ปรับใช้ดูครับ