- Kỹ thuật thiết kế form đã trình bày ở các phần trên có thể gọi là Single- form. Sub-form là kỹ thuật thiết kế giao diện rất mạnh, đáp ứng được những yêu cầu xử lý dữ liệu phức tạp mà kỹ thuật Single-form chưa thể đáp ứng. Có thể hiểu Sub-form là việc form này lồng trong form kia (có thể lồng trong nhau nhiều lớp). Form chứa gọi là form mẹ (Main form); form được lồng vào gọi là form con (Sub-form). Việc xử lý dữ liệu trên từng form có thể xử lý độc lập hoặc có quan hệ với nhau tuỳ theo mục đích công việc.
- Sub-form có thể được sử dụng trong các loại form nhập dữ liệu, hoặc sử dụng để hiển thị dữ liệu.
- Dưới đây là ví dụ trình bày cách tạo Form bằng cách sử dụng kỹ thuật Main/Sub form.
Ví dụ: Thiết kế Form chính phụ có tên CapNhatHoaDon cho phép cập nhật thông tin chi tiếy hoá đơn của từng hoá đơn kết quả được hiển thị như hình sau:
Hình 121:Mô hình Form chính phụ.
Với yêu cầu này, phải tạo một form con cho phép hiển thị và nhập các thông tin về CHI_TIET_HOA_DON (1);
Phải tạo một form mẹ để nhập thông tin về HOA_DON bán hàng (2);
Phải kết nối form mẹ với form con thông qua trường MaHD.
Cách làm như sau (yêu cầu anh chị thực hiện theo đúng thứ tự công việc các bước):
Bước 1: Tạo form con (Sub form).
Sau đây là cách tạo Form con bằng Design view và anh chị có thể tiến hành tạo bằng Wizard.
1
- Tạo mới mới form ở chế độ Design View;
- Vì form con sẽ hiển thị dữ liệu dạng bảng nên phải thiết lập thuộc tính Default View cho form con là Datasheet;
- Thiết lập nguồn dữ liệu làm việc cho form con ở thuộc tính Record Source bằng cách nhấn nút … (hình dưới).
Hình 122: Chọn nguồn dữ liệu và thiết lập chế độ hiển thị của Form con.
Một màn hình thiết kế query xuất hiện. Hãy thiết lập query này như sau:
Hình 123: Chọn nguồn dữ cho Form con.
Sau khi xây dựng xong các trường trong Form con, ta nhấn vào biểu tượng Close đểđóng hộp thoại Query builder: Xuất hiện hộp thoại
Kích chuột vào
đây để đưa dữ
Hình 124: Lưu cách chọn trường bằng câu lệnh SQL.
Tại hộp thoại này ta nhấn Yes để lưu lại.
- Sử dụng cửa sổ Field List để đưa các trường cần thiết lên vùng Detail của form bao gồm: MaSP, SoLuong, ThanhTien;
- Tiến hành lưu lại form với một tên gọi (ví dụ: frmchitiethoadon) và đóng lại, chuẩn bị tạo form mẹ.
Hình 125: Trạng thái Form con sau khi thiết kế.
Bước 2: Tạo form mẹ (Main form)
Sau đây là cách tạo Form mẹ hay form chính bằng Design view và anh chị có thể tiến hành tạo bằng Wizard.
- Tạo mới mới form ở chế độ Design View;
- Vì Form mẹ hay form chính sẽ hiển thị dữ liệu dạng cột (Columnar) hay gọi là form dơn nên phải thiết lập thuộc tính Default View cho form con là Single Form.
- Thiết lập nguồn dữ liệu làm việc cho form con ở thuộc tính Record Source bằng cách nhấn nút … (hình dưới).
Hình 126: Chọn nguồn dữ liệu và thiết lập chế độ hiển thị của Form chính.
Một màn hình thiết kế query xuất hiện. Hãy thiết lập query này như sau:
Hình 127: Chọn nguồn dữ cho Form chính.
Sau khi xây dựng xong các trường trong Form chính, ta nhấn vào biểu tượng Close đểđóng hộp thoại Query builder: Xuất hiện hộp thoại
Hình 128: Lưu cách chọn trường bằng câu lệnh SQL.
Tại hộp thoại này ta nhấn Yes để lưu lại.
Kích chuột vào
đây để đưa dữ
- Sử dụng cửa sổ Field List để đưa các trường cần thiết lên vùng Detail của form bao gồm: MaHD, MaKH, MaNV, NgayLapHD, NgayGiaoHang;
Hình 129: Trạng thái Form con sau khi thiết kế.
Tiến hành đưa Form con vào Form mẹ
- Kích chuột vào biểu tượng Subform\Subreport trên thanh công cụ ToolBox, kích và rê chuột lên vùng cần đặt Form con trên Form mẹ. Sau khi chọn xong thì xuất hiện hộp thoại sau:
Hình 130: Chọn Form con để đưa vào Form mẹ.
Tại hộp thoại này ta tiến hành chọn tên form con (frmchitiethoadon) cần đưa lên ở danh sách Use an existing form. Chọn xong nhấn Finish.
(Có thể đưa form con lên form mẹ bằng cách dùng chuột gắp tên form con thả lên form mẹ)
- Ghi lại form với một tên gọi (ví dụ: frmhoadonbanhang) và đóng lại, kết thúc yêu cầu cơ bản bài toán, thu được kết quả như sau:
Hình 131: Kết quả thiết kế Main/Sub form.
Đối với ví dụ trên ta có thể tiến hành làm bằng phương pháp sau: Tạo một form Wizard để lấy nguồn dữ liệu từ các bảng sau:
+ Tại bảng HOA_DON: Chọn các trường MaHD, MaKH, MaNV, NgayLapHD, NgayGiaoHang.
+ Tại bảng CHI_TIET_HOA_DON: Chọn các trường MaSP, SoLuong, ThanhTien. Sau khi chọn xong các trường ta có kết quả như hình sau:
Hình 133: Tạo form chính phụ bằng wizard.
Nhấn Next để tiếp tục: xuất hiện hộp thoại
Tại hộp thoại này ta chọn: by HOA_DON; Form with subform(s) Để tiếp tục ta nhấn Next: Xuất hiện hộp thoại.
Hình 135: Tạo form chính phụ bằng wizard
Tại hộp thoại này ta chọn kiểu hiển thị cho form phụ là Datasheet. Để tiếp tục ta nhấn Next: Xuất hiện hộp thoại
Hình 136: Tạo form chính phụ bằng wizard
Để tiếp tục ta nhấn Next: Xuất hiện hộp thoại sau.
Hình 137: Tạo form chính phụ bằng wizard
Tại hộp thoại này ta tiến hành thiết lập:
+ Tại Form: Nhập tên của Form chính HOA DON BAN HANG + Tại Subform: Nhập tên của Form phụ CHI TIET HOA DON Nhấn Finish để hoàn tất việc tạo form chính phụ. Ta có kết quả hiển thị như hình sau.
Hình 138: Kết quả thực thi Form chính phụ.
BÀI 7. BÁO CÁO REPORT
Mục đích
Tạo các báo cáo (report) mang tính chất thống kê, tổng hợp thông tin từ dữ liệu có trong CSDL.
Chương này sẽ trình bày từ những khái niệm căn bản về thiết kế in ấn, về Report của Access đến tiếp cận những kỹ thuật in ấn phức tạp như:
report có tham số, sub-report,..
Kết thúc chương, học viên hoàn toàn có thể thiết kế được những mẫu
biểu in ấn ơn giản đến những biểu phức tạp phục vụ nhu cầu in ấn đa dạng
trong các bài toán thực tế từ CSDL. Nội dung cụ thể bao gồm:
Các khái niệm về Report; Sử dụng report wizard; Sử dụng report design view; Kỹ thuật sub-report;