XuanThanh
Thành viên thường trực




- Tham gia
- 20/3/07
- Bài viết
- 278
- Được thích
- 373
Hỏi
- Tôi có một file Excel chứa dữ liệu cần Import vào Access thì làm thế nào ngoài cách Import thông thường?
Trả lời
Yêu càu số trường của table Ac và số cột của Ex là bằng nhau, format giống nhau
Trong Access tạo một modul mới và chép hàm ImExAc vào. Nhớ chọn thêm thư viện Microsoft Excel 11.0 Object Libary
Khi cần Import, gọi hàm như sau
Call ImExAc(“tblDanhsachkhachhang”,”D:\Excel\Danh sach khach hang.xls”,”Danh sach”)
Nếu table đã có dữ liệu thi sẽ nối tiếp dữ liệu vào table, nếu chưa có thì nó Up thẳng vào table
(Đã test thử thành công, viết cho Office 2003)
- Tôi có một file Excel chứa dữ liệu cần Import vào Access thì làm thế nào ngoài cách Import thông thường?
Trả lời
Yêu càu số trường của table Ac và số cột của Ex là bằng nhau, format giống nhau
Trong Access tạo một modul mới và chép hàm ImExAc vào. Nhớ chọn thêm thư viện Microsoft Excel 11.0 Object Libary
PHP:
Function ImExAc(tblTabName As String, strFile As String, shSheet As String)
'tblTabName la ten table can Import du lieu
'strFile la ten duong dan den Workbook Ex co du lieu
'shSheet la ten Sheet cua Workbook strFile chua du lieu
'Sheet Ex co hang dau tien la hang tieu de(ten truong)
Dim Ex As New Excel.Application
Dim fileEx As Workbook
Set fileEx = Ex.Workbooks.Open(strFile)
Dim Ws As Worksheet
Set Ws = fileEx.Worksheets(shSheet)
Dim lfirstrow, lfirstcol, llastrow, llastcol As Long
With Ws.UsedRange
lfirstrow = .Row
lfirstcol = .Column
llastrow = .Rows(UBound(.Value)).Row
llastcol = .Columns(UBound(.Value, 2)).Column
End With
Dim Rs As Recordset
Set Rs = CurrentDb.OpenRecordset(tblTabName, dbOpenTable)
Dim i As Long
Dim j As Long
For i = lfirstrow + 1 To llastrow
Rs.AddNew
For j = lfirstcol To llastcol
Rs.Fields(j - lfirstcol) = Ws.Cells(i, j)
Next
Rs.Update
Next
Set Ex = Nothing: Rs.Close
End Function
Khi cần Import, gọi hàm như sau
Call ImExAc(“tblDanhsachkhachhang”,”D:\Excel\Danh sach khach hang.xls”,”Danh sach”)
Nếu table đã có dữ liệu thi sẽ nối tiếp dữ liệu vào table, nếu chưa có thì nó Up thẳng vào table
(Đã test thử thành công, viết cho Office 2003)
Lần chỉnh sửa cuối: