Xem mẫu

  1. Bài 4 Xây dựng FORM Giới thiệu: Truy vấn query mới chỉ giúp truy xuất và xử lý tính toán trên dữ liệu và hiển thị kết quả dƣới dạng bảng đơn điệu. Với công cụ form, dữ liệu sẽ đƣợc hiển thị dƣới dạng các Form có thể xem, nhập, hiệu chỉnh dữ liệu, hoặc có thể dùng form để tạo ra các hộp thoại nhằm thiết lập các tùy chọn cho công việc quản lý của mình. Đây là công cụ tạo ra giao diện của một bài trình quản lý bằng Access. Mục tiêu: - Hiểu đƣợc chức năng và đặc trƣng của Form. - Biết các dạng Form thông dụng. - Hiểu đƣợc chức năng và thuộc tính của các đối tƣợng trên Form. - Biết đƣợc các cách thiết kế Form: Form Wizard, DesignView,... - Thiết kế đƣợc các form nhập liệu, form tra cứu dữ liệu cơ bản làm tiền đề cho việc tạo ra các sản phẩm phần mềm hoàn thiện. - Nghiêm túc, sáng tạo trong việc tạo ra các Form. Nội dung: 4.1 Form và ứng dụng 4.1.1 Khái niệm về Form Form là một loại đối tƣợng trong cơ sở dữ liệu Access đƣợc thiết kế để: - Hiển thị dữ liệu bảng dƣới dạng thuận tiện để xem, nhập và sửa dữ liệu. - Thực hiện các thao tác thông qua các nút lệnh 4.1.2 Ứng dụng của Form Form cung cấp một khả năng thuận lợi để hiển thị dữ liệu. Chúng ta có thể xem mọi thông tin của một bản ghi thay vì ở chế độ Datasheet nghèo nàn trƣớc đây bằng chế độ Form View, một phƣơng cách tiên tiến hơn. Sử dụng Form tăng khả năng nhập dữ liệu, tiết kiệm thời gian và ngăn ngừa các lỗi do đánh sai. Chẳng hạn thay vì gõ vào các giá trị của tất cả các trƣờng chúng ta có thể tạo những danh sách (gọi là combo box) để chọn trên Form (đây là phƣơng cách áp dụng rất hiệu quả để tránh đánh sai dữ liệu). Form cung cấp một hình thức trình bày hết sức tiện nghi để xem, nhập và hiệu chỉ các bản ghi trong CSDL. Access cung cấp các công cụ thiết kế Form hỗ 87
  2. trợ rất đắc lực cho chúng ta trong việc thiết kê những Form dễ sử dụng mà lại có thể tận dụng đƣợc các khả năng: Hình thức thể hiện dữ liệu đẹp, trình bày lôi cuốn với các kiểu font và hiệu ứng đồ họa đặc biệt khác ... Quen thuộc với ngƣời sử dụng vì nó giống các Form trên giấy thông thƣờng. Có thể tính toán đƣợc. Có thể chứa cả biểu đồ. Có thể hiển thị dữ liệu từ nhiều bảng (hoặc truy vấn) Tự động hóa một số thao tác phải làm thƣờng xuyên. 4.1.3 Kết cấu của Form Các thông tin trên Form có thể lấy dữ liệu từ một bảng hay truy vấn nào đó, nhƣng cũng có thể độc lập đối với cả bảng lẫn truy vấn, chẳng hạn nhƣ các đối tƣợng đồ họa. Dáng vẻ trình bày của Form đƣợc thực hiện trong quá trình thiết kế. Tất cả các thông tin thể hiện trên Form đƣợc chứa trong những đối tƣợng gọi là điều khiển (control). Điều khiển có thể dùng để thể hiện dữ liệu hoặc thực hiện các hàng động hoặc trang trí cho Form. Một số điều khiển đƣợc buộc vào với các trƣờng của bảng hay truy vấn, gọi là bảng cơ sở hay truy vấn cơ sở. Do đó chúng ta có thể dùng Form để nhập dữ liệu vào các trƣờng hay lấy dữ liệu từ các trƣờng đó ra để xem. Ví dụ dùng Text box để nhập hay hiển thị chuỗi và số, dùng Object frame để thể hiện hình ảnh. Một số điều khiển khác trình bày thông tin đƣợc lƣu trữ trong thiết kế bảng. Ví dụ dùng Label (nhãn) để thể hiện thông tin có tính chất mô tả; đƣờng và các hình khối để tổ chức dữ liệu và làm Form có hình thức hấp dẫn hơn. 4.2 Phân loại Form Các loại Form - Form dữ liệu: + Thể hiện dữ liệu lấy từ một hoặc nhiều table/query + Thƣờng dung để cập nhật dữ liệu vào các bảng có liên quan - Form hộp thoại: + Không chứa dữ liệu chỉ chứa các ô điều khiển + Là phƣơng tiện giao tiếp giữa ngƣời sử dụng và hệ thống 88
  3. - Các dạng Form dữ liệu + Form dạng cột( Columnar) Hình 4.1. Form dạng cột + Form dạng bảng( Tabular) Hình 4.2. Form dạng bảng + Form dạng hàng( Justified) Hình 4.3. Form dạng hàng 89
  4. + Form dạng bảng dữ liệu(Datasheet) Hình 4.4. Form dạng bảng dữ liệu + Form chính/phụ(Main/Sub form) Hình 4.5. Form chính/phụ 4.3 Các phƣơng pháp tạo Form 4.3.1 Tạo Form với Split form Access cung cấp chức năng Split form cho phép chúng ta tạo Form dựa trên các bảng hoặc truy vấn đã đƣợc xây dựng trƣớc đó. Cách tạo + Trong cửa sổ Database, ta chọn bảng hoặc truy vấn làm nguồn dữ liệu cho Form. + Trong Menu Create/ Chọn Split form Hình 4.6. Cửa sổ Split form 90
  5. Ví dụ Cho bảng Danhsach( Tenphong, hoten, ngayden, ngaydi, thanhtien) Hãy thiết kế Form dựa trên chức năng Split form sử dụng bảng Danhsach làm nguồn dữ liệu. Hình 4.7. Form dạng Split form 4.3.2 Tạo Form sử dụng Wizard * Cách tạo Trong cửa sổ Database chọn Menu Create/ chọn More Form, chọn Form Wizard Hình 4.8. Mô tả thao tác chọn các trường đưa vào Form Trong mục Tables/ Queries: Chọn dữ liệu nguồn từ bảng hay từ truy vấn. Trong mục Avaiable Field: Chọn các trƣờng đƣa vào Form, nhấn nút >> Chọn nút Next. Chọn Columnar : Form hiển thị theo dạng cột 91
  6. Tabular: Form hiển thị theo dạng hàng Datasheet: Form hiển thị theo dạng bảng Justified: Form hiển bình thƣờng (đều). Chọn Next Hình 4.9. Hình ảnh chọn kiểu hiển thị các trường Chọn loại Form Chọn Next Đặt tiêu đề cho Form Hình 4.10. Mô tả thao tác chọn tiêu đề cho Form Chọn Open the form to view or enter information: Nếu muốn mở Form sau khi chọn Finish 92
  7. Chọn Modify the form’s design: Nếu muốn form ở dạng thiết kế. Chọn Finish Hình 4.11. Mô tả thiết kế Form ở dạng thiết kế Lƣu lại form. * Sử dụng form đã tạo đƣợc vào việc nhập dữ liệu: Chọn form, nhấn nút Open. Nếu form đang ở chế độ thiết kế có thể nhấn nút View trên thanh công cụ. Lúc này có thể sử dụng form để cập nhật dữ liệu: Hình 4.72. Mô tả thao tác mở Form sau khi thiết kế Tại mỗi thời điểm, form nhập dữ liệu chỉ hiển thị giá trị của một bản ghi. Bạn có thể nhập, sửa trực tiếp các trƣờng của bản ghi hiện tại trên form này. Thanh định hƣớng (Navigator bar) sẽ giúp xử lý một số thao tác trên form, cách sử dụng nhƣ sau: - Nút để chuyển đến bản ghi kề trƣớc; - Nút để chuyển về bản ghi đầu tiên; - Nút để chuyển đến bản ghi cuối cùng; - Nút để thêm một bản ghi mới 93
  8. 4.3.3 Tạo Form từ cửa sổ Design Tạo Form sử dụng công cụ Split form và Form wizard ngƣời sử dụng có thể nhanh chóng thiết kế các Form nhờ vào các đặc tính hỗ trợ của Access. Nhƣng đối với hai cách trên chỉ cung cấp một số hạn chế các phƣơng án xây dựng Form mà không thoã mãn yêu cầu của ngƣời sử dụng khi muốn thiết kế Form teho ý của riêng mình. Do đó ngƣời sử dụng phải tự thiết kế một Form không cần sự hỗ trợ của Access. Nội dung mục này trình bày môi trƣờng thiết kế form cũng nhƣ cách tạo một số kiểu form từ đơn giản đến phức tạp sử dụng Form Design View. Chúng ta sẽ tìm hiểu cách thiết kế một form nhập dữ liệu đơn giản thông qua yêu cầu: tạo form dùng làm mẫu nhập dữ liệu cho bảng CANBO. Bƣớc 1: Tại cửa sổ Database, Chọn menu Create, chọn Form Design. Môi trƣờng thiết kế form xuất hiện: Hình 4.83. Mô tả thiết kế Form bằng Design View Có 3 thành phần quan trọng để làm việc: (1) Cửa sổ Form – nơi sẽ thiết kế và xây dựng các thông tin cần thiết theo yêu cầu bài toán. Cấu trúc form gồm 3 phần: Form Header - phần tiêu đề đầu form; Form Footer - phần tiêu đề cuối; Detail - phần thân form.. Toàn bộ các thông tin trên form đều đƣợc chứa trong các đối tƣợng điều khiển (Control), các đối tƣợng này đƣợc lấy từ thanh công cụ Toolbox sẽ trình bày phần tiếp sau. (2) Thanh công cụ Toolbox – nơi chứa những đối tƣợng, những công cụ có thể đƣa lên form với mục đích thiết kế giao diện và điều khiển dữ liệu theo bài toán. Ví dụ: muốn tạo ô nhập Họ tên trên form có thể dùng đối tƣợng 94
  9. Textbox, muốn đƣa một chú thích ( nhãn hiển thị) có thể dùng Label, muốn tạo một nút lệnh có thể dùng Command Button,… Cửa sổ Field List có chứa danh sách các trƣờng trên CSDL có trong nguồn dữ liệu của Form. Nó hỗ trợ việc đƣa những trƣờng dữ liệu này lên form để nhập và hiển thị dữ liệu rất tốt. Trong trƣờng hợp này ta dùng để đƣa những trƣờng cần nhập dữ liệu từ bảng CANBO lên form. Nếu chƣa thấy cửa sổ này xuất hiện, hãy thực hiện hiển thị nó bằng cách mở thực đơn Design / Ribbon Tool/Add Existing Fields. Hình 4.94. Mô tả hiển thị các trường trên CSDL Bƣớc 4: Đƣa những trƣờng cần nhập dữ liệu từ cửa sổ Field List lên Form đang thiết kế bằng cách: Dùng chuột kéo từng trƣờng muốn thiết kế lên form từ cửa sổ Field List thả lên vị trí hợp lý trên form (với bài này phải kéo toàn bộ các trƣờng lên form).Lúc này cửa sổ thiết kế form có dạng: Mỗi khi kéo một trƣờng từ Field List lên form, Access sẽ tự động tạo một đối tƣợng gắn kết tới trƣờng dữ liệu tƣơng ứng, đối tƣợng này có thể là Textbox, Combobox hay đối tƣợng khác tuỳ thuộc vào kiểu dữ liệu của trƣờng tƣơng ứng; và đối tƣợng Label đi kèm nhằm tạo nhãn chú thích cho trƣờng dữ liệu. Hình 4.105. Mô tả thiết kế Form Đến đây đã tạo xong form nhập dữ liệu đơn giản cho một bảng. 95
  10. 4.3.4 Sửa đổi thứ tự di chuyển Để sửa đổi thứ tự di chuyển trên Form, Click chuột phải trên Form chọn Tab Order Hình 4.16. Thay đổ thứ tự di chuyển Sau đó cầm chuột kéo điều chỉnh theo ý muốn của ngƣời thiết kế 4.4 Các đối tƣợng và các thuộc tính 4.4.1 Các đối tƣợng Tất cả thông tin trên form đƣợc chứa trong những đối tƣợng gọi là đối tƣợng(Control). Đối tƣợngcó thể dùng để thể hiện dữ liệu, thực hiện các hành động hoặc thiết kế form đẹp mắt. Thanh công cụ Toolbox – nơi chứa những đối tƣợng, những công cụ có thể đƣa lên form với mục đích thiết kế giao diện và điều khiển dữ liệu theo bài toán.Trong ACCESS hệ thống định nghĩa một số loại đối tƣợng nhƣ sau: Đối tƣợng nhãn (Label) .Tạo điều khiển chứa chuỗi kí tự làm nhãn chú giải Đối tƣợng hộp văn bản (Text box) .Tạo điều khiển để hiển thị, nhập hay hiệu chỉnh dữ liệu của một Field hoặc một biểu thức Đối tƣợng nhóm lựa chọn (Option group) .Tạo nhóm nút chọn hay nút bật tắt. Đối tƣợngloại hộp Combo (Combo box) Tạo hộp danh sách trải xuống 96
  11. Đối tƣợngloại hộp danh sách (List Box) . Tạo hộp danh sách Đối tƣợng command button: Tạo nút lệnh Đối tƣợng Image: Tạo điều khiển để hiển thị hình ảnh Đối tƣợng Unbound Object Frame - Tạo khung chức đối tƣợng không ràng buộc. Đối tƣợng Bound Object Frame - Tạo khung chứa đối tƣợng ràng buộc. Đối tƣợng Page Break - Tạo điều khiển ngắt trang Đối tƣợng Tab Control - Tạo điều khiển Phiếu (Tab) Đối tƣợng Rectangle - Tạo khung viền chữ nhật Khi tạo lập điều khiển, chúng ta thuờng xác định hình thức dữ liệu trình bày trong chúng. Có những đối tƣợng lấy dữ liệu từ các trƣờng trong bảng hay truy vấn, có đối tƣợng chỉ dùng vào mục đích trang trí, làm tiêu đề, có những đối tƣợng lấy dữ liệu từ một biểu thức nào đó. Vì vậy ngƣời ta phân ra thành ba nhóm đối tƣợng chính: Đối tƣợng buộc ( Bound control) Đối tƣợng không buộc ( Unbound control) Đối tƣợng tính toán ( Caculated control) * Đối tƣợng bị buộc (bound), không buộc (unbound) và tính toán đƣợc (calculated). Khi tạo một đối tƣợngtrong form thì phải xác định nó lấy dữ liệu từ nguồn nào để thể hiện. Ví dụ: Tạo một đối tƣợng loại hộp văn bản (Text box) để hiển thị tên các mặt hàng, chúng ta phải chỉ định cho đối tƣợng lấy dữ liệu trong trƣờng TEN_HANG của bảng MAT_HANG. Hộp văn bản này gọi là bị buộc. Đối tƣợngcũng có thể thể hiện những thông tin không có trong CSDL (Không bị buộc). Ví dụ: Tạo tiêu đề cho form ... Vậy đối tƣợng bị buộc (Bound Control) là đối tƣợng mà nguồn dữ liệu của nó lấy từ một trƣờng trong bảng hoặc truy vấn . Trong form dùng đối tƣợngbuộc vào các trƣờng để hiển thị nội dung hoặc cập nhật các trƣờng của CSDL, các giá trị cập nhật có thể là: Văn bản, Date,Number, Yes/No, Picture, chart trong đó dạng văn bản là phổ biến nhất. 97
  12. Đối tƣợng không bị buộc (Unbound Control) là đối tƣợngkhông lấy dữ liệu từ một nguồn nào cả là đối tƣợng không bị buộc. Dùng đối tƣợng không buộc để trình bày thông tin không có trong các bảng hay rút đƣợc từ truy vấn. Đối tƣợng tính toán (Calculated Control) là đối tƣợng mà nguồn dữ liệu của nó không phải là một trƣờng mà là một biểu thức gọi là đối tƣợng tính toán (Calculated Control). Chúng ta qui định giá trị xuất hiện trong đối tƣợng bằng cách lập biểu thức cho nó. Biểu thức này là nguồn dữ liệu của đối tƣợng.Trong biểu thức có thể dùng các toán tử (+, -,=...) với tên điều khiển. Ví dụ: Tạo một đối tƣợngTHANHTIEN=SOLUONG*DONGIA * Tạo đối tƣợng loại hộp văn bản ( text box) Text box có thể là một đối tƣợng bị buộc, không buộc hoặc tính toán. - Tạo hộp văn bản bị buộc (Bound Text box). Chúng ta buộc đối tƣợngText box vào một trƣờng bằng cách chỉ định điều khiển đó lấy dữ liệu trên trƣờng nào. Chọn trƣờng để buộc vào đối tƣợngbằng cách Click biểu tƣợng Field List để mở danh sách các trƣờng của bảng hay truy vấn làm nền tảng cho form . Theo mặc định nhƣ vậy thì hệ thống sẽ tạo một đối tƣợng loại Text box. Một cách khác dùng hộp dụng cụ Toolbox để tạo đối tƣợngvà sau đó gõ tên trƣờng muốn buộc vào hộp văn bản. - Mở hộp danh sách trƣờng Mở form trong chế độ Design (Tạo form trƣớc). Tại cửa sổ Database, Chọn menu Create, chọn Form Design. Môi trƣờng thiết kế form xuất hiện: Hình 4.17. Mô tả chọn trang Forms thiết kế 98
  13. Chọn thực đơn Design / Ribbon Tool/Add Existing Fields. - Tạo một Text Box bị buộc Từ danh sách trƣờng chọn một hoặc nhiều trƣờng kéo và đƣa vào form . - Tạo đối tƣợngdùng hộp công cụ Click vào biểu tƣợng công cụ tuơng ứng với đối tƣợng muốn tạo. Tạo đối tƣợng bị buộc bằng cách chọn một trƣờng trong danh sách trƣờng (Field List) và kéo vào form . Hoặc tạo đối tƣợng không buộc hay dùng để tính toán bằng cách click vào một vị trí trên form . - Tạo đối tƣợng dùng để tính toán Nếu muốn trình bày kết quả của một phép toán trong form , khai báo nguồn dữ liệu của đối tƣợng là một biểu thức. Sau này mỗi lần mở form , ACCESS tính toán lại kết quả của vùng dữ liệu đƣợc cập nhật mới nhất từ các bảng. - Tạo đối tƣợng nhãn (Label Control) Muốn trình bày một chuỗi ký tự trên form nhƣ để làm tiêu đề... chúng ta dùng loại đối tƣợnggọi là đối tƣợng nhãn (label control). nhãn không thể hiện dữ liệu của một trƣờng hay biểu thức nào , chúng luôn luôn là không bị buộc. Click vào biểu tƣợng Label trong Toolbox Click vị trí muốn đặt nhãn trên form - Thay đổi thuộc tính của đối tƣợng Sau khi tạo form , biến đổi một số thuộc tính của đối tƣợng có thể hoàn thiện thêm về thiết kế và hình thức trình bày của số liệu. Nhắp kép vào đối tƣợng . Trong hộp lựa chọn trên đầu bảng thuộc tính, chọn một lớp thích hợp để làm việc. All Properties: Trình bày tất cả các thuộc tính của đối tƣợng Data Properties: Ấn định các đặc tính thể hiện dữ liệu trong đối tƣợngnhƣ giá trị mặc nhiên, định dạng số. Even Properties: Qui định một tập lệnh (Macro) hay thủ tục (Procedure).. Layout Properties: Định nghĩa các hình thức của đối tƣợngnhƣ cao, rộng. Other Properties: Một số thuộc tính khác nhƣ tên đối tƣợng , thông tin mô tả ở dòng trạng thái. Click chọn một trong các thuộc tính của bảng để thực hiện. 99
  14. 4.4.2 Các thuộc tính trong Form a. Các thuộc tính mặc định Cửa sổ thuộc tính có các thành phần cơ bản sau: Hình 4.18. Cửa sổ thuộc tính Một số thuộc tính thường dùng: - Record Source: Thiết lập nguồn dữ liệu cho form. - Default view: Thiết lập dạng hiển thị dữ liệu của form. - Record Selecter: Hiển thị mẫu lựa chọn bản ghi. - Navigation Botton: Lựa chọn hiển thị (yes) hay không hiển thị (no) thanh định vị bản ghi. - Dividing line: Lựa chọn hiển thị (yes) hay không hiển thị (no) các đƣờng kẻ phân cách trong form. - Caption: Là thuộc tính tạo ra dòng chữ chú thích trên form. Dòng chữ này phải đƣợc nhập trực tiếp từ bàn phím làm sao thật ngắn gọn, xúc tích để ngƣời dùng có thể hiểu đƣợc bản chất cũng nhƣ ý nghĩa của việc bạn đang giải thích, thƣờng để mô tả tiêu đề cho các trƣờng dữ liệu. -Height – Width: Thay đổi kích thƣớc chiều cao và chiều rộng của đối tƣợng. - Top – Left: Thay đổi vị trí của đối tƣợng trên form so với điểm (0,0) của form. - Font: Thay đổi kiểu font hiển thị của văn bản trên form. - ForeColor: Thay đổi màu chữ. - BackColor: Thay đổi màu nền. 100
  15. Ví dụ: Tạo form dùng làm mẫu nhập dữ liệu cho bảng CANBO trong cơ sở dữ liệu “Quản lý nhân sự”. Bƣớc 1. Tạo form mới ở chế độ Design View Bƣớc 2: Thiết lập nguồn dữ liệu cho form: chọn tên bảng CANBO ở hộp Record Source. Bƣớc 3: Thiết lập trƣờng dữ liệu Cửa sổ Field List có chứa danh sách các trƣờng trên CSDL có trong nguồn dữ liệu của Form. Nó hỗ trợ việc đƣa những trƣờng dữ liệu này lên form để nhập và hiển thị dữ liệu rất tốt. Trong trƣờng hợp này ta dùng để đƣa những trƣờng cần nhập dữ liệu từ bảng CANBO lên form. Nếu chƣa thấy cửa sổ này xuất hiện, hãy thực hiện hiển thị nó bằng cách mở thực đơn Design / Ribbon Tool/Add Existing Fields. Bƣớc 4: Đƣa những trƣờng cần nhập dữ liệu từ cửa sổ Field List lên Form đang thiết kế bằng cách: Dùng chuột kéo từng trƣờng muốn thiết kế lên form từ cửa sổ Field List thả lên vị trí hợp lý trên form (với bài này phải kéo toàn bộ các trƣờng lên form). Mỗi khi kéo một trƣờng từ Field List lên form, Access sẽ tự động tạo một đối tƣợng gắn kết tới trƣờng dữ liệu tƣơng ứng, đối tƣợng này có thể là Textbox, Combobox hay đối tƣợng khác tuỳ thuộc vào kiểu dữ liệu của trƣờng tƣơng ứng; và đối tƣợng Label đi kèm nhằm tạo nhãn chú thích cho trƣờng dữ liệu. b.Các thuộc tính bổ sung * Thiết lập một số thuộc tính bổ sung - Các thuộc tính hỗ trợ nhập liệu Thuộc tính Default value: Gán giá trị mặc định vào nội dung trình bày trong đối tƣợng . Thuộc tính ValidationRule và ValidationRule Text: Kiểm tra tính hợp lệ khi cho một đối tƣợng và thông báo lỗi nếu dữ liệu không hợp lệ - Các thuộc tính gióng lề Thuộc tính General: Gióng hàng văn bản theo lề trái, dữ liệu số và ngày tháng theo lề phải. Thuộc tính Left: Gióng hàng văn bản theo lề trái. Thuộc tính Center: Xác lập hàng văn bản ở chính giữa. Thuộc tính Center: Gióng hàng văn bản theo lề phải. 101
  16. - Các thuộc tính màu sắc Thuộc tính Backcolor: Thiết lập màu nền cho đối tƣợnghay cho form Thuộc tính Forecolor: Thiết lập màu cho hàng chữ trong đối tƣợng . Thuộc tính Bodercolor: Thiết lập màu cho khung bao quanh trong đối tƣợng - Các thuộc tính khung bao Thuộc tính BoderStyle:Thiết lập loại khung cho đối tƣợng Thuộc tính BoderWidth: Thiết lập độ dày hay đậm của khung bao. Thuộc tính BoderColor: Thiết lập màu của khung bao. Click biểu tƣợng List box hoặc Combo box trong hộp công cụ. Tạo đối tƣợngbuộc bằng cách click biểu tƣợng Field list trên thanh công cụ để mở danh sách trƣờng làm nền cho form . Chọn một trƣờng trong danh sách kéo vào form, hoặc tạo đối tƣợngkhông buộc bằng cách click form nơi muốn đặt điều khiển. * Lập các thuộc tính của đối tƣợng để định nghĩa các hàng dùng làm chọn lựa trong danh sách. Muốn danh sách thể Lập thuộc tính Row Lập Row Source thành hiện Source Type thành Các hàng từ một bảng Table/Query (Default) Tên của bảng hay truy hay truy vấn vấn đó Các hàng lấy từ lệnh Table/Query (Default) Một câu lệnh SQL Select của SQL Một danh sách với các Value List Danh sách các giá trị đó giá trị do ngƣời dùng tự đặt phân cách nhau bởi dấu chấm phẩy Tên các trƣờng trong một Field List Tên của bảng hoặc truy bảng hoặc truy vấn vấn đó Các giá trị định nghĩa bởi một Tên hàm xây dựng Để trống hàm trong Access Basic 102
  17. Hình 4. 19. Mô tả các thuộc tính của Form - Định nghĩa các hàng trong danh sách Định nghĩa nguồn dữ liệu để hình thành các hàng dùng làm trong danh sách lựa chọn trong List box và Combo box bằng cách lập thuộc tính thích hợp cho RowSource Type và RowSource của đối tƣợng , hai thuộc tính này phối hợp với nhau để tạo nên các hàng trong danh sách. Thuộc tính RowSource Type cho biết danh sách sẽ hình thành từ nguồn dữ liệu loại nào, thuộc tính RowSource là thuộc tính xác định nguồn dữ liệu của danh sách. - Danh sách lấy dữ liệu từ bảng hay truy vấn Có thể tạo List box hay Combo box lấy dữ liệu từ một hoặc nhiều trƣờng trong bảng ( hoặc truy vấn) để lập thành danh sách chọn lựa cho đối tƣợng . Thực hiện điều này bằng cách đặt thuộc tính RowSource Type thành Table/Query và RowSource thành tên bảng hay tên truy vấn có chứa dữ liệu để lập thành danh sách đó. - Tạo danh sách nhiều cột Có thể tạo danh sách gồm hai hay nhiều cột để có thêm thông tin lựa chọn. Xác định số cột bằng cách lập thuộc tính Columcount và ColumnWidth cho đối tƣợng. Thuộc tính columcount quy định số cột và nếu trong RowSource là tên một bảng hay truy vấn thì các trƣờng đầu tiên tƣơng ứng số cột của bảng hay truy vấn đó (tính từ trái sang phải) sẽ đƣợc đƣa vào danh sách. Thuộc tính columnwidth quy định bề rộng mỗi cột tính theo inch hay cm. 103
  18. - Sử dụng danh sách giá trị Trƣờng hợp đối tƣợng chỉ có một số nhỏ chọn lựa và các giá trị này không thay đổi, có thể dùng phƣơng pháp đơn giản là danh sách giá trị. Danh sách này chúng ta tự lập bằng cách đƣa các giá trị dùng làm chọn lựa vào thuộc tính RowSource của đối tƣợng . Sử dụng dấu chấm phẩy để phân cách các mục chọn lựa của danh sách. 4.5 Tạo các Form con (SUB FORM) 4.5.1 Giới thiệu Sub from Form con hay còn gọi là Form phụ là phƣơng pháp để đƣa thông tin từ nhiều bảng vào một Form. Form con có nghĩa là một Form đƣợc lồng trong Form khác. Trong Access Form chính gọi là Main form, Form nằm trong Main form gọi là Form con (Sub form). Khi dùng Form con chúng ta dễ nhận thấy mối quan hệ giữa các bản ghi của hai hay nhiều bảng. Form con đặc biệt hữu hiệu khi dùng để hiển thị dữ liệu từ nhiều bảng hay truy vấn có quan hệ một-nhiều với nhau. Form chính đại diễn cho bên một, Form phụ đại diện cho bên nhiều. Khi nào dùng Main Form / SubForm: Sử dụng Main Form - SubForm khi muốn dùng một Bảng / Query làm nguồn dữ liệu cho MainForm và một Bảng / Query khác để trình bày mối quan hệ giữa các Record của các Bảng / Query này. Thực tế, Main Form – SubForm đƣợc dùng thƣờng xuyên khi trình bày dữ liệu trên Form. Khi dùng Main Form - SubForm cần chú ý các vấn đề sau: - Có các Bảng/Query có quan hệ theo kiểu một - nhiều : Main Form sẽ sử dụng Bảng/Query bên một và SubForm sử dụng Bảng/Query bên nhiều. Kiểm tra xem các Bảng/Query sử dụng có các Field quan hệ hay không. Access sẽ dùng Field đối chiếu (Matching Field hay Linking Field) các Bảng/Query để xác định những Record đƣợc hiển thị trong Main Form và SubForm. - Nếu sử dụng Field đối chiếu không phải là Primary key hay Foreign key thì phải lập chỉ mục cho Field này. 4.5.2 Phân loại SubForm Khi tạo Form con chúng ta có thể thiết kế nó thành dạng bảng, hoặc dạng Form, hoặc cả hai dạng trên. Form dạng bảng: Là loại dễ tạo nhất và có thể sử dụng nhƣ bất kỳ bảng nào khác nhƣ sắp xếp.... 104
  19. Form con dạng Form: Cho chúng ta thực sự linh hoạt và mềm dẻo khi thiết kế hơn. 4.5.3 Thiết kế SubForm a. Thiết kế Form con Thông thƣờng chúng ta dùng bảng hay truy vấn làm nguồn dữ liệu cho Form chính, một bảng hay truy vấn khác làm nguồn dữ liệu cho Form phụ. Nếu dữ liệu trong Form chính và Form phụ có liên quan với nhau, chúng ta cần đánh giá một số vấn đề sau: Các bảng hoặc truy vấn có quan hệ một-nhiều với nhau không? Nếu dùng Form phụ để thể hiện quan hệ một-nhiều, chúng ta nên dùng bảng bên một đối với bảng chính, bảng bên nhiều đối với bảng phụ. Các bảng hoặc truy vấn làm nguồn dữ liệu cho Form chính/phụ có các trƣờng liên kết không? Access dùng trƣờng kết nối để giới hạn số lƣợng bản ghi thể hiện trong Form phụ. Cách tạo Form chính/phụ: Thiết kế hai Form riêng biệt, sau đó kéo Form phụ vào Form chính. Thiết kế Form chính Tạo Form chính, dành chỗ trên Form này để chứa Form phụ. Lƣu và đóng Form chính. Thiết kế Form phụ: Có thể thiết kế Form phụ để chỉ thể hiện dữ liệu dƣới dạng bảng, Form này có cả hai khả năng trên. Tạo Form mới, lập hai thuộc tính ViewAllowed và Default View của Form tuỳ theo yêu cầu sử dụng nhƣ sau: Form phụ chỉ trình bày dưới dạng bảng: Đặt các trƣờng trên Form theo thứ tự chúng ta muốn chúng xuất hiện trong bảng. Lập cả hai thuộc tính ViewAllowed và Default View thành Datasheet. Form phụ chỉ trình bày dữ liệu dưới dạng Form: Sắp đặt các điều khiển nhƣ trên. Lập thuộc tính ViewAllowed thành Form và Default View thành Single form hay Continuous form. Đưa Form phụ vào Form chính Mở Form chính ở chế độ Design 105
  20. Chuyển sang cửa sổ Database, nhấn F11 Kéo Form phụ tử cửa sổ Database và đặt vào một vị trí trên Form chính. Di chuyển Form phụ đến vị trí khác, thay đổi nội dung nhãn hoặc kích thƣớc nếu cần. Chuyển sang chế độ Form View để xem kết quả. Hình 4.20. Ví dụ Form con b. Liên kết Form chính và Form con Trong nhiều trƣờng hợp, khi nhúng SubForm vào MainForm thì Access sẽ thiết lập sự liên kết giữa chúng theo các điều kiện sau: - Main Form và SubForm đều dùng dữ liệu nguồn là Bảng và quan hệ giữa hai Bảng này đã đƣợc thiết lập. - Main Form dùng dữ liệu nguồn từ Bảng có là khóa chính (Primary key) và SubForm dùng dữ liệu nguồn từ Bảng cũng chứa Field cùng tên với Field khóa chính của bảng cơ sở của Main Form trên làm khóa cơ bản (có cùng kiểu dữ liệu hay tƣơng thích). - Access dùng 2 Field có tên giống nhau của 2 Bảng làm liên kết. Trƣờng hợp sự liên kết không thiết lập đƣợc hay muốn quy định Field khác làm mối liên kết thì phải quy định lại tại thuộc tính LinkMasterFields và LinkChildFields của SubForm. - Click chọn SubForm và mở cửa sổ thuộc tính - Thuộc tính LinkChildFields: chỉ định Field liên kết của SubForm. Nếu nhiều Field thì cách nhau bởi dấu chấm phẩy. - Thuộc tính LinkMasterFields: chỉ định Field liên kết của Main Form . 4.5.4 Sử dụng Sub-form trong form nhập dữ liệu Để sử dụng kỹ thuật sub form trong nhập dữ liệu, ta thực hiện nhƣ sau: + Bƣớc 1: Tạo Sub form 106
nguon tai.lieu . vn