ต้องการสร้างปุ่ม import text file
กระทู้เก่าบอร์ด อ.Yeadram

 6,351   8
URL.หัวข้อ / URL
ต้องการสร้างปุ่ม import text file

ขอความช่วยเหลือค่ะ
ต้องการ สร้างปุ่ม Comand Buttom ใน Form
เพื่อ Import ข้อมูลใน Text File ทั้งหมดมาใส่ใน Table ใน Access (ซึ่งได้สร้างรอไว้แล้ว )
โดยเมื่อ Click ก็ให้ขึ้นเป็น Dialog Browser (แบบใน Windows) ให้ User เลือกที่อยู่ของ File เอง
Text File ใช้เครื่องหมาย " | " เพื่อแยก Field แต่ละ Field
ทุกบรรทัดใน Field Text File เป็น Data ใน Table ทั้งหมด
บรรทัดแรก ของ Field Text File ไม่ได้เป็น Field Name ของ Table
รบกวนด้วยค่ะ

ทั้งนี้ได้ค้นหาใน webboard ของอาจารย์สุภาพแล้ว แต่ไม่เข้าใจและไม่สามารถ link ตามที่อาจารย์แนะนำได้คะ

รบกวนอธิบายโดยละเอียดคะ เนื่องจากเป็นมือใหม่จะไม่ค่อยคุ้นเคยกับคำสั่งใน VB ค่ะ

ขอขอบคุณล่วงหน้าค่ะ

8 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R03497
ลองอ่าน
http://www.thai-access.com/yeadram_view.php?topic_id=381

แล้วมาปรับปรุง
2 @R03500
ได้ copy code ไปเขียนไว้ดังนี้คะ

Function TXTImport()
Dim pth As String
pth = GetOpenFile
DoCmd.TransferText acExportDelim, , LD0197F, pth, True
End Function

Private Sub Command0_Click()
TXTImport
End Sub

เมื่อกดปุ่มแล้วสามารถเลือกไฟล์ได้แล้วคะ แต่ ยังมี error เนื่องจากเขียน code
DoCmd.TransferText ไม่ถูกคะ

DoCmd.TransferText acExportDelim, ต้องใส่อะไรตรงนี้คะ , LD0197F (ชื่อตารางที่จะนำเข้าคะ), pth, True

ขอบคุณคะ
3 @R03502
ขอโทษคะ ต้องเป็น acImportDelim

DoCmd.TransferText acImportDelim, , "LD0197F", pth, True

และลองดูใหม่แล้ว ปรากฎว่าเกิดตารางแสดงข้อมูลerror ซึ่งแสดง error ประเภท Type Conversion Failure และ Field Truncation หมายถึงอะไรคะ

ส่วนในตาราง LD0197F ไม่มีข้อมูลอยู่เลยค่ะ

ขอบคุณค่ะ
4 @R03503
ขอแก้ไขอีกหน่อยนะคะ

DoCmd.TransferText acImportDelim, , "LD0197F", pth, False

ต้องเป็น false เนื่องจาก บรรทัดแรกของ text ไม่ได้เป็น field name
ถึงอย่างไรก็ตามยังคง error เช่นเดิม แต่หากใช้วิธี Menu File --> Get External data แล้วสามารถนำเข้าได้ค่ะ แต่ต้องกำหนด อักขระที่คั่นเป็น "|"

ต้องทำอย่างไรดีคะ
5 @R03507
ตัวอย่างที่แนะนำ เป็นการดึง Text file แบบ fix column ซึ่งผมใช้ดึง Text file มาจากเครื่อง Finger Scan (แสกนลายนิ้วมือ บันทึกเข้า ออกการทำงาน)

กรณีของคุณ มีน Text file เป็นแบบ fix column หรือเปล่าว แล้วใช้ Access เวอร์ชั่นไหนครับ
6 @R03515
ลองทำแบบนี้
Code สร้าง ปุ่ม Browse
http://www.thai-access.com/yeadram_view.php?topic_id=381

หลังจากนั้นสร้าง ปุ่ม Import (On Click event) ใส่ Code ข้างล่าง

http://www.thai-access.com/yeadram_view.php?topic_id=524


7 @R21045
จากคำตอบของคุณ Gerald
ผมขอสอบถามเพิ่มครับ

1.หากผมจะ Import Excel และ ไม่ fix column ไดๆ โดยให้ดั้มทั้งหน้า Excel
จะทำอย่างไรครับ

2.ปกติแล้ว Excel มันจะมี3 ชีด แล้วโปรแกรมจะทราบได้อย่างไรครับ ว่าชีดไหนมีข้อมูลอยู่

       ตอนนี้ผมลองทำตามคุณ Gerald ได้
Code สร้าง ปุ่ม Browse
http://www.thai-access.com/yeadram_view.php?topic_id=381

แต่ปุ่ม Import (On Click event) ผมจะต้องปรับยังไงครับ ลองทำตามแล้วไปไม่ถูกครับ
               ปล.น่าจะเป็นขั้นตอนนำเข้าตารางตามที่ผมสงสัยที่สอบถาม 2 ข้อครับ
ผมลองเขียนตรง Import
Docmd.TransferSpreadsheet acImport, "Microsoft Excel 8-10",Table1,pth,True    'อันนี้จะ Error ตรงpth ซึ่งผมประกาศตัวแปลแล้วเป็น String

และก็ทำตาม
http://www.thai-access.com/yeadram_view.php?topic_id=381&page=1
ก็ยังไม่ได้ครับ จะError Table1,pth, 2 ตัวนี้ส่วนใหญ่ครับ
เดี๋ยวผมขอแนวทางจากอาจารย์ก่อน ค่อยลุยเรื่อง Error ครับ
ขอบคุณครับ






8 @R21046
ผมลองทำตามแนวทางที่คุณ yeadram แนะไว้
http://www.thai-access.com/yeadram_view.php?topic_id=381
ติด Error runtime error 13 type mismatch

DoCmd.TransferSpreadsheet acImport, "Microsoft Excel 8-10", Table1, pth, True


'ผมเขียนเพิ่มทั้งหมดตามคุณ yeadram ตามนี้ครับ
Function ExcelImport()
Dim pth As String
pth = GetOpenFile
DoCmd.TransferSpreadsheet acImport, "Microsoft Excel 8-10", Table1, pth, True
End Function

Private Sub CMD_Click()
            ExcelImport
End Sub

ขอบคุณครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.1562s