Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Crosstab trong crosstab
#1
[Hình: 2018a8d3634f-c9ae-4fab-a201-f9d350ef5a26.png]
[Hình: 20185cae0d79-79ee-4a6e-bde7-0e17ee87535c.png]
Chào các bạn, mình có table như hình 1, giờ muốn in report ra theo mẫu như hình 2 thì làm cách nào. 



Mình đã tạo dc query trả về kết quả này nhưng có điều nguyen a có 2 dòng nó không gom lại 1 dòng, với thêm nguyen d để trống thì nó lại hiện thêm cột <>.
Các bạn giúp mình với.
[Hình: 2018c8694bed-7689-4111-b29a-da3401277000.png]
[Hình: 2018a8d9ee7f-f5b3-450f-8c80-d90e94e36e8d.png]
Chữ ký của mrsiro Xin chào, mình là mrsiro, Tham gia http://thuthuataccess.com/forum từ ngày 05-12 -14.
Reply
Những người đã cảm ơn
#2
- Nếu bạn bỏ cột [ngày] đi thì nó sẽ group tên thành 1 dòng.
- Để bỏ cột "<>" thì bạn thêm điều kiện: Not Is Null cho cột [mon] để loại bỏ record có giá trị Null.
- Về định dạng report như bạn y/c thì Access không mạnh về định dạng báo cáo như excel nên cái format này sẽ khó thiết kế. Bên cạnh đó, Report của Access phải cố định số cột vì chỉ thiết kế một lần rồi chạy do vậy bạn xem lại kiểu định dạng này nó có phù hợp không khi số [môn] thay đổi thêm các môn khác ngoài 3 môn trên? Nếu thêm các môn lại vô report thiết kế lại (thêm cột) -> sai. Hơn nữa nếu bạn dàn hàng ngang liệu có đủ khổ giấy để in không? VD: in thời gian 30 ngày - 10 môn =>300 cột hàng ngang. Report của Access chỉ cho phép tối đa 256 cột.

Do vậy tôi nghĩ tốt nhất là bạn thiết kế lại định dạng cho báo cáo để phù hợp với Access hơn.

Ví dụ:

               Môn               | 1/1/2018  |  2/1/2018  |  3/1/2018 |
-----------------------------------------------------------------
Nguyen A                    |           |            |           |
              Anh Van       |      2    |       1    |           |
              Toan          |           |            |     1     |
              Van           |      1    |       1    |           |
Nguyen B
              Anh Van
              Toan
              Van
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 mrsiro
#3
(11-02-18, 06:08 PM)ongke0711 Đã viết: - Nếu bạn bỏ cột [ngày] đi thì nó sẽ group tên thành 1 dòng.
- Để bỏ cột "<>" thì bạn thêm điều kiện: Not Is Null cho cột [mon] để loại bỏ record có giá trị Null.
- Về định dạng report như bạn y/c thì Access không mạnh về định dạng báo cáo như excel nên cái format này sẽ khó thiết kế. Bên cạnh đó, Report của Access phải cố định số cột vì chỉ thiết kế một lần rồi chạy do vậy bạn xem lại kiểu định dạng này nó có phù hợp không khi số [môn] thay đổi thêm các môn khác ngoài 3 môn trên? Nếu thêm các môn lại vô report thiết kế lại (thêm cột) -> sai. Hơn nữa nếu bạn dàn hàng ngang liệu có đủ khổ giấy để in không? VD: in thời gian 30 ngày - 10 môn =>300 cột hàng ngang. Report của Access chỉ cho phép tối đa 256 cột.

Do vậy tôi nghĩ tốt nhất là bạn thiết kế lại định dạng cho báo cáo để phù hợp với Access hơn.

Ví dụ:

               Môn               | 1/1/2018  |  2/1/2018  |  3/1/2018 |
-----------------------------------------------------------------
Nguyen A                    |           |            |           |
              Anh Van       |      2    |       1    |           |
              Toan          |           |            |     1     |
              Van           |      1    |       1    |           |
Nguyen B
              Anh Van
              Toan
              Van

Số môn cố định 3 môn, mỗi lần lấy chỉ 5 ngày trong tuần. Thiết kế như cách của bạn mẫu in ra rất xấu bời vì cứ 1 giáo viên lại lặp lại 3 dòng anh văn toán văn, có tổng cộng 100 giáo viên => in ra 300 dòng. Mẫu in ra sẽ rất dài tốn nhiều trang.
Dòng ngày trên report mình nghĩ chỉ cần 1 txtbox rồi để giá trị ngày vào là đủ. Chủ yếu là dòng toán anh văn. Nếu sử dụng crosstab thì cho cột môn làm column header, vào gán điều kiện cho cột này là theo từng ngày, ví dụ cột toán của ngày 01/01, cột toán của 02/01, tương tự cho 2 môn kia, 5 ngày trong tuần mỗi ngày 3 môn thì trong query lấy đủ 15 cột, sau khi ra đủ số cột cần thiết trong query thì chỉ cần đưa vào control soucer trên report là được. Nhưng ý tưởng là như thế nhưng mình không thực hiện được.
Chữ ký của mrsiro Xin chào, mình là mrsiro, Tham gia http://thuthuataccess.com/forum từ ngày 05-12 -14.
Reply
Những người đã cảm ơn
#4
Bạn không làm được là đúng rồi. Vì Cross Query không hỗ trợ cái mà bạn nói. Bạn phải đọc kỹ các khái niệm khi sử dụng hoặc khi nó báo lỗi. Bạn phải dùng cách khác để biểu diễn thôi
Chữ ký của duynamvnn1208 duynamvnn1208,gia nhập Thủ Thuật Access từ 25-06 -17.
Reply
Những người đã cảm ơn maidinhdan


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Help] Nhờ giúp đỡ về tự động co dãn dòng trong report! NguyenDungAnh 14 525 18-10-18, 08:42 AM
Bài mới nhất: bằng lăng
  Xin hỏi cách : Tùy chọn thêm bớt cột báo cáo trong access ledangvan 10 492 15-10-18, 05:29 PM
Bài mới nhất: NguyenDungAnh
Wink Hướng Dẫn Diễn giải trong report ladanavn 4 333 21-09-18, 05:51 PM
Bài mới nhất: tranthanhan1962
  [Help] Đổi tên hàng loạt textbox trong report NguyenDungAnh 4 261 05-09-18, 07:56 PM
Bài mới nhất: ongke0711
  Hướng Dẫn Lấy tên cán bộ trong report bằng lăng 3 334 31-08-18, 10:46 AM
Bài mới nhất: ledangvan

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ơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line