subasatran > 17-07-17, 10:41 PM
lehongduc > 18-07-17, 08:07 AM
expression. TransferText ( TransferType, SpecificationName, TableName, FileName, HasFieldNames, HTMLTableName, CodePage )
docmd.TransferText acImportDelim ,,"tblDanhsach","C:\TEMP\tbldanhsach.csv",true,,65001
subasatran > 18-07-17, 06:54 PM
(18-07-17, 08:07 AM)lehongduc Đã viết: Chào Bạn,Rất cảm ơn lehongduc.
File CSV là file text, có phần phân loại trong tên file là CSV (Bạn gọi là đuôi CSV đó), lưu trữ danh sách theo dạng hàng / cột, có đặc điểm định dạng sau:
+ Nếu có tiêu đề cột thì dòng đầu tiên là tiêu đề các cột
+ với phân tách cột là dấu phẩy (cho tiêu đều cột và nội dung các dòng bên dưới)
Trong Access, nếu bạn muốn dùng VBA để import file CSV này ta dùng method TransferText theo cú pháp sau:
(xin tham khảo link nguồn: https://msdn.microsoft.com/VBA/Access-VB...hod-access)Mã:expression. TransferText ( TransferType, SpecificationName, TableName, FileName, HasFieldNames, HTMLTableName, CodePage )
Thí dụ: để import file tbldaanhsach.csv lưu trong folder "C:\TEMP" vào database thành bảng tblDanhsach tôi dùng câu lệnh như sau:
Trong câu lệnh trên, số 65001 chính là CodePage của Unicode UTF-8 (vì danh sách này là tiếng Việt Unicode có dấu)Mã:docmd.TransferText acImportDelim ,,"tblDanhsach","C:\TEMP\tbldanhsach.csv",true,,65001
Private Sub Command10_Click()
DoCmd.TransferText acImportDelim, , "Table_Report", "D:\DATA\20170630_Production.csv", True, , 65001
End Sub
duynamvnn1208 > 29-07-17, 02:20 PM
Private Sub example_Click()
Dim dialog As Office.FileDialog
Set dialog = Application.FileDialog(msoFileDialogFilePicker)
With dialog
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "CSVFiles", "*.csv*"
If .Show = True Then
Me.textBoxName = .SelectedItems(1)
End If
End With
End Sub
subasatran > 01-09-17, 03:20 PM
(29-07-17, 02:20 PM)duynamvnn1208 Đã viết: Bạn có thể sử dụng Code này:Bạn có thể cho mình một ví dụ được không ?
DoCmd.TransferText acLinkDelim, , "Table_Report","D:\DATA\20170630_Production.csv", True
Để linh hoạt hơn trong việc chọn File bạn nên tạo ra một Text Box và 1 Bottom, chức năng của Bottom là mở File dialog và ghi đường link của file dialog vào Text box, sau đó ở đường dẫn D:**** ở Code trên bạn chỉ cần thay giá trị của Text box vào là Ok rồi. Có thể sử dụng để mở nhiều file bạn muốn rồi!
Một lưu ý nữa là trước khi ghi Code trên thì bạn nhớ xóa file cũ đi đã nhé.
Code bottom mình để bạn tham khảo
Mã:Private Sub example_Click()
Dim dialog As Office.FileDialog
Set dialog = Application.FileDialog(msoFileDialogFilePicker)
With dialog
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "CSVFiles", "*.csv*"
If .Show = True Then
Me.textBoxName = .SelectedItems(1)
End If
End With
End Sub