Cần giúp đỡ sử dụng Pivot table trong Access

Liên hệ QC

thuatnguyen

Thành viên mới
Tham gia
16/4/11
Bài viết
33
Được thích
6
Em có vấn đề này cần mọi người giúp đỡ,

Trong Access em có table gồm các các fileds: Location (mã văn phòng ở các tỉnh), ADName (tên những người đứng đầu 1 team, mỗi văn phòng có 2 hoặc nhiều team), Team_ID ( mã team), Code_ID ( code của mỗi thành viên trong team), Name (tên thành viên), Amonut ( số tiền mỗi thành viên sales được).

Thông thường em copy thông tin từ table ra file excel (Anh/Chị vui lòng xem file excel đính kèm giúp em),từ sheet detail em Pivot table sau đó từ sheet pivot em tách từng sheet theo ADName và đặc lại tên sheet ( rất thủ công và mất thời gian hic hic, vì thực tế data trong công việc của em rất nhiều văn phòng và ADName), sau khi tách ra như vậy em có file summary như đính kèm , từ file summary em lại phải dùng động tác Move or Copy để tách ra thành 3 khu vực, mỗi khu vực 1 file excel, KV1 gồm Location HAN, HAP, KV2 gồm HCM, BHO, VTU, và KV3 gồm TGA, KGA,

Anh/Chị nào có cách nào khác có thể thực hiện công việc trên một cách nhanh hơn cách thủ công của em vui lòng giúp em nhé! trên excel cũng được, Access càng tốt vì data em lấy ra từ Access

Thanks & Regard.
 

File đính kèm

  • Summary.rar
    7.4 KB · Đọc: 48
  • Summaryexcel.rar
    5.6 KB · Đọc: 46
Kiểu này, dùng report trong Access là ngon rồi cần gì phải qua excel nhỉ
Bạn xem 3 cái report mình chỉ dùng Vizard thôi đã sơ bộ rồi( luu y rp3 mỗi bảng 1 trang nên chọn trang xem nha)
 

File đính kèm

  • Summary.rar
    24.3 KB · Đọc: 203
Lần chỉnh sửa cuối:
Cám ơn Anh sealand!

em đã nghiên cứu và làm như hướng dẫn của Sealand, như vậy mỗi Location là 1 file nhanh hơn cách em đã dùng Pivot trên excel, và không phai lo nghĩ đặt lại tên từng sheet ( nhiều nên dể nhầm)

nhưng có nhiều location quá nên hơi nhiều file, vậy em muốn chỉ có 3 file excel thôi, và mỗi file excel gồm nhiều location và mỗi location trong 1 sheet thôi ( không phải nhiều location trong cùng 1 sheet), Anh/ Chị nào có thủ thuật nào nhanh hơn giúp em nhé!

Thanks.
 
Cám ơn Anh sealand!

em đã nghiên cứu và làm như hướng dẫn của Sealand, như vậy mỗi Location là 1 file nhanh hơn cách em đã dùng Pivot trên excel, và không phai lo nghĩ đặt lại tên từng sheet ( nhiều nên dể nhầm)

nhưng có nhiều location quá nên hơi nhiều file, vậy em muốn chỉ có 3 file excel thôi, và mỗi file excel gồm nhiều location và mỗi location trong 1 sheet thôi ( không phải nhiều location trong cùng 1 sheet), Anh/ Chị nào có thủ thuật nào nhanh hơn giúp em nhé!

Thanks.

Gợi ý cho bạn: Tạo 1 form làm điều kiện, trong form có 1 combo lấy dữ liệu là trường location (Nhớ group trường này lại), dùng combo này làm điều kiện để lọc dữ liệu khi truy vấn report.
 
Theo tôi hiểu thì file summary của bạn là kết quả từ nhiều table của các location. Và bạn đang làm qua trung gian Excel.
Có thể làm tất cả trên access nếu bạn cho tất cả những table dữ liệu nguồn hoặc những file dữ liệu nguồn. Quy trình là:

