• Demo tổng hợp xuất Table, Query sang Excel có điều kiện ở vị trí nào cũng được
  • Demo tổng hợp xuất Table, Query sang Excel có điều kiện ở vị trí nào cũng được

    maidinhdan > 05-02-15, 01:59 AM

    Như lời đã hứa từ những hôm trước hôm nay xin mạo mụi gọi là tổng hợp chứ code không phải tự mình viết, chỉ ngâm cứu chỉnh sửa lại chút để ra thành bài Demo tổng hợp xuất Table, Query sang Excel có điều kiện

    Thông tin về demo:
    1. Xuất từ table ra file Excel theo mẫu Excel có sẳn và tự đặt tên;
    2. Xuất từ Query có đặt điều kiện ra file Excel theo theo mẫu Excel có sẳn và tự đặt tên.

    3. Xuất từ nhiều table/query ra nhiều Sheet Excel


    Form demo
    [Hình: demoxuatfile%20sang%20Access.png]

    Mẫu Excel dựng sẳn
    [Hình: maudemo.png]


    Demo: https://sites.google.com/site/congthucassecc/home/Tong%20hop_Access%20Xuat%20sang%20Excel_VIP.rar?attredirects=0&d=1

    Bổ sung link mediafire: http://www.mediafire.com/download/l40a4z...opass).rar ( Không có đặt pass VBA)

    Nguồn được tổng hợp sưu tầm trên trang thuthuataccess.( Tác giả của code được đính trong demo)
    Pass VBA: ngày mai post. Vì sợ nó chạy lỗi. gần 1 giờ rồi040

    Pass VBA: codobanghiep

    Bổ sung code xuất từ nhiều table/query ra nhiều Sheet Excel
    Đoạn code sau sẽ giúp xuất 2 table vào 1 file Excel theo mẫu, được chỉ định vị trí trước

    Đã test:
    Mã PHP:
    Private Sub cmdExport_Click()
    On Error Resume Next
    Dim db 
    As DAO.Database

    Dim rs1 
    As DAO.Recordset     ' table1'
    Dim rs2 As DAO.Recordset    'table2'

    Dim tb1 As String           ' table1'
    Dim tb2 As String           ' table2'

    Dim oApp As New Excel.Application
    Dim oBook 
    As Excel.Workbook
    Dim oSheet 
    As Excel.Worksheet

       Set oBook 
    oApp.Workbooks.Open(CurrentProject.Path "\Danh sach khach hang.xlt")
       
       tb1 
    "select * from tblKhach"              ' tblKhach là tên table 1'
       tb2 "select * from tblchu"                ' tblchu là tên table 2'
       
       Set oSheet 
    oBook.Sheets("Danh Sach")
       Set db CurrentDb
       
    ' Chép dữ liệu từ table1 vào file Excel bắt đầu từ cột B dòng thứ 7'
       Set rs1 db.OpenRecordset(tb1dbOpenSnapshot)
       oSheet.Range("b7").CopyFromRecordset rs1         'b7: lla cot B dong thu 7'
       ' Chép dữ liệu từ table2 vào file Excel bắt đầu từ cột B dòng thứ 25'
       Set rs2 db.OpenRecordset(tb2dbOpenSnapshot)
       oSheet.Range("b25").CopyFromRecordset rs2       'b25: lla cot B dong thu 25'
    ' Xoa bien va giai phong bo nho dong thoi mo file Excel'
       rs1.Close
       rs2
    .Close
       oApp
    .Visible True
       oApp
    .UserControl True
       db
    .Close
    End Sub 

    Nếu muốn table 2 nạp vào sheet2 chẳng hạn thì thêm đoạn

    Mã PHP:
    Set oSheet oBook.Sheets("Sửa lại tên Sheet2"

    Chèn vào dưới chữ : Chép dữ liệu từ table2 vào file Excel bắt đầu từ cột B dòng thứ 25

    Ứng dụng: Ta có thể Export nhiều Table đến một file Excel theo mẫu dựng sẳn mà trong đó gồm nhiều mẫu báo cáo ( phần này sau khi làm xong Ứng dụng báo cáo thống kê số liệu mình sẽ post một số ảnh minh họa lên để chia sẽ cùng mọi người)

    Nếu không hay xin chém nhẹ tay.
  • RE: Demo tổng hợp xuất Table, Query sang Excel có điều kiện

    dinhnhieu > 05-02-15, 08:26 AM

    Cảm ơn maidinhdanh rất nhiều vì sự nhiệt tình của bạn thức rất khuya để giúp đỡ cho mình.
    Khổng Tử nói: “Biết thì nói là biết, không biết thì nói là không biết", thật tình trước đây (>10 năm) mình cũng từng đã học qua access và visual rồi, nhưng học rồi cho qua luôn bởi từ đó đến nay cũng không có áp dụng. Module xuất sang excel cũng có mày mò lượm lặt của các cao thủ rồi nhưng lại không ứng dụng được (trong demo gửi lên cũng có), khổ nỗi ý tưởng muốn như vậy như mà không biết cách nào thực hiện, mạo mụi đặt câu hỏi để nhờ trợ giúp và sự giúp đỡ chân tình của các bạn là nguồn kiến thức vô giá đối với mình rồi.
    Một lần nữa rất cảm ơn và có lẽ còn lần sau nữa hihi...

    Between [Forms]![F_ThuocTonXuatNhap]![TuNgay] And [Forms]![F_ThuocTonXuatNhap]![DenNgay]

    Một câu này thôi là đáng giá ngàn vàng, giúp mình giải quyết được rất nhiều vấn đề.

    Và thêm một sự kiện này nữa ở ô đến ngày trên mainform: F_ThuocTonXuatNhapSub.Requery là ok ngay mọi cái đều ổn.
  • RE: Demo tổng hợp xuất Table, Query sang Excel có điều kiện

    DoquangLam > 05-02-15, 10:56 AM

    pass là gì vậy bạn
  • RE: Demo tổng hợp xuất Table, Query sang Excel có điều kiện

    maidinhdan > 05-02-15, 12:33 PM

    (05-02-15, 10:56 AM)DoquangLam Đã viết: pass là gì vậy bạn

    pass VBA: codobanghiep
  • RE: Demo tổng hợp xuất Table, Query sang Excel có điều kiện

    maidinhdan > 05-02-15, 12:49 PM

    (05-02-15, 08:26 AM)dinhnhieu Đã viết: Cảm ơn maidinhdanh rất nhiều vì sự nhiệt tình của bạn thức rất khuya để giúp đỡ cho mình.
    Khổng Tử nói: “Biết thì nói là biết, không biết thì nói là không biết", thật tình trước đây (>10 năm) mình cũng từng đã học qua access và visual rồi, nhưng học rồi cho qua luôn bởi từ đó đến nay cũng không có áp dụng. Module xuất sang excel cũng có mày mò lượm lặt của các cao thủ rồi nhưng lại không ứng dụng được (trong demo gửi lên cũng có), khổ nỗi ý tưởng muốn như vậy như mà không biết cách nào thực hiện, mạo mụi đặt câu hỏi để nhờ trợ giúp và sự giúp đỡ chân tình của các bạn là nguồn kiến thức vô giá đối với mình rồi.
    Một lần nữa rất cảm ơn và có lẽ còn lần sau nữa hihi...

    Between [Forms]![F_ThuocTonXuatNhap]![TuNgay] And [Forms]![F_ThuocTonXuatNhap]![DenNgay]

    Một câu này thôi là đáng giá ngàn vàng, giúp mình giải quyết được rất nhiều vấn đề.

    Và thêm một sự kiện này nữa ở ô đến ngày trên mainform: F_ThuocTonXuatNhapSub.Requery là ok ngay mọi cái đều ổn.

    Bạn dinhnhieu thân mến.

    Thật ra, trước giờ mình chẳng học qua lớp Access nào cả, mình chỉ có bằng A tin học thôi, hay theo học các ngôn ngữ lập trình VB, SQL, PHP, C, C++, Java...
    kiến thức có được đó là niềm say mê đọc sách và xem video trên Youtube.

    Nói chung, để có thể học tốt mình chỉ cần học tốt ngoại ngữ là ok, về ngoại ngữ mình cũng học trên youtube.

    Về Access mình mất rất nhiều năm để học nó bởi thầy mình là google và youtube, từ năm 2011 đến nay khi tham gia diễn đàn nay, đến ngày hôm nay sau khi học hỏi các anh/chị trên diễn đàn mình cũng tích lũy được ít kiến thức để hướng dẫn các bạn mới bắt đầu với Access này.

    Về giai đoạn khi học Access của mình.

    1. Mất 1 năm để học table
    2. Thêm nửa năm học Query
    3. Thêm 3 năm học form và code
    4. Sau chừng ấy mình học cách tự thiết kế ứng dụng và demo để sau này đem ra mà dùng.
    5. Hiện tại đang học cách tạo ra Funtions.
    6. Và khi kết thút Funtion mình sẽ tiếp tục học cách kết nối SQL cho tầng cơ sở dữ liệu lớn hơn qua mạng

    Cuối cùng: Để có kết quả tốt nhất khi học Access, là phải biết tìm ứng dụng và chia nhỏ làm demo để khi nào cần mình lấy ra sử dụng hoặc ôn lại kiến thức. Chứ không đụng một thời gian là sẽ quên đi thôi.

    Đó là những gì mình muốn chia sẽ cùng bạn.

    Chúc bạn có được như những gì bạn ước.
  • RE: Demo tổng hợp xuất Table, Query sang Excel có điều kiện

    maidinhdan > 05-02-15, 02:37 PM

    (05-02-15, 01:59 AM)maidinhdan Đã viết: Như lời đã hứa từ những hôm trước hôm nay xin mạo mụi gọi là tổng hợp chứ code không phải tự mình viết, chỉ ngâm cứu chỉnh sửa lại chút để ra thành bài Demo tổng hợp xuất Table, Query sang Excel có điều kiện

    Thông tin về demo:
    1. Xuất từ table ra file Excel theo mẫu Excel có sẳn và tự đặt tên;
    2. Xuất từ Query có đặt điều kiện ra file Excel theo theo mẫu Excel có sẳn và tự đặt tên.



    Form demo
    [Hình: demoxuatfile%20sang%20Access.png]

    Mẫu Excel dựng sẳn
    [Hình: maudemo.png]

    Demo: https://sites.google.com/site/congthucas...ects=0&d=1

    Nguồn được tổng hợp sưu tầm trên trang thuthuataccess.( Tác giả của code được đính trong demo)
    Pass VBA: ngày mai post. Vì sợ nó chạy lỗi. gần 1 giờ rồi040

    Pass VBA: codobanghiep

    up lại link hình code của các tác giả do lỗi linksite: https://sites.google.com
  • RE: Demo tổng hợp xuất Table, Query sang Excel có điều kiện

    maidinhdan > 07-02-15, 10:30 PM

    Bổ sung link mediafire:

    Demo: http://www.mediafire.com/download/l40a4z...opass).rar ( Không có đặt pass VBA)
  • RE: Demo tổng hợp xuất Table, Query sang Excel có điều kiện

    DoquangLam > 08-02-15, 11:16 AM

    Các bạn cho hỏi: Mình sd office 2003 thì đoạn code này có phải thay đổi gì không? Cám ơn.


    'Dinh nghia cac bien
    Dim Khach As Recordset
    Set Khach = CurrentDb.OpenRecordset("tblKhach", dbOpenTable)
    Dim Ex As Excel.Application
    Dim Wb As Workbook
    Dim Ws As Worksheet
    Dim TenFile
    'Xac dinh vi tri cac bien
    TenFile = CurrentProject.Path & "\Danh sach khach hang.xls"
    Set Ex = New Excel.Application
    Set Wb = Ex.Workbooks.Open(TenFile)
    Set Ws = Wb.Worksheets("Danh sach")
    k = Ws.Range("A65000").End(xlUp).Row
    'Loc va chuyen du lieu ra Ex
    If Khach.RecordCount = 0 Then MsgBox "Khong co du lieu de in", , "Xin loi": Exit Sub
    Khach.MoveFirst
    Do Until Khach.EOF
    n = Ws.Range("A65000").End(xlUp).Row
    If Ws.Range("A" & n) = "STT" Then Ws.Range("A" & n + 1) = 1 Else Ws.Range("A" & n + 1) = Ws.Range("A" & n) + 1
    Ws.Range("B" & n + 1) = Khach.Fields(0)
    Ws.Range("C" & n + 1) = Khach.Fields(1)
    Ws.Range("D" & n + 1) = Khach.Fields(2)
    Khach.MoveNext
    Loop
    'Dinh dang File Ex
    n = Ws.Range("A65000").End(xlUp).Row
    Ws.Range("A" & k + 1 & ":B" & n).HorizontalAlignment = xlCenter
    With Ws.Range("A" & k + 1 & "big green" & n)
    .Borders(xlEdgeLeft).LineStyle = xlContinuous
    .Borders(xlEdgeRight).LineStyle = xlContinuous
    .Borders(xlEdgeTop).LineStyle = xlContinuous
    .Borders(xlEdgeBottom).LineStyle = xlContinuous
    .Borders(xlInsideVertical).LineStyle = xlContinuous
    If n > k + 1 Then .Borders(xlInsideHorizontal).LineStyle = xlDot
    End With
    'Xoa bien, giai phong bo nho va cho Ex hien thi
    Khach.Close
    Ex.Visible = True
    Set Ex = Nothing
  • RE: Demo tổng hợp xuất Table, Query sang Excel có điều kiện

    maidinhdan > 08-02-15, 02:51 PM

    (08-02-15, 11:16 AM)DoquangLam Đã viết: Các bạn cho hỏi: Mình sd office 2003 thì đoạn code này có phải thay đổi gì không? Cám ơn.
    Mã:
    'Dinh nghia cac bien
        Dim Khach As Recordset
        Set Khach = CurrentDb.OpenRecordset("tblKhach", dbOpenTable)
        Dim Ex As Excel.Application
        Dim Wb As Workbook
        Dim Ws As Worksheet
        Dim TenFile
    'Xac dinh vi tri cac bien
        TenFile = CurrentProject.Path & "\Danh sach khach hang.xls"
        Set Ex = New Excel.Application
        Set Wb = Ex.Workbooks.Open(TenFile)
        Set Ws = Wb.Worksheets("Danh sach")
        k = Ws.Range("A65000").End(xlUp).Row
    'Loc va chuyen du lieu ra Ex
        If Khach.RecordCount = 0 Then MsgBox "Khong co du lieu de in", , "Xin loi": Exit Sub
        Khach.MoveFirst
        Do Until Khach.EOF
            n = Ws.Range("A65000").End(xlUp).Row
            If Ws.Range("A" & n) = "STT" Then Ws.Range("A" & n + 1) = 1 Else Ws.Range("A" & n + 1) = Ws.Range("A" & n) + 1
            Ws.Range("B" & n + 1) = Khach.Fields(0)
            Ws.Range("C" & n + 1) = Khach.Fields(1)
            Ws.Range("D" & n + 1) = Khach.Fields(2)
            Khach.MoveNext
        Loop
    'Dinh dang File Ex
        n = Ws.Range("A65000").End(xlUp).Row
        Ws.Range("A" & k + 1 & ":B" & n).HorizontalAlignment = xlCenter
        With Ws.Range("A" & k + 1 & ":D" & n)
            .Borders(xlEdgeLeft).LineStyle = xlContinuous
            .Borders(xlEdgeRight).LineStyle = xlContinuous
            .Borders(xlEdgeTop).LineStyle = xlContinuous
            .Borders(xlEdgeBottom).LineStyle = xlContinuous
            .Borders(xlInsideVertical).LineStyle = xlContinuous
            If n > k + 1 Then .Borders(xlInsideHorizontal).LineStyle = xlDot
        End With
    'Xoa bien, giai phong bo nho va cho Ex hien thi
        Khach.Close
        Ex.Visible = True
        Set Ex = Nothing

    Đây là code viết trên Office 2003 đã test thành công, Không có gì phải thay đổi cả. Nếu bạn copy code sang file Access mới thì chỉ cần khai báo thư viện
    Mã:
        Microsoft DAO 3.6 Object Lybary (hoặc hơn)
        Microsoft Excel 11 Object Lybary (hoặc hơn)
        Microsoft ActiveX Data Objects 2.8 Lybary (hoặc hơn)

    Xin nói thêm bạn đang áp dụng code của anh "Xuân Thanh" xuất nguyên table ra Excel. ( Nút đầu tiên trong demo)

    Chào bạn.
  • RE: Demo tổng hợp xuất 2 table vào 1 file Excel theo mẫu, được chỉ định vị trí trước

    maidinhdan > 25-03-15, 11:37 PM

    Đoạn code sau sẽ giúp xuất 2 table vào 1 file Excel theo mẫu, được chỉ định vị trí trước

    Đã test:
    Mã PHP:
    Private Sub cmdExport_Click()
    On Error Resume Next
    Dim db 
    As DAO.Database

    Dim rs1 
    As DAO.Recordset     ' table1'
    Dim rs2 As DAO.Recordset    'table2'

    Dim tb1 As String           ' table1'
    Dim tb2 As String           ' table2'

    Dim oApp As New Excel.Application
    Dim oBook 
    As Excel.Workbook
    Dim oSheet 
    As Excel.Worksheet

        Set oBook 
    oApp.Workbooks.Open(CurrentProject.Path "\Danh sach khach hang.xlt")
        
        
    tb1 "select * from tblKhach"              ' tblKhach là tên table 1'
        
    tb2 "select * from tblchu"                ' tblchu là tên table 2'
        
        
    Set oSheet oBook.Sheets("Danh Sach")
        
    Set db CurrentDb
        
    ' Chép dữ liệu từ table1 vào file Excel bắt đầu từ cột B dòng thứ 7'
        
    Set rs1 db.OpenRecordset(tb1dbOpenSnapshot)
        
    oSheet.Range("b7").CopyFromRecordset rs1         'b7: lla cot B dong thu 7'
        ' Chép dữ liệu từ table2 vào file Excel bắt đầu từ cột B dòng thứ 25'
        
    Set rs2 db.OpenRecordset(tb2dbOpenSnapshot)
        
    oSheet.Range("b25").CopyFromRecordset rs2       'b25: lla cot B dong thu 25'
    ' Xoa bien va giai phong bo nho dong thoi mo file Excel'
        
    rs1.Close
        rs2
    .Close
        oApp
    .Visible True
        oApp
    .UserControl True
        db
    .Close
    End Sub 

    Nếu muốn table 2 nạp vào sheet2 chẳng hạn thì thêm đoạn

    Mã PHP:
    Set oSheet oBook.Sheets("Sửa lại tên Sheet2"

    Chèn vào dưới chữ : Chép dữ liệu từ table2 vào file Excel bắt đầu từ cột B dòng thứ 25

    Ứng dụng: Ta có thể Export nhiều Table đến một file Excel theo mẫu dựng sẳn mà trong đó gồm nhiều mẫu báo cáo ( phần này sau khi làm xong Ứng dụng báo cáo thống kê số liệu mình sẽ post một số ảnh minh họa lên để chia sẽ cùng mọi người)

    Nếu không hay xin chém nhẹ tay.