Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Sử dụng query và các hàm trong report để hoàn thành báo cao nhanh nhất
#1
Mình có file đính kèm làm report mà chưa làm được theo mẫu vì 2 trường GiOI và TUOI bằng chữ (vì bắt buộc) mọi người giúp làm mẫu cho với, hoặc thiết kế báo cáo như nào nhanh gọn nhẹ
thank nhiêu
Link file: http://www.mediafire.com/download/r0hbce...0t/thu.rar
Chữ ký của trungminh trungminh,gia nhập Thủ Thuật Access từ 12-07 -16.
Reply
Những người đã cảm ơn
#2
(18-09-16, 11:29 AM)trungminh Đã viết: Mình có file đính kèm làm report mà chưa làm được theo mẫu vì 2 trường GiOI và TUOI bằng chữ (vì bắt buộc) mọi người giúp làm mẫu cho với, hoặc thiết kế báo cáo như nào nhanh gọn nhẹ
thank nhiêu
Link file: http://www.mediafire.com/download/r0hbce...0t/thu.rar

Bạn vào Word/Excel thiết kế kết quả bạn muốn rồi post hình lên. Mọi người sẽ giúp bạn nhanh hơn.

Nhớ phải điền luôn dữ liệu thì tốt hơn.

Thân!
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
Theo yêu cầu về cái báo cáo của bạn thì tôi phải làm qua 3 cái query mới ra kết quả. Bạn nào có cách khác tối ưu hơn thì đóng góp nhé.
- Query1 (qryKhoangTuoi): gán các khoảng tuổi (<1, 1-5, 5-15...) cho từng người trong table. Tôi đổi trường [TUOI] của bạn thành dạng Number để tính toán.
- Query2 (qrySoNguoi_KhoangTuoi): đếm số người trong từng khoảng tuổi.
- Query3 (qryThongKe): là crosstab query tổng hợp từ Query 2 để ra kết quả như mong muốn trong report.
 
[Hình: KhoangTuoi.png]

Link file: http://www.mediafire.com/download/xpxyzi...zv/THU.mdb


Góp ý:
- Trường [TUOI] trong table của bạn phải là dạng Number thì mới áp dụng query của tôi được. File hiện tại của bạn trường [TUOI] dạng TEXT thì không có xử lý tính toán gì được nhé (lại có thêm dòng "2 tháng"). Query 1 của tôi có thể không cần sử dụng trường [TUOI] của bạn, chỉ cần có trường [Ngày Sinh] của từng người là làm được. Câu lệnh SQL như bên dưới.

Mã PHP:
SELECT A.TUVONGA.Tuoi, Switch([Tuoi]>=And [Tuoi]<1,"<1",[Tuoi]>=And [Tuoi]<5,"1-<5",[Tuoi]>=And [Tuoi]<15,"5-<15",[Tuoi]>=15 And [Tuoi]<60,"15-<60",[Tuoi]>=60,"60+",True,Null) AS KhoangTuoiIIf(DatePart("m",[A]![NGAYSINH])=DatePart("m",Date()) And DatePart("d",[A]![NGAYSINH])=DatePart("d",Date()),CInt((DateDiff('d',[A]![NGAYSINH],Date())/365.25)),CInt((DateDiff('d',[A]![NGAYSINH],Date())/365.25)-0.5)) AS TuoiA.GIOI

FROM TUVONG 
AS A

- Như bạn nói các trường [TUOI], [GIOI] bắt buộc là text, không sửa được thì đây là do bạn thiết kế table chưa chuẩn. Vd rõ nhất là trường [TUOI] dạng text của bạn xem như vô dụng vì không sử dụng được gì để truy vấn, tính toán. Nếu chỉ để hiển thị trên form hay báo cáo thì chỉ cần dùng hàm Tính tuổi hoặc công thức dựa trên [Ngày sinh] là có rồi, không cần phải lưu thành 1 cột trên table cho lãng phí. (hàm tính tuổi trên diễn đàn có nhiều).
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn huuduy.duy , maidinhdan , trungminh , Noname
#4
Bạn thử file này xem sao nhé.
Tải file về và bạn chạy query thử nhé.
http://www.mediafire.com/download/87b6qx...BAOCAO.mdb
Chữ ký của Nguyen Hoang Diep Nguyen Hoang Diep,gia nhập Thủ Thuật Access từ 08-03 -16.
Reply
Những người đã cảm ơn maidinhdan , trungminh , Noname
#5
(19-09-16, 08:59 AM)Nguyen Hoang Diep Đã viết: Bạn thử file này xem sao nhé.
Tải file về và bạn chạy query thử nhé.
http://www.mediafire.com/download/87b6qx...BAOCAO.mdb

