Tạo hàm để Import dữ liệu từ Excel vào table Access

Liên hệ QC

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

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:
Để nhập mới nội dung một table (trong Access) từ một tập tin Excel, ta có thể dùng một trong những cách sau đây:


1. Chọn File \ Get External Data \ Import từ trình đơn Access. Trên hộp thoại Import, chọn mục Microsoft Excel từ danh sách Files of type, rồi chọn tập tin Excel muốn đưa dữ liệu vào Access và bấm OK. Sau đó, theo từng bước hướng dẫn của Access. Tuy nhiên, dữ liệu luôn luôn được đưa vào một table mới, chứ không đưa vào table có sẵn cấu trúc được.
2. Tạo một macro, rồi trên form vẽ một nút lệnh để chạy macro này. Tuy nhiên, các thông số như TableName, FileName cần phải được gõ sẵn, hoặc phải bổ sung thêm một số “kỹ xảo” nữa rất mất công.
3. Cách khác hay hơn: dùng đối tượng DoCmd, một hình thức sử dụng macro của Access trong VBA. Ví dụ: Tạo form như hình 1, gồm có một textbox (đặt tên txtTapTinExcel), một nút lệnh (có dấu 3 chấm, đặt tên cmdTimTapTin), một nút lệnh (để đọc dữ liệu từ tập tin Excel có tên chứa trong ô txtTapTinExcel, đặt tên cmdDocDuLieuTuExcel) và một ActiveX Control có tên dlgTimTapTin. ActiveX Control này được tạo bằng cách bấm nút More Controls (nút cuối cùng) trên ToolBox, rồi chọn mục Microsoft Common Dialog Control. Lần lượt gõ vào các thủ tục xử lý tình huống OnClick của các nút lệnh cmdDocDuLieuTuExcel và cmdTimTapTin (đoạn mã 1). Bạn lưu ý, thứ tự và tên các cột trong tập tin Excel phải giống như cấu trúc table đã khai báo trong Access.

Đoạn mã 1


Mã:

Private Sub cmdTimTapTin_Click()
With dlgTimTapTin
.ShowOpen
txtTapTinExcel = .FileName
End With
End Sub


Mã:

Private Sub cmdDocDuLieuTuExcel_Click()
Dim sTenTable As String
sTenTable = "tbNhanVien" ‘ Vñ duå
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _
sTenTable, txtTapTinExcel, True
End Sub


http://thuthuataccess.com/forum/thread-5234.html
http://thuthuataccess.com/forum/thread-3282.html
http://thuthuataccess.com/forum/thread-5182.html
 
Các bạn ơi,

Có ai biết cách setup computer để tạo được marco trong excell ko? file excel này dùng để làm dữ liệu nguồn của 1 file access.

Mình đang rất cần để có file nguồn để update file access của mình.

Thanks and best regards,
 
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

@: Xuân Thành
Làm cách nào để cho Access & Excel có format giống nhau.
1. Tôi tạo mới một table trong Acc
2. Copy dữ liệu excel và paste vào Tb trong Access (mục đích copy Format từ excel)

nhưng tôi thấy bị lỗi

Thanks
 
Web KT
Back
Top Bottom