Import dữ liệu từ Excel vào Access bằng VBA Excel

Liên hệ QC

thkd09

Thành viên mới
Tham gia
26/3/09
Bài viết
43
Được thích
2
Giới tính
Nam
Em chào các bác!

Em đang có vấn đề là muốn nhập dữ liệu từ những file Excel vào CSDL Access. Em cũng đã tìm và đọc các bài khác nhưng vẫn chưa giải quyết được vấn đề của mình.
Em mong các bác hỗ trợ! Nội dung như sau:
Em muốn thêm hẳn 1 sheet đầu tiên trong file excel thành 1 table mới (tên là tên của sheet đó) trong access. Nếu trong access đã tồn tại table đó rồi thì xóa table cũ rồi thêm vào.
Ví dụ:
- File Access: C:\BAOCAO\SOLIEU.mdb
- File Excel: C:\BAOCAO\DULIEU_EXCEL\ABC.XLS
Em chân thành cảm ơn các bác!
 
Em chào các bác!

Em đang có vấn đề là muốn nhập dữ liệu từ những file Excel vào CSDL Access. Em cũng đã tìm và đọc các bài khác nhưng vẫn chưa giải quyết được vấn đề của mình.
Em mong các bác hỗ trợ! Nội dung như sau:
Em muốn thêm hẳn 1 sheet đầu tiên trong file excel thành 1 table mới (tên là tên của sheet đó) trong access. Nếu trong access đã tồn tại table đó rồi thì xóa table cũ rồi thêm vào.
Ví dụ:
- File Access: C:\BAOCAO\SOLIEU.mdb
- File Excel: C:\BAOCAO\DULIEU_EXCEL\ABC.XLS
Em chân thành cảm ơn các bác!
Tôi viết 1 Hàm API sử dụng cho tất cả các kiểu dữ liệu thập cẩm .... có điều nó là DLL API
Nếu iu thì tôi Úp ... và chỉ có sử dụng còn không chỉnh sửa + học được gì cả
Code đại ý như sau
Mã:
Declare PtrSafe Sub InsertQuery Lib "VBLibrary.dll" _
            (ByVal AccPath As Variant, _
             ByVal TableName As Variant, _
             ByVal sArr As Variant, _
             ByVal ColFilter As Long, _
             ByVal DelTableName As Boolean)
Rem ==========
Public Sub GhiDuLieu()
    Dim AccPath As Variant
    Dim TableName As Variant
    Dim Arr As Variant, MaxRow As Long
    Rem ==========
    TableName = "Test_Get_Data" ''Ten TableName Trong Access
    MaxRow = Sheet1.UsedRange.Rows.Count
    Arr = Sheet1.Range("B7:L" & MaxRow + 5).Value
    AccPath = ThisWorkbook.Path & "\Database.accdb"
    Rem Sheet1.Range("C2") = DIEU KIEN LOC CO DU LIEU THEO COT SO 2
    Call InsertQuery(AccPath, TableName, Arr, Sheet1.Range("C2"), False) ''True = Luu moi; False = Luu noi xuong dong
End Sub
 
Nhờ bác Kiều Mạnh up lên cho em xin sử dụng với ạ! Nếu đáp ứng được công việc thì tốt quá bác ạ!
Thank bác!
 
Nhờ bác Kiều Mạnh up lên cho em xin sử dụng với ạ! Nếu đáp ứng được công việc thì tốt quá bác ạ!
Thank bác!
File bài số #5 Tôi Úp ngày 05/11/2018 ... áp dụng cho Office_x32 ... nhanh thật mới đó mà mấy năm
Nếu máy bạn sử dụng Office_x64 thì báo tôi úp lại bản x64

 
File bài số #5 Tôi Úp ngày 05/11/2018 ... áp dụng cho Office_x32 ... nhanh thật mới đó mà mấy năm
Nếu máy bạn sử dụng Office_x64 thì báo tôi úp lại bản x64

Em đăng ký dll bị lỗi bác ơi. Nhờ bác hướng dẫn em với ạ.
gpe-loi-dll-png.263324
 

File đính kèm

  • GPE - LOI DLL.png
    GPE - LOI DLL.png
    4.9 KB · Đọc: 125
Em chào các bác!

Em đang có vấn đề là muốn nhập dữ liệu từ những file Excel vào CSDL Access. Em cũng đã tìm và đọc các bài khác nhưng vẫn chưa giải quyết được vấn đề của mình.
Em mong các bác hỗ trợ! Nội dung như sau:
Em muốn thêm hẳn 1 sheet đầu tiên trong file excel thành 1 table mới (tên là tên của sheet đó) trong access. Nếu trong access đã tồn tại table đó rồi thì xóa table cũ rồi thêm vào.
Ví dụ:
- File Access: C:\BAOCAO\SOLIEU.mdb
- File Excel: C:\BAOCAO\DULIEU_EXCEL\ABC.XLS
Em chân thành cảm ơn các bác!
Ở Excel đẩy dữ vào Access hay là từ Access lấy dữ liệu từ Excel đưa vào vậy bạn?
 
