Page 1 of 1

ขอชุดคำสั่ง ADO เพื่ออ่านไฟล์ excel ครับ

Posted: Sat May 03, 2014 8:32 pm
by somkiatfem
ขอชุดคำสั่ง ADO เพื่ออ่านไฟล์ excel ครับ

Re: ขอชุดคำสั่ง ADO เพื่ออ่านไฟล์ excel ครับ

Posted: Sat May 03, 2014 8:36 pm
by snasui
:D สำหรับ VBA ต้องเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบน ติดแล้วค่อยถามกันครับ

ช่วยเช็ค code ด้วยครับ

Posted: Sun May 04, 2014 8:47 pm
by somkiatfem
Option Explicit
Public Sub am()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim csql As New ADODB.Recordset
Dim a As Single

cn.Open "provider=microsoft.ace.oledb.12.0" & ";extended properties=text " & ";data source=C:\Users\somkiat\Desktop\SET-ARCHIVE"
'cn.Open "driver={microsoft access text driver (*.txt, *.csv)}" & ";dbq=C:\Users\somkiat\Desktop\SET-ARCHIVE"
rs.Open "select a, b, c" & " from set-history_EOD_1984-01-03.csv" & "order by a, b", cn <--- บรรทัดนี้เหลืองครับ

Workbooks.Add
ActiveCell.CopyFromRecordset rs
rs.Close
cn.Close

End Sub

Re: ขอชุดคำสั่ง ADO เพื่ออ่านไฟล์ excel ครับ

Posted: Sun May 04, 2014 8:54 pm
by snasui
:D ควรโพสต์ Code ให้แสดงเป็น Code จะได้สะดวกในการอ่าน สะดวกในการ Copy ไปทดสอบ ดูตัวอย่างการโพสต์ที่ Link นี้ครับ http://www.snasui.com/viewtopic.php?f=3&t=1187

ช่วยแนบไฟล์ตัวอย่างทั้งสองไฟล์ คือไฟล์ต้นทางและปลายทางที่จะนำไฟล์ต้นทางมาวาง จะได้ช่วยทดสอบได้ครับ

เปิด database csv ไม่ได้ครับ

Posted: Sun May 04, 2014 9:05 pm
by somkiatfem

Code: Select all

Option Explicit
Public Sub am()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset


cn.Open "provider=microsoft.ace.oledb.12.0" & ";extended properties=text " & ";data source=C:\Users\somkiat\Desktop\SET-ARCHIVE"
'cn.Open "driver={microsoft access text driver (*.txt, *.csv)}" & ";dbq=C:\Users\somkiat\Desktop\SET-ARCHIVE"
rs.Open "select <OPEN>, <HIGH>" & " from set-history_EOD_1984-01-04.csv" & "order by a, b", cn '<--บรรทัดนี้เหลืองครับ และ orderหมายความว่าอย่างไรครับ ขอบพระคุณครับ

Workbooks.Add
ActiveCell.CopyFromRecordset rs
rs.Close
cn.Close

End Sub

Re: ขอชุดคำสั่ง ADO เพื่ออ่านไฟล์ excel ครับ

Posted: Mon May 05, 2014 8:09 am
by snasui
:D ลองดู Code ตามด้านล่างครับ

Code: Select all

Option Explicit

Public Sub am()
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    
    cn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" _
        & "Dbq=C:\Users\somkiat\Desktop\SET-ARCHIVE\;Extensions=asc,csv,tab,txt;"
    
    rs.Open "select  *  from [set-history_EOD_1984-01-04.csv]", cn
    
    Workbooks.Add
    ActiveCell.CopyFromRecordset rs
    
    rs.Close
    cn.Close
    
End Sub
สำหรับ Order By ที่ถามนั้น เป็น Statement ของ SQL เป็นการให้เรียงลำดับตาม Field ที่ต้องการ

Re: ขอชุดคำสั่ง ADO เพื่ออ่านไฟล์ excel ครับ

Posted: Mon May 05, 2014 11:19 am
by somkiatfem
ขอบคุณครับอาจารย์ แต่ เหมือนผมต้องใส่ On Error Resume Next เดียวผมลองนำไปประยุกต์ใช้ดูก่อนครับผม