กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
363 1
URL.หัวข้อ /
URL
Split() in VBA
เขาถามไว้ที่ http://www.utteraccess.com/forums/showflat.php?Cat=&Board=access_any_version&Number=159529&page=0&view=collapsed&sb=5&o=7&fpart=&vc=1&PHPSESSID=
โดยเขาแนบตัวอย่างไฟล์ของเขามาให้ดูด้วย ที่ http://www.utteraccess.com/forums/download.php?Number=158519
เขาต้องการที่จะแยกหมายเลขโทรศัพท์ ซึ่งเป็นไว้ในฟีลด์เดียวกัน แต่ใส่หลายเบอร์ จึงต้องการที่จะแยกแต่ละเบอร์ให้อยู่กันคนละฟีลด์ แต่ในตารางเดิม
ผมแนะนำให้เขาสร้างเป็นตารางใหม่เพิ่มขึ้นมาอีกอันหนึ่ง เพื่อเก็บหมายเลขโทรศัพท์โดยเฉพาะ เพื่อให้การจัดการข้อมูลทำได้ง่ายขึ้น เพราะถ้าเกิดมีบริษัทใดมีหมายเลขโทร. มากกว่าจำนวนฟีลด์ที่กำหนดไว้ จะทำอย่างไร
แต่เขายังยืนยันที่จะทำตามที่ตั้งใจไว้ คือ แยกไปใส่ฟีลด์ใหม่ที่เพิ่มเข้าไปในตารางเดียวกัน
ผมเลยให้โค้ดเขาไปดังนี้ครับ
Private Sub SplitTelNo()
Dim dbs As DAO.Database, rst As DAO.Recordset
Dim strTest As String
Dim strArray() As String
Dim intCount As Integer, I As Integer
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("ProfessionalUser1Test")
If Not rst.EOF Then
rst.MoveFirst
For I = 1 To rst.RecordCount
strTest = rst("Tel Number")
' If there are 2 tel. no. in this field.
If InStr(strTest, "``") > 0 Then
strArray = Split(strTest, "``")
For intCount = LBound(strArray) To UBound(strArray)
rst.Edit
rst("TelNum" & intCount + 2) = strArray(intCount)
rst.Update
Next
Else
' If only one tel. no., write it to TelNum2
' so you can delete the original tel. no. field when finished.
rst.Edit
rst("TelNum2") = rst("Tel Number")
rst.Update
End If
rst.MoveNext
Next I
End If
End Sub
*** Edited by Supap Chaiya *** 30/5/2546 22:28:05
โดยเขาแนบตัวอย่างไฟล์ของเขามาให้ดูด้วย ที่ http://www.utteraccess.com/forums/download.php?Number=158519
เขาต้องการที่จะแยกหมายเลขโทรศัพท์ ซึ่งเป็นไว้ในฟีลด์เดียวกัน แต่ใส่หลายเบอร์ จึงต้องการที่จะแยกแต่ละเบอร์ให้อยู่กันคนละฟีลด์ แต่ในตารางเดิม
ผมแนะนำให้เขาสร้างเป็นตารางใหม่เพิ่มขึ้นมาอีกอันหนึ่ง เพื่อเก็บหมายเลขโทรศัพท์โดยเฉพาะ เพื่อให้การจัดการข้อมูลทำได้ง่ายขึ้น เพราะถ้าเกิดมีบริษัทใดมีหมายเลขโทร. มากกว่าจำนวนฟีลด์ที่กำหนดไว้ จะทำอย่างไร
แต่เขายังยืนยันที่จะทำตามที่ตั้งใจไว้ คือ แยกไปใส่ฟีลด์ใหม่ที่เพิ่มเข้าไปในตารางเดียวกัน
ผมเลยให้โค้ดเขาไปดังนี้ครับ
Private Sub SplitTelNo()
Dim dbs As DAO.Database, rst As DAO.Recordset
Dim strTest As String
Dim strArray() As String
Dim intCount As Integer, I As Integer
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("ProfessionalUser1Test")
If Not rst.EOF Then
rst.MoveFirst
For I = 1 To rst.RecordCount
strTest = rst("Tel Number")
' If there are 2 tel. no. in this field.
If InStr(strTest, "``") > 0 Then
strArray = Split(strTest, "``")
For intCount = LBound(strArray) To UBound(strArray)
rst.Edit
rst("TelNum" & intCount + 2) = strArray(intCount)
rst.Update
Next
Else
' If only one tel. no., write it to TelNum2
' so you can delete the original tel. no. field when finished.
rst.Edit
rst("TelNum2") = rst("Tel Number")
rst.Update
End If
rst.MoveNext
Next I
End If
End Sub
*** Edited by Supap Chaiya *** 30/5/2546 22:28:05
1 Reply in this Topic. Dispaly 1 pages and you are on page number 1
Time: 0.7683s
เป็นตัวอย่างใน 97 ครับ