Ở Excel đẩy dữ vào Access hay là từ Access lấy dữ liệu từ Excel đưa vào vậy bạn?
Ở Excel đẩy dữ liệu vào Access bác ạ.
Tức là em muốn làm 1 file Excel báo cáo số liệu hàng ngày, tháng, quý, năm. Em có các file Excel khác là dữ liệu, em muốn đẩy các file đó (Sheet đầu tiên) vào Access để rồi lại lấy số liệu từ Access ra Excel cho nó tiện và gọn bác ạ.
 
Em đăng ký dll bị lỗi bác ơi. Nhờ bác hướng dẫn em với ạ.
gpe-loi-dll-png.263324

Cái đó là DLL API 32 bit ... chỉ copy vào C:\Windows\System32\DLL và sử dụng nó

Không cần đăng ký nhé bạn ... Nếu máy của bạn sử dụng Officex64 là lỗi ... vì đó là DLL API x32
 
Ở Excel đẩy dữ liệu vào Access bác ạ.
Tức là em muốn làm 1 file Excel báo cáo số liệu hàng ngày, tháng, quý, năm. Em có các file Excel khác là dữ liệu, em muốn đẩy các file đó (Sheet đầu tiên) vào Access để rồi lại lấy số liệu từ Access ra Excel cho nó tiện và gọn bác ạ.
Bạn thử code sau nhé:

Mã:
Sub ChuyenDL_HLMT()
    Dim tbl_Name As String
    With CreateObject("Access.Application")
        .OpenCurrentDatabase ("C:\BAOCAO\SOLIEU.mdb") ' Chinh duong dan den file Access
        Sheets(1).Select
        tbl_Name = Sheets(1).Name
        If .DCount("[Name]", "MSysObjects", "[Name] = '" & tbl_Name & "'") = 1 Then
            .DoCmd.DeleteObject 0, tbl_Name
        End If
        .DoCmd.TransferSpreadsheet , 9, tbl_Name, ThisWorkbook.FullName, True
        .DoCmd.Close
    End With
 
End Sub
 
Lần chỉnh sửa cuối:
Cái đó là DLL API 32 bit ... chỉ copy vào C:\Windows\System32\DLL và sử dụng nó

Không cần đăng ký nhé bạn ... Nếu máy của bạn sử dụng Officex64 là lỗi ... vì đó là DLL API x32
Cái này copy xong thì sử dụng như thế nào vậy bác?
Bài đã được tự động gộp:

Bạn thử code sau nhé:

Mã:
Sub ChuyenDL_HLMT()
    Dim tblName As String
    With CreateObject("Access.Application")
        .OpenCurrentDatabase ("C:\BAOCAO\SOLIEU.mdb") ' Chinh duong dan den file Access
        Sheets(1).Select
        tbl_Name = Sheets(1).Name
        If .DCount("[Name]", "MSysObjects", "[Name] = '" & tbl_Name & "'") = 1 Then
            .DoCmd.DeleteObject 0, tbl_Name
        End If
        .DoCmd.TransferSpreadsheet , 9, tbl_Name, ThisWorkbook.FullName, True
        .DoCmd.Close
    End With
 
End Sub
Em thử dùng mà bị lỗi: Server execution failed bác ạ.
Báo lỗi ở đây: With CreateObject("Access.Application")
Máy em dùng Office bản Standar - Không có Access. Không biết lỗi do nguyên nhân này không nữa.
 
Cái này copy xong thì sử dụng như thế nào vậy bác?
Bài đã được tự động gộp:


Em thử dùng mà bị lỗi: Server execution failed bác ạ.
Báo lỗi ở đây: With CreateObject("Access.Application")
Máy em dùng Office bản Standar - Không có Access. Không biết lỗi do nguyên nhân này không nữa.
Không có Access thì không dùng được code trên nhé bạn.
 
Vây nếu mình cài AccessRuntime vào máy thì có chạy được không bác?

Không chạy được cho trường hợp của bạn nhé.
Access Runtime (ART) chỉ là cái nền để chạy một ứng dụng Access mà máy đó không cài đặt MS Access. Nó chỉ chứa các thư viện, drivers để chạy chương trình MS Access, không có giao diện để thao tác gì cả. Bạn muốn xuất qua Table của Access mà dùng ART thì lưu Table ở đâu? Không mở được Access Database, không giao diện thì làm ăn gì được với nó.
 
Web KT
Back
Top Bottom