กระทู้เก่าบอร์ด อ.Yeadram
6,496 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 ค่ะ
ขอขอบคุณล่วงหน้าค่ะ
ต้องการ สร้างปุ่ม 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
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
ขอบคุณคะ
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 ไม่มีข้อมูลอยู่เลยค่ะ
ขอบคุณค่ะ
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 แล้วสามารถนำเข้าได้ค่ะ แต่ต้องกำหนด อักขระที่คั่นเป็น "|"
ต้องทำอย่างไรดีคะ
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 เวอร์ชั่นไหนครับ
กรณีของคุณ มีน 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
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 ครับ
ขอบคุณครับ
ผมขอสอบถามเพิ่มครับ
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
ขอบคุณครับ
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
ขอบคุณครับ
Time: 0.3445s
http://www.thai-access.com/yeadram_view.php?topic_id=381
แล้วมาปรับปรุง