กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
470 6
URL.หัวข้อ /
URL
เรียนถาม อ. หรือผู้รู้เรื่อง : การ Import Text File เข้า Table
ผมต้องการนำ Text File จาก Diskette เพื่อ Import เข้ามาเป็น Table อยากให้ อ. หรือผู้ที่รู้ช่วย Code Program ให้ด้วยครับ ซึ่งผมได้แนบ Text File มาให้ดูบางส่วน โดยกำหนด Field ในTable ดังนี้
1. Zone text width = 2
2. Bk text width = 2
3. Br text width = 4
4. Eng_name text width = 60
5. Thai_name text width = 60
จากข้อมูลตัวอย่าง 00010001HEAD OFFICE สำนักงานใหญ่
00 =zone
01 =Bk
0001 =Br
Head Office = Eng_name
สำนักงานใหญ่ = Thai_name
ขอบคุณมากครับ
1. Zone text width = 2
2. Bk text width = 2
3. Br text width = 4
4. Eng_name text width = 60
5. Thai_name text width = 60
จากข้อมูลตัวอย่าง 00010001HEAD OFFICE สำนักงานใหญ่
00 =zone
01 =Bk
0001 =Br
Head Office = Eng_name
สำนักงานใหญ่ = Thai_name
ขอบคุณมากครับ
6 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R03350
ขอบคุณครับคุณ moo แต่ผมต้องการเป็น Code ครับ เพราะต้องการส่งแผ่น Diskให้ User ทำเองครับ
3 @R03355
1. การสำรองข้อมูลเป็น text file
// part ที่จะใช้ในการเก็บไฟล์ backup
Dim strBackup As String
DoCmd.TransferText acExportDelim, , "Table_name", strBackup & "txtFile_name", True
2. การ restore ข้อมูลที่สำรองไว้กลับเข้า table
If Dir(strBackup & "txtFile_name") <> "txtFile_name" Then
MsgBox "ไม่พบไฟล์ข้อมูล txtFile_name", vbOKOnly + vbCritical, "การกู้คืนข้อมูล..."
Else
DoCmd.RunSQL "DELETE Table_name.* FROM [Table_name];"
DoCmd.TransferText acImportDelim, , "Table_name", strBackup & "txtFile_name", True
End If
// part ที่จะใช้ในการเก็บไฟล์ backup
Dim strBackup As String
DoCmd.TransferText acExportDelim, , "Table_name", strBackup & "txtFile_name", True
2. การ restore ข้อมูลที่สำรองไว้กลับเข้า table
If Dir(strBackup & "txtFile_name") <> "txtFile_name" Then
MsgBox "ไม่พบไฟล์ข้อมูล txtFile_name", vbOKOnly + vbCritical, "การกู้คืนข้อมูล..."
Else
DoCmd.RunSQL "DELETE Table_name.* FROM [Table_name];"
DoCmd.TransferText acImportDelim, , "Table_name", strBackup & "txtFile_name", True
End If
4 @R03369
อ.BADMan ครับ ผมต้องการนำ textfile จากตัวอย่างแปลงเป็น Table file เพื่อเรียกใช้งานน่ะครับ รบกวนอีกครั้งนะครับ จะแปลงด้วย Code อย่างไรครับ
5 @R03421
อันที่จริง วิธีของผมก็ใช้ได้นะครับ
พอเราตั้ง ขนาดของ Text ว่าจำนวนกี่ตัวตั้งแต่ตัวที่เทาไหร่(บรรทัดที่ 9) แล้ว
ก็ Save ชื่อ Specification แล้วเราก็เอาชื่อนี้มาเขียนโค๊ตครับ
สมมุติว่า เรา Save ชื่อ ImTextFile นะครับ
เวลาที่เรามาเขียนโค๊ต
DoCmd.TransferText acImportFixed, ImTextFile, "Table", "A:\TextFile", True
ก็คิดว่าน่าจะใช้ได้แล้วนะครับ
พอเราตั้ง ขนาดของ Text ว่าจำนวนกี่ตัวตั้งแต่ตัวที่เทาไหร่(บรรทัดที่ 9) แล้ว
ก็ Save ชื่อ Specification แล้วเราก็เอาชื่อนี้มาเขียนโค๊ตครับ
สมมุติว่า เรา Save ชื่อ ImTextFile นะครับ
เวลาที่เรามาเขียนโค๊ต
DoCmd.TransferText acImportFixed, ImTextFile, "Table", "A:\TextFile", True
ก็คิดว่าน่าจะใช้ได้แล้วนะครับ
6 @R03439
ขอบคุณคุณ moo มากครับผม
Time: 0.1120s
File > Get External Data > Import
แล้วเลือก ชื่อไฟล์ที่ต้องการจะอิมพอร์ต อย่าลืมเลือกชนิดของไฟล์เป็น TextFile นะครับ หลังจากนั้นก็จะขึ้น Import Text Wizard แล้ว คลิกที่ Advanced
ที่ Field Information ให้ตั้งชื่อ
Field Name รู้สึกว่าจะต้องให้เหมือนใน Table หรือเปล่าไม่รู้จำไม่ได้ เลือก Data Type เลือกเป็น Text
Start ให้ใส่ตำแหน่งที่เริ้มต้นของ Text File
Width ให้ใส่จำนวนของ Text
แล้วก็ตั้งไปเรื่อยๆ จนครบ จากนั้นให้คลิกที่ Save As.. แล้วตั้งชื่อ ทางที่ดีควรจดไว้เพื่อเอาไปใช้ที่การเขียนโค๊ต
จากนั้นก็ Next ไป จนการทั้งมาถึงตอนที่ให้เราเลือกชื่อตาราง ก็ให้เราเลือกตารางที่เราต้องการ จากนั้นก็ให้เรา Next ไปเรื่อยๆ จนกว่าจะเสร็จ
จากนั้นให้ไปที่ Macros แล้วสร้างใหม่ขึ้นมา
ที่ Action ให้เลือก Transfer Text
Transfer Type เป็น Import Fixed Width
Specification Name เป็น ชื่อที่เรา Save ตอน Import นั้นแหละ
Table Name ให้เลือกตารางที่เราต้องการ
File Name ให้ใส่ Path ของText File เช่น C\:.........
จากนั้นก็ Save เวลาจะใช้ก็ เขียนโค๊ต RunMacro