กระทู้เก่าบอร์ด อ.Yeadram
1,800 2
URL.หัวข้อ /
URL
นำเข้า text file
ต้องการนำเข้าข้อมูลที่เป็น text file เข้าตาราง
ตัวอย่างไฟล์
แถวที่1 F3XXXXX||4300||สำนักงานสาธารณสุขจังหวัด||หนองคาย
แถวที่ 2 4430200656846@เลื่อน1 น้อยยะ@M@89@8/10/2552@9@
แถวที่ 3 3430200650000@เลื่อน2 น้อยยะ@M@89@8/10/2552@9@
แถวสุดท้าย ส่งข้อมูลรวมทั้งสิ้น 2 ราย
โดยแต่ละข้อมูลขั้นด้วย @
ไม่มีหัวตาราง
และต้องการนำเข้าตั้งแต่ แถวที่ 2 เป็นต้นไป และไม่เอาแถวสุดท้าย
รบกวนท่านอาจารย์แนะนำด้วย
ขอบคุณครับ
ตัวอย่างไฟล์
แถวที่1 F3XXXXX||4300||สำนักงานสาธารณสุขจังหวัด||หนองคาย
แถวที่ 2 4430200656846@เลื่อน1 น้อยยะ@M@89@8/10/2552@9@
แถวที่ 3 3430200650000@เลื่อน2 น้อยยะ@M@89@8/10/2552@9@
แถวสุดท้าย ส่งข้อมูลรวมทั้งสิ้น 2 ราย
โดยแต่ละข้อมูลขั้นด้วย @
ไม่มีหัวตาราง
และต้องการนำเข้าตั้งแต่ แถวที่ 2 เป็นต้นไป และไม่เอาแถวสุดท้าย
รบกวนท่านอาจารย์แนะนำด้วย
ขอบคุณครับ
2 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R10286
หรือถ้า ข้อมูลที่ต้องการ ช่องแรกเป็นตัวเลข ลองใช้แบบนี้ดูครับ
Option Compare Database
Private Sub Command0_Click()
Dim db As Database
Dim rs As DAO.Recordset
Dim Y, vTmp As Variant
Dim sFileImport As String
Set db = CurrentDb()
Set rs = db.OpenRecordset("Table1")
sFileImport = "C:\test.txt"
If Dir(sFileImport) = "" Then MsgBox "NO DATA": Exit Sub
Open sFileImport For Input As #1
Do While Not EOF(1)
Line Input #1, Y
vTmp = Split(Y, "@")
If Y = "" Then Exit Sub
If IsNumeric(vTmp(0)) Then
rs.AddNew
rs.Fields(0) = vTmp(0)
rs.Fields(1) = vTmp(1)
rs.Fields(2) = vTmp(2)
rs.Fields(3) = vTmp(3)
rs.Fields(4) = vTmp(5)
rs.Fields(5) = vTmp(5)
rs.Update
Else
End If
Loop
Close #1
MsgBox "OK"
End Sub
Option Compare Database
Private Sub Command0_Click()
Dim db As Database
Dim rs As DAO.Recordset
Dim Y, vTmp As Variant
Dim sFileImport As String
Set db = CurrentDb()
Set rs = db.OpenRecordset("Table1")
sFileImport = "C:\test.txt"
If Dir(sFileImport) = "" Then MsgBox "NO DATA": Exit Sub
Open sFileImport For Input As #1
Do While Not EOF(1)
Line Input #1, Y
vTmp = Split(Y, "@")
If Y = "" Then Exit Sub
If IsNumeric(vTmp(0)) Then
rs.AddNew
rs.Fields(0) = vTmp(0)
rs.Fields(1) = vTmp(1)
rs.Fields(2) = vTmp(2)
rs.Fields(3) = vTmp(3)
rs.Fields(4) = vTmp(5)
rs.Fields(5) = vTmp(5)
rs.Update
Else
End If
Loop
Close #1
MsgBox "OK"
End Sub
Time: 0.2393s
เรียนอาจารย์ทุกท่าน
ช่วยตรวจให้ผมด้วยนะครับ
คุณเสนห์
ผมมือใหม่นะครับ ไม่รู้ว่าแบบนี้ได้หรือเปล่า
ผมลองทำดูครับ ตามความเข้าใจ ที่ได้ศึกษามาในเวปนี้นะครับ ถ้าผิดพลาดอะไรของโทษด้วยครับ
Option Compare Database
Private Sub Command0_Click()
Dim db As Database
Dim rs As DAO.Recordset
Dim Y, vTmp As Variant
Dim sFileImport As String
Set db = CurrentDb()
Set rs = db.OpenRecordset("Table1")
sFileImport = "C:\test.txt"
If Dir(sFileImport) = "" Then MsgBox "NO DATA": Exit Sub
Open sFileImport For Input As #1
Do While Not EOF(1)
Line Input #1, Y
vTmp = Split(Y, "@")
If Left(Y, 1) = "F" Or Y = "" Then ' บรรทัดนี้ไม่แน่ใจว่าข้อมูลของคุณต้องแยกยังไง
Else
rs.AddNew
rs.Fields(0) = vTmp(0)
rs.Fields(1) = vTmp(1)
rs.Fields(2) = vTmp(2)
rs.Fields(3) = vTmp(3)
rs.Fields(4) = vTmp(5)
rs.Fields(5) = vTmp(5)
rs.Update
End If
Loop
Close #1
MsgBox "OK"
End Sub