Theo như cái crosstab query của bạn thì bạn giải quyết đưa vô report theo từng nhóm: <1, 1-5, 5-15...như thế nào?

[Hình: xtab1.png]
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan , trungminh
#6
(18-09-16, 09:35 PM)ongke0711 Đã viết: Theo yêu cầu về cái báo cáo của bạn thì tôi phải làm qua 3 cái query mới ra kết quả. Bạn nào có cách khác tối ưu hơn thì đóng góp nhé.
- Query1 (qryKhoangTuoi): gán các khoảng tuổi (<1, 1-5, 5-15...) cho từng người trong table. Tôi đổi trường [TUOI] của bạn thành dạng Number để tính toán.
- Query2 (qrySoNguoi_KhoangTuoi): đếm số người trong từng khoảng tuổi.
- Query3 (qryThongKe): là crosstab query tổng hợp từ Query 2 để ra kết quả như mong muốn trong report.
 
[Hình: KhoangTuoi.png]

Link file: http://www.mediafire.com/download/xpxyzi...zv/THU.mdb


Góp ý:
- Trường [TUOI] trong table của bạn phải là dạng Number thì mới áp dụng query của tôi được. File hiện tại của bạn trường [TUOI] dạng TEXT thì không có xử lý tính toán gì được nhé (lại có thêm dòng "2 tháng"). Query 1 của tôi có thể không cần sử dụng trường [TUOI] của bạn, chỉ cần có trường [Ngày Sinh] của từng người là làm được. Câu lệnh SQL như bên dưới.

Mã PHP:
SELECT A.TUVONGA.Tuoi, Switch([Tuoi]>=And [Tuoi]<1,"<1",[Tuoi]>=And [Tuoi]<5,"1-<5",[Tuoi]>=And [Tuoi]<15,"5-<15",[Tuoi]>=15 And [Tuoi]<60,"15-<60",[Tuoi]>=60,"60+",True,Null) AS KhoangTuoiIIf(DatePart("m",[A]![NGAYSINH])=DatePart("m",Date()) And DatePart("d",[A]![NGAYSINH])=DatePart("d",Date()),CInt((DateDiff('d',[A]![NGAYSINH],Date())/365.25)),CInt((DateDiff('d',[A]![NGAYSINH],Date())/365.25)-0.5)) AS TuoiA.GIOI

FROM TUVONG 
AS A

- Như bạn nói các trường [TUOI], [GIOI] bắt buộc là text, không sửa được thì đây là do bạn thiết kế table chưa chuẩn. Vd rõ nhất là trường [TUOI] dạng text của bạn xem như vô dụng vì không sử dụng được gì để truy vấn, tính toán. Nếu chỉ để hiển thị trên form hay báo cáo thì chỉ cần dùng hàm Tính tuổi hoặc công thức dựa trên [Ngày sinh] là có rồi, không cần phải lưu thành 1 cột trên table cho lãng phí. (hàm tính tuổi trên diễn đàn có nhiều).

rất cảm ơn mọi người vì trường TUOI và GIOI là TEXT nên mình không biết cách làm còn trường TUOI và GIOI mà bằng NUMBER thì tính toán cũng dễ vì để dạng text thì không biết bé chết mấy tháng tuổi vì trong ngành y phải để tháng tuổi. Vì nhiều lý do họ không có ngày sinh nên chỉ biết tuổi và tháng tuôi thôi
Chữ ký của trungminh trungminh,gia nhập Thủ Thuật Access từ 12-07 -16.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
Question [Help] Làm sao để in được trang chẳn hoặc trang lẻ trong report access? nhattiensinh 6 1,069 11 Giờ trước
Bài mới nhất: MatTroiNguQuen
  [Help] thay đổi cách sắp xếp report bằng câu lệnh khi mở Rt tieuho828 1 45 Hôm nay, 12:24 AM
Bài mới nhất: maidinhdan
  [Help] Cho mình hỏi cách tạo report động theo ngày BayVeo 1 71 07-12-16, 09:09 PM
Bài mới nhất: maidinhdan
  Hướng Dẫn Cách sắp xếp report? tieuho828 0 30 03-12-16, 09:05 PM
Bài mới nhất: tieuho828
  [Help] Xin Giúp đỡ Dàn Report theo hàng ngang toi511 2 143 03-11-16, 01:10 PM
Bài mới nhất: toi511

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