Tổng hợp (gộp) nhiều sheet trong 1 file - Áp dụng cho Excel - Access - SQLite

Liên hệ QC

Kiều Mạnh

I don't program, I beat code into submission!!!
Tham gia
9/6/12
Bài viết
5,421
Được thích
4,033
Giới tính
Nam
Trên GPE này đâu đó họ giới thiệu sử dụng Open File + ADODB + DAO và Power query để tổng hợp dữ liệu nhiều Sheet vào 1 File vv...

Thì hôm nay Tôi giới thiệu với các Bạn 1 hàm tùy chỉnh duy nhất đã viết sẳn còn ta chỉ viết thêm hàm phụ hoặc khai báo chút là sử dụng tổng hợp cho 3 CSDL sau

1/ Cho Excel File: .xls; .xlsx; .xlsb; .xlsm
2/ Access File: .mdb; .accdb
3/ CSDL SQLite

Sử dụng FireDAC viết trên Delphi để thực hiện hàm trên

1/ vào link sau tải các File cần thiết về sử dụng hoặc link chữ ký của Tôi eBooks - Open Source

2/ Copy code sau vào và sử dụng
Mã:
Sub TongHop_ListTableNames()
    Dim SQL As String
    Dim aPath As Variant
    Dim Arr As Variant
    Dim sArr() As String
    Dim i As Long
    Cells.Clear
    Rem ========= Tuy chon lay List CSDL Sau
    ''aPath = "D:\Database_Server\DataBase_4.accdb"
    ''aPath = "D:\Database_Server\DataBase_2.mdb"
    ''aPath = "D:\Database_Server\DB_SQLite\QLBHPN.sqlite"
    Rem aPath = "D:\Database_Server\Data.xlsx"          ''*.xls,xlsb,xlsm,xlsx
    Rem ========= Luu y se loi neu tong so dong lon hon so dong cua 1 Sheet 1048576
    aPath = SelectFilesDialogA()
    Rem =========
    Arr = ListTableNamesA(aPath)
    sArr = Split(Arr, vbLf)
    Rem =========
    For i = LBound(sArr) To UBound(sArr) - 1
        Rem Debug.Print sArr(i)
        SQL = "select * from " & sArr(i)
        Debug.Print SQL
        Call GetSQLDataBaseA(aPath, SQL, [A65536].End(3)(2), True) ''True = lay tieu de; False = ko lay tieu de
    Next
End Sub

3/ Lưu ý code trên sẻ lỗi nếu tổng số dòng cần tổng hợp cộng lại lớn hơn 1048576 cho Excel 2010 to 365 là sẻ lỗi code

4/ Nếu ai có khả năng viết bất cứ ngôn ngữ nào khác có chức năng tương tự vui lòng úp bài tham gia cho vui

5/ Tôi nghĩ không biết Power query có thực hiện được như trên ko ... nếu được vui lòng tham gia chút :::"""><

6/ trên này sẻ có nhiều bạn biết hoặc chưa biết CSDL SQLite là gì thì tôi Úp File phía dưới các bạn có thể tải về thử ... còn Excel và Access tin chắc là ai cũng biết và có ....

7/ Mọi vấn đề phát sinh ko liên quan chủ đề này vui lòng lập thớt mới trích dẫn link thớt này ta bàn tiếp
Xin cảm ơn
 

File đính kèm

  • CSDLSQLite.rar
    687.1 KB · Đọc: 77
Lần chỉnh sửa cuối:
Chào bạn Kiều Mạnh,
Cách sử dụng như thế nào ạ?
 
Trên GPE này đâu đó họ giới thiệu sử dụng Open File + ADODB + DAO và Power query để tổng hợp dữ liệu nhiều Sheet vào 1 File vv...

Thì hôm nay Tôi giới thiệu với các Bạn 1 hàm tùy chỉnh duy nhất đã viết sẳn còn ta chỉ viết thêm hàm phụ hoặc khai báo chút là sử dụng tổng hợp cho 3 CSDL sau

1/ Cho Excel File: .xls; .xlsx; .xlsb; .xlsm
2/ Access File: .mdb; .accdb
3/ CSDL SQLite

Sử dụng FireDAC viết trên Delphi để thực hiện hàm trên

1/ vào link sau tải các File cần thiết về sử dụng hoặc link chữ ký của Tôi eBooks - Open Source

2/ Copy code sau vào và sử dụng
Mã:
Sub TongHop_ListTableNames()
    Dim SQL As String
    Dim aPath As Variant
    Dim Arr As Variant
    Dim sArr() As String
    Dim i As Long
    Cells.Clear
    Rem ========= Tuy chon lay List CSDL Sau
    ''aPath = "D:\Database_Server\DataBase_4.accdb"
    ''aPath = "D:\Database_Server\DataBase_2.mdb"
    ''aPath = "D:\Database_Server\DB_SQLite\QLBHPN.sqlite"
    Rem aPath = "D:\Database_Server\Data.xlsx"          ''*.xls,xlsb,xlsm,xlsx
    Rem ========= Luu y se loi neu tong so dong lon hon so dong cua 1 Sheet 1048576
    aPath = SelectFilesDialogA()
    Rem =========
    Arr = ListTableNamesA(aPath)
    sArr = Split(Arr, vbLf)
    Rem =========
    For i = LBound(sArr) To UBound(sArr) - 1
        Rem Debug.Print sArr(i)
        SQL = "select * from " & sArr(i)
        Debug.Print SQL
        Call GetSQLDataBaseA(aPath, SQL, [A65536].End(3)(2), True) ''True = lay tieu de; False = ko lay tieu de
    Next
End Sub

3/ Lưu ý code trên sẻ lỗi nếu tổng số dòng cần tổng hợp cộng lại lớn hơn 1048576 cho Excel 2010 to 365 là sẻ lỗi code

4/ Nếu ai có khả năng viết bất cứ ngôn ngữ nào khác có chức năng tương tự vui lòng úp bài tham gia cho vui

5/ Tôi nghĩ không biết Power query có thực hiện được như trên ko ... nếu được vui lòng tham gia chút :::"""><

6/ trên này sẻ có nhiều bạn biết hoặc chưa biết CSDL SQLite là gì thì tôi Úp File phía dưới các bạn có thể tải về thử ... còn Excel và Access tin chắc là ai cũng biết và có ....

7/ Mọi vấn đề phát sinh ko liên quan chủ đề này vui lòng lập thớt mới trích dẫn link thớt này ta bàn tiếp
Xin cảm ơn
Bạn hướng dẫn chi tiết cách dùng với
 
có hết trên này hay trong chữ ký ấy chịu dò đi là thấy thôi
 
Web KT
Back
Top Bottom