Đá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] Tạo báo cáo từ ngày đến ngày băng crosstab Query NguyenDungAnh 8 232 09-05-18, 10:26 AM
Bài mới nhất: NguyenDungAnh
  Bố trí dàn hàng của Sub Report trong Main Report DooHoaangPhuuc 4 157 16-04-18, 12:47 AM
Bài mới nhất: DooHoaangPhuuc
  [Help] Giúp đỡ về phân nhóm trong Report dothaipc 5 260 30-03-18, 09:42 AM
Bài mới nhất: dothaipc
  [Lỗi] Giúp đỡ Hàm dsum trong report bị lỗi thanhhau828 15 792 23-02-18, 10:54 PM
Bài mới nhất: MTNQ
  [Hỏi] Làm sao bỏ khoảng trắng giữa các dòng trong Sub Report ongke0711 15 1,362 06-02-18, 07:11 AM
Bài mới nhất: tieu_ngao

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