กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
290 3
URL.หัวข้อ /
URL
ACC2000: How to Sort a Field of Numbers Based on All Permutations
เป็นการเขียนฟังก์ชันให้มีการเรียงข้อมูลที่มีเลขที่มีซ้ำกันไว้ในกลุ่มเดียวกัน เช่น 123 321 213 132 231 312 ให้เรียงไว้ด้วยกัน
ลองไปดูโค้ดที่ http://support.microsoft.com/default.aspx?scid=kb;en-us;Q247650 ครับ
ลองไปดูโค้ดที่ http://support.microsoft.com/default.aspx?scid=kb;en-us;Q247650 ครับ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R01064
ผมลองทำตามที่แนะนำ คือ
ที่ Table ชื่อ NameNumbers
ID AutoNumber
TestNum Number ( Integer )
-------------------------------------------------------------------
ที่ Modules
Function OrderString(xString As String)
Dim stringArray() As String
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp As String
Dim returnString As String
stringlen = Len(Format(xString, 0))
ReDim stringArray(1 To stringlen)
For i = 1 To stringlen
stringArray(i) = Mid(xString, i, 1)
Next i
First = LBound(stringArray)
Last = UBound(stringArray)
For i = First To Last - 1
For j = i + 1 To Last
If stringArray(i) > stringArray(j) Then
Temp = stringArray(j)
stringArray(j) = stringArray(i)
stringArray(i) = Temp
End If
Next j
Next i
For i = 1 To stringlen
returnString = returnString & stringArray(i)
Next i
OrderString = returnString
End Function
-----------------------------------------------------------------
ผมลอง Test ฑี Query ตามที่แนะนำ ผมพบ Bug ที่ stringlen บรรทัดข้างล่างนี้ครับ
stringlen = Len(Format(xString, 0))
ผมลองใน Access97 และ 2000 ก็ Bug ที่ตำแหน่งนี้เหมือนกันครับ
รบกวน อ.สุภาพ แนะนำด้วยครับ
ขอบพระคุณมากๆ ครับ
2 @R01065
เนื่องจากมันเป็นโค้ดของ A2000 ซึ่งจะมีคำสั่ง Format() แบบใหม่เข้ามา
ถ้าต้องการที่จะใช้โค้ดนี้กับ 97 ต้องเปลี่ยนนิดหน่อยครับ ดังนี้
...
Dim stringArray() As String, StringLen As Integer
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp As String
Dim returnString As String
StringLen = Len(Format(xString, "0"))
...
3 @R01067
สามารถใช้งานได้แล้วครับ
ขอบพระคุณมากๆ ครับ
Suchat
Time: 0.1153s