-
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
Mẫu Excel dựng sẳn
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ồi
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(tb1, dbOpenSnapshot)
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(tb2, dbOpenSnapshot)
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: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
Mẫu Excel dựng sẳn
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ồi
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 & "" & 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(tb1, dbOpenSnapshot)
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(tb2, dbOpenSnapshot)
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.