Tạo 1 table là DS những location, mỗi location có mã Location, tên location, và 1 trường phân loại. Trường phân loại là trường có 3 giá trị I, II, III (gọi là trường "khu vực" cũng được. Dữ liệu tổ chức như vậy khoa học hơn.
Từ tất cả table của tất cả location, Dùng Union Query gộp về thành 1 query
Phân nhóm I, II, III bằng select query với 1 join
Ra báo cáo tuỳ thích.

(Có thể chỉ cần 1 report cho 2, 3 báo cáo cùng cấu trúc)
 
Theo tôi hiểu thì file summary của bạn là kết quả từ nhiều table của các location. Và bạn đang làm qua trung gian Excel.
Có thể làm tất cả trên access nếu bạn cho tất cả những table dữ liệu nguồn hoặc những file dữ liệu nguồn. Quy trình là:

Tạo 1 table là DS những location, mỗi location có mã Location, tên location, và 1 trường phân loại. Trường phân loại là trường có 3 giá trị I, II, III (gọi là trường "khu vực" cũng được. Dữ liệu tổ chức như vậy khoa học hơn.
Từ tất cả table của tất cả location, Dùng Union Query gộp về thành 1 query
Phân nhóm I, II, III bằng select query với 1 join
Ra báo cáo tuỳ thích.

(Có thể chỉ cần 1 report cho 2, 3 báo cáo cùng cấu trúc)

Em suy nghĩ theo hướng khác là đưa file ra luôn Excel, mỗi một Location ra 1 sheet riêng theo lựa chọn.
 
Phương án cua anh Mỹ theo mình là chuẩn mực:
-Chắc chắn trong file đã có Table: Danhmuc Location, trong đó ta có thể bổ xung Field: Nhom (Nếu nó chua có) mà không ảnh hưởng gì
-Cần nhóm nào ta mở nhóm đó đâu có cần làm sẵn la liệt ra, lúc này cần làm cái gì khác thì xuất kết quả ra Excel chưa muộn, dùng xong vô tư bỏ vì ta có thể xuất được.
-Nó gọn gàng không phải lỉnh kỉnh sử dụng nhiều PM khác nhau, nhất là người không quen thì sai sót là khó tránh.

Nên tạo 1 form để nhập các thông số lựa chọn cho Query và Report, như vậy cần gì ta nhập vào. Đảm bảo file của bạn sẽ linh hoạt mềm dẻo hơn trong kết xuất kết quả.
Tại vì không có file cụ thể nên phỏng đoán và tham gia vậy.
 
Phương án cua anh Mỹ theo mình là chuẩn mực:
-Chắc chắn trong file đã có Table: Danhmuc Location, trong đó ta có thể bổ xung Field: Nhom (Nếu nó chua có) mà không ảnh hưởng gì
-Cần nhóm nào ta mở nhóm đó đâu có cần làm sẵn la liệt ra, lúc này cần làm cái gì khác thì xuất kết quả ra Excel chưa muộn, dùng xong vô tư bỏ vì ta có thể xuất được.
-Nó gọn gàng không phải lỉnh kỉnh sử dụng nhiều PM khác nhau, nhất là người không quen thì sai sót là khó tránh.

Nên tạo 1 form để nhập các thông số lựa chọn cho Query và Report, như vậy cần gì ta nhập vào. Đảm bảo file của bạn sẽ linh hoạt mềm dẻo hơn trong kết xuất kết quả.
Tại vì không có file cụ thể nên phỏng đoán và tham gia vậy.

Dùng Report như anh, kết hợp với bài gợi ý của em là đã theo như ý muốn tác giả, ở đây ý em muốn nói thêm là dùng ADO để kết xuất dữ liệu giống như file mẫu Excel của bạn ấy, dĩ nhiên là mình lựa chọn location nào thì chỉ có location đó mới được kết xuất ra, nếu lựa chọn location nhiều loại thì kết xuất mỗi loại ra 1 sheet riêng.
 
Dùng Report như anh, kết hợp với bài gợi ý của em là đã theo như ý muốn tác giả, ở đây ý em muốn nói thêm là dùng ADO để kết xuất dữ liệu giống như file mẫu Excel của bạn ấy, dĩ nhiên là mình lựa chọn location nào thì chỉ có location đó mới được kết xuất ra, nếu lựa chọn location nhiều loại thì kết xuất mỗi loại ra 1 sheet riêng.

Không cần nhiều query hoặc SQL đâu. Nếu khéo thì 1 query duy nhất, còn lọc thì set Filter của report theo chọn lựa trên form của Dom.
Còn vụ ra Excel, cũng tuỳ ý bằng Access được bằng cách export Report.
Tôi đang làm 1 file mẫu.
 
Lần chỉnh sửa cuối:
Dùng Report như anh, kết hợp với bài gợi ý của em là đã theo như ý muốn tác giả, ở đây ý em muốn nói thêm là dùng ADO để kết xuất dữ liệu giống như file mẫu Excel của bạn ấy, dĩ nhiên là mình lựa chọn location nào thì chỉ có location đó mới được kết xuất ra, nếu lựa chọn location nhiều loại thì kết xuất mỗi loại ra 1 sheet riêng.

Nếu muốn giữ file mẫu của tác giả thì mình cũng không dùng ADO vì 2 "thằng" này cùng mẹ đẻ ra nên nó có chức năng rất hay là Link Table. Ta chỉ việc link sheet detail với Table là OK, nó vừa nhanh nhạy thậm chí còn sửa được trên Excel.

Không cần nhiều query hoặc SQL đâu. Nếu khéo thì 1 query duy nhất, còn lọc thì set Filter của report theo chọn lựa trên foem của Dom.
Cò vụ ra Excel, cũng tuỳ ý bằng Access được bằng cách export Report.
Tôi đang làm 1 file mẫu.

Đúng anh Mỹ ạ, thậm chí không cần Query cũng ổn vì Report nó cũng có Filter cơ mà. Tóm lại, thừa công cụ đạt mục đích.
 
Lần chỉnh sửa cuối:
Em dùng code sau để kết xuất:

Mã:
Private Sub cmdOK_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim mySQL As String
Dim oApp As New Excel.Application
Dim oBook As Excel.Workbook
Dim oSheet As Excel.Worksheet
Set oBook = oApp.Workbooks.Add
Dim i As Integer
Dim iNumCols As Integer
Dim frm As Form
Dim ctl As Control
Dim varItm As Variant
Set frm = Forms![Form1]
Set ctl = frm!lstQuery
lblMsg.Visible = True
For Each varItm In ctl.ItemsSelected
    txtLocation = ctl.ItemData(varItm)
    mySQL = "select * from tbInfo where Location='" & txtLocation & "'"
    Set oSheet = oBook.Sheets.Add
    oSheet.Name = txtLocation
    lblMsg.Caption = "Ñang xuaát sang sheet: " & vbNewLine & txtLocation

    Set db = CurrentDb
    Set rs = db.OpenRecordset(mySQL, dbOpenSnapshot)
    iNumCols = rs.Fields.Count
    For i = 1 To iNumCols
        oSheet.Cells(1, i).Value = rs.Fields(i - 1).Name

    Next
    oSheet.Range("A2").CopyFromRecordset rs

    ctl.Selected(varItm) = False
Next varItm
rs.Close
mySQL = "select Location, ADName, Sum(Amount) as Total from tbInfo Group by Location, adname"
    Set oSheet = oBook.Sheets.Add
    oSheet.Name = "Summary"
    lblMsg.Caption = "Ñang xuaát sang sheet: " & vbNewLine & "Summary"

    Set db = CurrentDb
    Set rs = db.OpenRecordset(mySQL, dbOpenSnapshot)
    iNumCols = rs.Fields.Count
    For i = 1 To iNumCols
        oSheet.Cells(1, i).Value = rs.Fields(i - 1).Name

    Next
   
    oSheet.Range("A2").CopyFromRecordset rs
 

lblMsg.Visible = False
oApp.Visible = True
oApp.UserControl = True
rs.Close
db.Close

End Sub

P/S: Nếu chọn nhiều location thì cứ lick chọn tùy ý, bỏ chọn thì click lại lần nữa.
 

File đính kèm

  • Summary.rar
    48.8 KB · Đọc: 23
Em dùng code sau để kết xuất:

.......Code ......
P/S: Nếu chọn nhiều location thì cứ lick chọn tùy ý, bỏ chọn thì click lại lần nữa.

Đọc code thấy ngợp! Dùng mọi thứ có sẵn của Access, code thì đơn giản, form thì đẹp (khà khà)
Chỉ 2 report, mỗi report chỉ 1 query, lọc 4 mục, xem bằng 2 cách khác nhau, ra 12 cái báo cáo khác nhau.

Nếu muốn Group theo team nữa, chỉ cần sửa Report và code của report, không cần thêm query.

Summary01.jpg ----- Summary02.jpg

Chon xem báo cáo mọi khu vực hoặc từng khu vực (I, II, III) trong combobox
Chọn xem báo cáo tổng hợp hoặc chi tiết bằng 1 trong 2 toggle button
Chọn liệt kê Team hay không bằng 1 trong 2 ratio button

Nhấn nút preview để xem và in.
Nhấn nút To Excel để export

TB:
- Xem relation giữa 2 table
- Xem cả tiêu đề báo cáo: thay đổi theo combobox
- Nếu phục vụ cho việc nhập liệu nữa, thì nên tạo thêm table TeamList, và table StaffList. Tạo thêm những mối quan hệ cần thiết.
 

File đính kèm

  • Summary.rar
    27.8 KB · Đọc: 44
Lần chỉnh sửa cuối:
Cám ơn tất cả những bài viết trong topic này

Cám ơn Anh ntm0412, anh domfootwear rất nhiều…

2 bài mẫu trên giúp ích cho em rất nhiều trong công việc hiện tại của em,

-Bài mẫu của anh domfootwear sẽ phù hợp với report của em hơn vì xuất theo văn phòng nên số dòng rất nhiều và thông tin trên mỗi dòng gồm nhiều cột.

-Bài mẫu của anh ntm0412 rất hay và em sẽ sử dụng form mẫu này áp dụng cho nhiều mục đích khác


Em thấy các Anh sử dụng VBA trên access cũng như excel để xử lí quá tuyệt vời , em ở HCM muốn học VBA từ cơ bản đến nâng cao thì học ở đâu vậy các Anh, vì nếu em ứng dụng được VBA thì công việc của em sẽ giải quyết được rất rất nhiều vân đề, xin cám ơn

[FONT=&quot]Thanks & Regard.[/FONT]
 
Lần chỉnh sửa cuối:
Chào các bác!
Em là thành viên mới gia nhập diễn đàn. Các bác làm ơn chỉ giáo cho em tính năng Private Table trong excel. Minh hoạ giúp em bằng một ví dụ nhé. Private Table có khác với Pivot Table không?
Cám ơn các bác nhìu nhìu!
 
Trước tiên bạn nên xem ở các linh sau:

Link No. 1
Link No.2
Link No.3

Nhưng mình thực sự không hiểu Private Table là cái chi, bạn thử cho ví dụ xem sao?
 
Lần chỉnh sửa cuối:
VBA em còn hạn chế, bài trong bài mẫu của anh domfootwear các anh /chi giúp em khi xuất ra excel thì ẩn các sheet 1,2, và 3 nhé!
thanks
 
Lần chỉnh sửa cuối:
VBA em còn hạn chế, bài trong bài mẫu của anh domfootwear các anh /chi giúp em khi xuất ra excel thì ẩn các sheet 1,2, và 3 nhé!
thanks
Bạn cho thêm 1 vòng lặp duyệt qua các tên sheet, nếu có sheet nào tên là sheet* thì ẩn hoặc xóa đi.
 
em thử để một vòng lặp và xoá sheet1 nhưng chỉ xoá được khi xuất file lần đầu tiên, xuất file lần sau thi báo lỗi, anh xem giúp em nhé,

một chỗ nữa em cần giúp đỡ là khi chưa chọn location nào mà nhấn OK thì cũng báo lỗi, Cám ơn Anh

hic, sao em hok thấy chổ nào để gửi tập tin đính kèm
 
Lần chỉnh sửa cuối:
em thử để một vòng lặp và xoá sheet1 nhưng chỉ xoá được khi xuất file lần đầu tiên, xuất file lần sau thi báo lỗi, anh xem giúp em nhé,

một chỗ nữa em cần giúp đỡ là khi chưa chọn location nào mà nhấn OK thì cũng báo lỗi, Cám ơn Anh

hic, sao em hok thấy chổ nào để gửi tập tin đính kèm
Bạn xem lại file coi đúng ý chưa nhé.
 

File đính kèm

  • Chuyen sang Sheet Excel.rar
    49.1 KB · Đọc: 16
Web KT

Bài viết mới nhất

Back
Top Bottom