Giáo trình Access - Chương 5: Form - Biểu mẫu

pdf 94 trang vanle 2170
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Access - Chương 5: Form - Biểu mẫu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_access_chuong_5_form_bieu_mau.pdf

Nội dung text: Giáo trình Access - Chương 5: Form - Biểu mẫu

  1. Giáo trình Access Chương 5 FORM-BIỂU MẪU 5.1. Giới thiệu Form là giao diện chính dùng để giao tiếp giữa người dùng và ứng dụng, form được sử dụng để nhập dữ liệu, xem thơng tin, chỉnh sửa dữ liệu, hiển thị thơng báo, điều khiển ứng dụng, ðể thiết kế form cần phải chọn dữ liệu nguồn cho form, dữ liệu nguồn của form cĩ thể là table hoặc query. Nếu dữ liệu nguồn là các field trên một bảng thì lấy bảng đĩ làm dữ liệu nguồn, nếu dữ liệu nguồn là các field trên nhiều bảng thì phải tạo query làm dữ liệu nguồn cho form. 5.2. Cách tạo form ðể tạo form, chọn tab Create trên thanh Ribbon, chọn cách tạo form bằng các nút lệnh trong nhĩm lệnh Forms. − Form Design: Tạo ra một Form mới trống và hiển thị nĩ trong chế độ Design View. Nếu một Table hoặc Query được chọn trong khung Navigation thì khi click nút Form Design, form mới sẽ tự động bị ràng buộc với nguồn dữ liệu là Table hoặc Query đĩ. − Blank Form: Tạo ra một form trống, form mới khơng bị ràng buộc với một nguồn dữ liệu, và nĩ sẽ mở ra trong chế độ Layout View. Bạn phải chỉ định một nguồn dữ liệu (bảng hoặc truy vấn) và thiết kế form bằng cách thêm các điều khiển từ field list. − Form Wizard: Access hổ trợ các bước để thiết kế form đơn giản. Wizard sẽ yêu cầu các nguồn dữ liệu, chọn các field hiển thị trên form, và cho phép bạn chọn layout cho form mới. − Navigation Form: là một form đặc biệt hồn tồn mới trong Access 2010, nhằm thiết kế form dạng Navigation user, cho phép người dùng dễ dàng di chuyển giữa các thành phần trong -74-
  2. Giáo trình Access form. -75-
  3. Giáo trình Access 5.2.1. Tạo một Single Form Access cung cấp một cách dễ dàng và thuận lợi để tạo một form dựa trên dữ liệu nguồn là Table/Query. Cách thực hiện: Tronng Navigation, chọn table hoặc query mà bạn muốn sử dụng làm dữ liệu nguồn cho from. Chọn tab trên thanh Ribbon Trong nhĩm lệnh Form, click nút Form. Xuất hiện một Form mới ở dạng Layout view Single form hiển thị một record tại một thời điểm Mặc định mỗi field hiển thị trên một dịng và theo thứ tự của các field trong bảng hoặc query dữ liệu nguồn. Nếu dữ liệu nguồn của form là bảng cha cĩ liên kết với bảng con, thì kết quả form sẽ hiển thị các record quan hệ trong bảng con. Ví dụ: -76-
  4. Giáo trình Access 5.2.2. Tạo form bằng chức năng Form Wizard Chức năng Form Wizard là cơng cụ tạo form qua các bước trung gian với một loạt các câu hỏi gợi ý để giúp bạn chọn lựa và xây dựng một form phù hợp nhất. Cách tạo: Trong cửa sổ làm việc của Access, chọn tab Create trên thanh Ribbon. Click nút Form Wizard trong nhĩm lệnh Forms. Xuất hiện cửa sổ Form Wizard Chọn Table hoặc Query làm dữ liệu nguồn cho form. Chọn các field hiển thị trên form trong khung Available Fields, click nút để chọn một field, click nút để chọn tất cả các field trong Table/Query dữ liệu nguồn, cĩ thể chọn nhiều fields trên nhiều bảng. Click Next. Chọn dạng form gồm các dạng: Columnar. Tabular. Datasheet Click Next. -77-
  5. Giáo trình Access Nhập tiêu đề cho formFinish. -78-
  6. Giáo trình Access 5.2.3. Tạo Form bằng Design Cơng cụ Form và Form Wizard giúp bạn thiết kế form một cách nhanh chĩng và dễ dàng. Với Design view, bạn sẽ thiết kế một form bằng tay mà khơng cĩ sự hỗ trợ nào của Access. Cĩ hai cách để thiết kế một form bằng Design view: Form Design và Layout View (Blank Form). a) Layout View: Với cách thiết kế này bạn cĩ thể can thiệp vào các control: Textbox, checkbox, label, như di chuyển chúng, thay đổi kích thước chúng, thêm hoặc loại bỏ các điều khiển. Layout view làm cho việc sắp xếp các control trở nên dễ dàng hơn. Cách tạo: Chọn tab Create trên thanh Ribbon, click nút Blank Form trong nhĩm lệnh Forms. Xuất hiện một form trắng ở chế độ Layout view. Drag chuột kéo các field từ field list vào form b) Design view Khi thiết kế form bằng Design view thì các control khi thả vào form nĩ khơng tự động canh theo hàng và cột như Blank Form. -79-
  7. Giáo trình Access Cách tạo: Chọn tab Create trên thanh Ribbon, click nút Design View trong nhĩm lệnh Forms. Xuất hiện một form trắng ở chế độ Design view. Drag chuột kéo các field từ field list vào form. c) Các phần trong cửa sổ thiết kế form Form header: Chứa nội dung tiêu đề của form. ðể chèn nội dung vào tiêu đề của form ta sử dụng các cơng cụ trong nhĩm lệnh Header/Footer Form footer: Chứa nội dung của phần cuối form, thường đặt các ơ tính tốn thống kê dữ liệu cho form trong phần form footer. ðể bật hoặc tắt thanh form Header/Footer click phải trên thanh Header/Footer của form, chọn hoặc bỏ chọn lệnh Form Header/Footer. -80-
  8. Giáo trình Access Detail: chứa nội dung chính của form, phần này hiển thị nội dung trong dữ liệu nguồn của form hoặc các control đưa vào từ toolbox. d) Thiết lập thuộc tính của form Chọn form cần thiết lập thuộc tính. Click nút Properties Sheet. Chọn thuộc tính. Các thuộc tính trong Properties Sheet được hiển thị theo từng nhĩm. e) Các thuộc tính quan trọng trong nhĩm Format: Thuộc tính Cơng dụng Caption Tạo tiêu đề cho form. Thiết lập dạng hiển thị của form. . Single Form chỉ hiển thị một Record tại một thời điểm. Default view . Continuous Form: hiển thị các record liên tiếp nhau. . Datasheet hiển thị dữ liệu dạng bảng. Scroll Bar Thiết lập chế độ hiển thị thanh cuộn. Record Bật/tắt thanh chọn record. Selectors Navigation Bật/tắt các nút duyệt record. Buttons Dividing lines Bật/tắt các đường kẽ phân cách các phần của form. Auto Center Tự động hiển thị form ngay giữa màn hình. Border Style Chọn kiểu đường viền của form. Min Max botton Bật/tắt nút Max/Min. Close Button Bật/tắt nút close form. Picture Canh vị trí cho các picture trên form. Alignment -81-
  9. Giáo trình Access f) Các thuộc tính thơng dụng trong nhĩm Data Thuộc tính Cơng dụng Record Source Chọn dữ liệu nguồn cho form. Filter Khai báo điều kiện lọc. Order by Khai báo field cần sắp xếp số liệu. Allow filter Cho phép/khơng cho phép lọc các record. Allow Edits Cho phép/ khơng cho phép chỉnh sửa. Allow Additions Cho phép nhập thêm các record hay khơng. 5.3. Sử dụng Form Một form khi thiết kế xong, nĩ cĩ ba dạng xem: Layout view, Design view, Form view. Layout view: cho phép bạn xem những gì trơng giống như form của bạn, sắp xếp lại các field, và áp dụng định dạng. Design view: cho phép bạn tinh chỉnh lại form, trong chế độ design view, bạn khơng nhình thấy dữ liệu thực. Form view: hai dạng form Layout view và Design view giúp bạn hiệu chỉnh thiết kế form, thì Form view là dạng form được sử dụng để thực hiện các thao tác trên dữ liệu thơng qua form. 5.3.1. Tìm kiếm và chỉnh sửa một record a) Sử dụng form để tìm kiếm một record Mở form ở dạng form view. Chọn tab Home trên thanh Ribbon. ðặt trỏ trong field chứa dữ liệu cần tìm, Click nút Find trong nhĩm lệnh Find. Xuất hiện cửa sổ Find and Replace. Find What: nhập giá trị cần tìm. Look in: Phạm vi tìm kiếm. Search: Hướng tìm Match: Chọn cách so trùng giá trị nhập trong ơ Find What với giá trị trong field chứa dữ liệu cần tìm. -80-
  10. Giáo trình Access b) Thay thế hoặc chỉnh sửa dữ liệu Khi đã tìm thấy record cần tìm, bạn thực hiện chỉnh sửa thì giá trị sau khi chỉnh sửa sẽ cập nhật xuống bảng. Nếu cần thay thế giá trị thì chọn tab Replace trong cửa sổ Find and Replace. Nhập giá trị cần thay thế trong ơ Replace with Click nút Replace hoặc Replace All nếu cần thay tất cả giá trị trong bảng. 5.3.2. Thêm một record Khi làm việc trên form, để thêm một record mới bạn thực hiện như sau: Mở form ở chế độ form view click nút New Record trên thanh Navigation button bên dưới cửa sổ form. Form sẽ chuyển đến record trống, cho phép bạn nhập dữ liệu. Tuy nhiên khi nhập dữ liệu phải thỏa mãn các ràng buộc trong cơ sở dữ liệu. -81-
  11. Giáo trình Access 5.3.3. Xĩa một record Di chuyển đến record cần xĩa. Trong nhĩm lệnh Record trên thanh Ribbon, chọn lệnh DeleteChọn Delete Record. Tuy nhiên khi xĩa record phải xem xét ảnh hưởng đến các Record quan hệ. 5.3.4. Lọc dữ liệu trên form. Mở form ở dạng Form view. Trong nhĩm lệnh Sort & Filter trên thanh Ribbon, click nút Advanced, Chọn lệnh Filter by Form. Form chuyển sang dạng Filter. Click nút combobox của field chứa giá trị chọn điều kiện lọc. Nếu cĩ nhiều điều kiện thì bạn chọn tab OR bên dưới cửa sổ Filter, chọn điều kiện lọc tiếp theo. Click nút Toggle Filter để thực hiện lọc. Click nút Toggle Filter để bỏ lọc. -82-
  12. Giáo trình Access 5.4. Tùy biến form trong chế độ Desing view 5.4.1. Thêm một control vào form ðể thêm một control vào form ta làm các bước như sau: Chuyển form sang dạng Design view, Thanh Ribbon chuyển sang Form Design Tools. Chọn tab Design, trong nhĩm Control, chọn các control Drag chuột vẽ vào form tại bất kỳ vị trí nào mà bạn mong muốn. ðối với các control cĩ sự trợ giúp của Control Wizard thì cĩ thể thiết kế bằng hai cách: Design hoặc Wizard bằng cách bật tắt nút Cotrol Wizard. -83-
  13. Giáo trình Access 5.4.2. Các loại form control Control Tên Ý nghĩa Cĩ 2 loại − Bound control: chứa nội dung của field Textbox − Unbound control: khơng cĩ dữ liệu nguồn, thường dùng để nhập cơng thức tính tốn. Label Sử dụng để tạo nhãn hoặc hyperlink Button Nút lệnh dùng để thực hiện lệnh khi click Hiển thị dữ liệu thành từng nhĩm trên Tab nhiều tab khác nhau. Hyperlink Tạo hyperlink Web Cửa sổ trình duyệt Browser Tab dùng để hiển thị From hoặc Report Navigation trong cơ sở dữ liệu. Option Nhĩm các tùy chọn group Page Break Ngắt trang Là một Drop-down menu cho phép chọn Combo box một tùy chọn trong danh sách hoặc nhập thêm tùy chọn mới Char Tạo một đồ thị bằng wizard Line Vẽ đường thẳng Toggle Nút cĩ hai trạng thái on/off button Là một Drop-down menu cho phép chọn List box một tùy chọn trong danh sách nhưng khơng được nhập thêm giá trị mới Rectangle Vẽ hình chữ nhật Hộp chọn, cĩ hai trạng thái check và Check box uncheck Unbound Cho phép nhúng các đối tượng từ các object frame phần mềm khác như: graph, picture, -84-
  14. Giáo trình Access mà nĩ khơng được lưu trữ trong field của bảng Sử dụng cho những field cĩ kiểu Attachment Attachment Option Là một thành phần của option group button Subform/ Dùng để tạo subform hoặc subreport Subreport Cho phép nhúng các đối tượng từ các Bound phần mềm khác như: graph, picture, object frame mà nĩ được lưu trữ trong field của bảng Image Hình loại Bitmap 5.4.3. ðịnh dạng các control trên form a) Canh lề cho các control Chọn các control cần canh lề và thực hiện một trong các cách như sau: Click phải và chọn Align, sau đĩ chọn một trong các kiểu canh lề trên submenu. Chọn tab Arrange trên Form Design Tools. Trong nhĩm lệnh Sizing & Ordering, click nút Align và chọn một trong các kiểu canh lề trong Submenu. b) Hiệu chỉnh kích thước và khoảng cách giữa các control trên form Chọn các control cần hiện chỉnh. Chọn tab Arrange trên Form Design Tools. Trong nhĩm lệnh Sizing & Ordering, click nút Size/Space. Chọn lệnh hiệu chỉnh thích hợp. 5.4.4. Thiết lập thuộc tính cho control Chọn control cần thiết lập thuộc tính Click nút properties Sheet trong nhĩm lệnh Tools trên thanh Ribbon -85-
  15. Giáo trình Access 5.5. Cách tạo các control cĩ hỗ trợ của chức năng Wizard 5.5.1. Command button: a) Tạo bằng wizard Chọn button trong nhĩm Controls, drag chuột vẽ vào form. Xuất hiện cửa sổ Command button Wizard. Trong khung Categories chọn nhĩm lệnh. Record Navigation: chứa các lệnh di chuyển giữa các record như: Go To First Record: di chuyển đến record đầu, Go To Last Record: di chuyển đến record cuối, Go To Next Record: di chuyển đến record kế record hiện hành, Go To Previous Record: di chuyển đến record trước record hiện hành. Các lệnh này thường dùng để tạo thanh navigation buttons trên form. Record Operations: gồm các lệnh thêm record hoặc xĩa record như: Add New Record: Thêm record mới. Delete Record: Xĩa record -86-
  16. Giáo trình Access Duplicate Record: Tạo các record cĩ giá trị trùng ở tất cả các field. Print Record: Save Record: lưu những thay đổi trước khi chuyển đến record tiếp theo. Undo Record: Hủy sự thay đổi sau cùng. Form Operations: gồm các lệnh về form CloseForm: đĩng form hiện hành. Print Current Form: in form hiện hành. Open Form: Mở một form khác. Report Operations: gồm các lệnh về Report Open Report: mở report. Preview Report: xem một report trước khi in. Print Report: in report. Application: gồm lệnh liên quan đến ứng dụng như Quit Application. Miscellaneous: chứa những lệnh tổng hợp Run Query Run Macro. Chọn lệnh cho nút trong khung Action, click Next. Chọn Text hoặc Picture hiển thị trên nút, click Next. ðặt tên cho nút, Finish. b) Tạo bằng design Tắt nút wizard. Chọn nút button trong nhĩm controls. Drag chuột vẽ vào form. Gán lệnh bằng cách click phải trên nút, chọn Build event. Chọn Macro builder, Trong khung New Action, chọn lệnh Close Window. ðiền các argument vào các khung -87-
  17. Giáo trình Access Object type: Form Object name: Nhập tên form. 5.5.2. Option group: a) Tạo bằng wizard Chọn cơng cụ option group trong nhĩm Controls. Xuất hiện cửa sổ Option group Wizard. Nhập nhãn cho các option, click Next. Chọn/khơng chọn option mặc định, click Next. Nhập giá trị cho các option, mặc định, option đầu tiên sẽ cĩ option value là 1, click Next. Chọn vị trí lưu trữ giá trị của option group, click Next. Chọn loại option trong option group và style cho option group, các option này cĩ hình dạng khác nhau nhưng chức năng là giống nhau, click Next. Nhập nhãn cho Option group, click Finish. -88-
  18. Giáo trình Access b) Tạo bằng design Tắt nút Control Wizard. Click nút Option group trong nhĩm Controls vẽ vào form. Chọn loại Option vẽ vào trong khung của Option group. Mở Properties Sheet của Option group và thiết lập các thuộc tính sau: Control source: chọn field chứa dữ liệu nguồn cho option group. Lần lượt chọn từng option và gán giá trị cho thuộc tính option value. 5.5.3. Combo box và List box: a) Tạo bằng wizard: Chọn cơng cụ Combo box/List box trong nhĩm Controls. Drag chuột vẽ vào form, xuất hiện cửa sổ Combo box Wizard với hai lựa chọn ứng với hai chức năng của combo box: Nếu chọn I want the combo box to get the values from another table or query thì sau khi click Next để thực hiện bước tiếp theo ta chọn bảng chứa dữ liệu nguồn cho Combo box, dữ liệu nguồn cĩ thể là Table hoặc Query, click Next. -89-
  19. Giáo trình Access Chọn field chứa dữ liệu đưa vào Combo box, click nút để chọn một field hoặc click nút để chọn nhiều field, click Next. Chọn field sắp xếp (cĩ thể bỏ qua), mặc định các field đã được sắp xếp, click Next. ðiều chỉnh độ rộng của cột dữ liệu trong combo box. Hide key column (recommended): ẩn hoặc hiện cột khĩa. Mặc định mục Hide key column được chọn (cột khĩa bị ẩn), nếu muốn combo box hiển thị field khĩa thì bỏ check, click Next. -90-
  20. Giáo trình Access Chọn field chứa giá trị của combo box, click Next. Nhập nhãn cho combo box, click Finish. Nếu chọn I will type in the values that I want, thì sau khi chọn xong, click Next. Nhập số cột trong ơ Number of columns, Nhập giá trị cho các cột trong combo box, click Next.  Nhập nhãn cho combo box, click Finish. b) Tạo bằng Design: Tắt nút wizard. Click nút combo box trong nhĩm Controls drag chuột vẽ vào form. Sử dụng Properties Sheet để thiết lập các thuộc tính sau: Thuộc tính Ý nghĩa Chọn field dữ liệu nguồn của Combo box ControlSource (list box). RowSource Loại dữ liệu nguồn: Table, Query, Field list, Type Value list Giá trị của cột được trả về khi chọn một mục BoundColumn chọn trong combo box (list box). ColumnCount Số cột hiển thị trong combo box (list box). -91-
  21. Giáo trình Access Nguồn dữ liệu của combo box (list box). − Nếu RowSourceType là Value List thì nhập danh sách các giá trị cách nhau bằng RowSource dấu chấm phẩy. − Nếu là Table/Query thì phải chọn tên bảng, tên query hay câu lệnh SQL. Ví dụ: Tạo form hĩa đơn lấy dữ liệu nguồn từ bảng HoaDon, khi tạo combo box MaKH ta thiết lập các thuộc tính sau: 5.6. Form và những bảng liên kết Access 2010 nhận ra các quan hệ khi tạo một form mới từ một bảng cha. Nếu bảng cha cĩ nhiều bảng con thì Access chỉ hiển thị các record trong một bảng, nĩ sẽ chọn bảng đầu tiên mà nĩ tìm thấy. Ví dụ bảng LOP và bảng SINHVIEN trong cơ sở dữ liệu QLSV. Khi tạo form từ bảng lớp thì nĩ sẽ hiển thị danh sách các record quan hệ trong bảng con SINHVIEN. -92-
  22. Giáo trình Access 5.6.1. Subform control Subforms là khơng thể thiếu cho việc hiển thị thơng tin từ hai bảng khác nhau hoặc các truy vấn trên cùng một form. Thơng thường, subforms được sử dụng khi dữ liệu nguồn trong main cĩ quan hệ một-nhiều với dữ liệu nguồn của subform. Nhiều record trong subform được liên kết với một record trong mainform. Access sử dụng các thuộc tính LinkMasterFields và LinkChildFields của subform để lựa chọn các record trong subform cĩ liên quan đến mỗi record trong mainform. a) Tạo bằng Wizard: Tạo main form: dữ liệu nguồn của main form thường là thơng tin ở bảng cha, do đĩ dạng form thường là những dạng hiển thị một record tại một thời điểm như columnar. Mở main form ở chế độ Design. Bật nút control Wizard. Chọn cơng cụ SubForm/SubReport trong nhĩm Controls vẽ vào Form, xuất hiện cửa sổ SubForm Wizard với hai tùy chọn: Use existing Tables and Queries (sử dụng bảng và các query làm dữ liệu nguồn cho -93-
  23. Giáo trình Access subform)Next. -94-
  24. Giáo trình Access Chọn bảng hoặc query làm dữ liệu nguồn cho sub form, trong bảng hoặc query phải cĩ field liên kết với main form Next. Chọn field liên kết với subformNext. Nhập tên cho subformFinish. Use an existing form: sử dụng form cĩ sẵn làm subform. Chọn form làm subformNext Nhập tên cho SubFormFinish b) Tạo bằng Design: Nếu dữ liệu nguồn của subform được lấy từ nhiều bảng thì phải tạo query, trong query phải chứa field liên kết với main form (link child filed) Dạng của subform thể hiện quan hệ n, do đĩ thường chọn dạng Datasheet hoặc Tabular. Mở main form ở chế độ design, chọn cơng cụ subform/Subreport trong nhĩm Controls drag chuột vẽ vào main form. Mở Properties Sheet và thiết lập các thuộc tính: Source object: Chọn Table/Query làm dữ liệu nguồn cho Subform, hoặc chọn form nếu đã thiết kế form để làm subform. Link child field: nhập tên của field trong subform liên kết với main form Link master field: nhập tên field của main form liên kết với subform. 5.6.2. Hiệu chỉnh subform: Khi chỉ định thuộc tính Source Object cho Subform thì form xuất hiện với dạng mặc định được quy định trong thuộc tính Default view. Tuy nhiên, nếu bạn muốn sử dụng một form hồn tồn riêng biệt để bạn cĩ thể tùy biến nĩ. -95-
  25. Giáo trình Access 5.6.3. Tạo ơ tính tốn trong subform Khi tạo một subform, bạn cĩ thể muốn hiển thị subform thơng tin tổng hợp ở dạng tổng thể. Ví dụ, bạn cĩ thể muốn hiển thị số lượng của các record trong subform tại một vị trí nào đĩ trên Mainform. Ví dụ: Cần hiển thị sỉ số sinh viên trong mỗi lớp trên main form Trước khi đặt ơ tính tốn tổng hợp dữ liệu trên Mainform thì giá trị của nĩ phải được tính trong Subform. Ơ tính tốn tổng hợp dữ liệu phải được đặt trong phần footer của Subform. Ví dụ: ðếm tổng số sinh viên theo lớp. -96-
  26. Giáo trình Access Sau đĩ, trên Mainform bạn chèn một text box với ControlSource được thiết lập giá trị như sau: =[SubformName].Form![ControlName_inSubform] Trong đĩ: SubformName: là tên của Subform ControlName_inSubform: tên của ơ tính tốn tổng hợp dữ liệu trong Subform. Ví dụ: 5.7. Tab control Tab control là một cơng cụ cho phép bạn cĩ thể hiển thị nhiều nội dung trên một khơng gian hạn chế, bằng cách các tổ chức nội dung cần hiển thị trên từng trang riêng biệt. Tab control khơng phải là lựa chọn tốt vì nhược điểm của nĩ là cần phải click chuột để di chuyển từ tab này sang tab khác. Một tab control cĩ ý nghĩa nhất khi các form được thiết kế chủ yếu cho việc xem hoặc chỉnh sửa dữ liệu, nếu dữ liệu này cĩ thể được chia thành các nhĩm logic, và cơng việc chỉnh sửa thường chỉ liên quan đến một nhĩm, thì tab control là lựa chọn tốt. -97-
  27. Giáo trình Access 5.7.1. Sử dụng tab control Trong Form Design Tools trên thanh Ribbon Chọn Design, trong nhĩm Controls, click nút Tab Control Vẽ tab control vào form tại vị trí thích hợp. Thêm tất cả các trang cần thiết. 5.7.2. Hiệu chỉnh tab Control a) Thêm và xĩa tab Khi tạo mới một tab control thì luơn mặc định cĩ hai trang bạn cĩ thể thêm hoặc xĩa bằng cách Click phải chọn Insert hoặc Delete Page. b) Tạo nhãn cho các tab Chọn tab muốn tạo nhãn. Mở Properties Sheet Chọn thuộc tính caption: nhập nhãn cho các trang. c) Sắp xếp lại thứ tự tab Sắp xếp thứ tự của các trang bằng cách click phải trên tabchọn Page Order Chọn Pageclick nút Move Up/Move Down. d) ðặt các control vào trang Chọn trang thích hợp. Chọn control trong Navigation pane, drag chuột đưa vào trang. 5.8. Navigation Form Access 2010 giới thiệu một dạng form mới là Navigation form, là một form cĩ một navigation control mà nĩ cĩ thể hiển thị một hoặc nhiều form và report, navigation control cĩ nhiều tab giúp bạn cĩ thể di chuyển nhanh đến bất kỳ một form khác, hoặc form dạng Main/Sub. -98-
  28. Giáo trình Access 5.8.1. Tạo Single level Navigation Form: Trong nhĩm lệnh Forms trên thanh Ribbon, click nút dropdown Navigation. Chọn dạng Navigation, gồm các dạng: Horizontal Tabs. Vertical Tabs, Left. Vertical Tabs, Right. Horizontal Tabs, 2 levels Horizontal Tabs and Vertical Tabs, Left. Horizontal Tabs and Vertical Tabs, Right Navigation form xuất hiện trong chế độ Design view với sự kết hợp của hai control: một control subform rỗng và lớn và một navigation. ðể thêm một navigation button vào form, click chọn một form trong Navigation Panel của Access và drag chuột kéo form vào navigation control -99-
  29. Giáo trình Access ðể thay đổi nhãn của Navigation button, bạn double click vào nhãn và nhập tên mới. Tạo khoảng cách giữa các navigation button bằng cách chọn Form Layout Tools, chọn tab Arrange➝ Control Padding, chọn loại khoảng cách. 5.8.2. Tạo Two level Navigation Form Trong nhĩm lệnh Forms trên thanh Ribbon, click nút dropdown Navigation. Chọn dạng Navigation: Horizontal Tabs, 2 levels Xuất hiện một Navigation Form ở chế độ Layout view với sự kết hợp của ba control: một control subform rỗng và lớn và hai navigation control. Tạo tiêu đề cho level1 bằng cách double click vào khung [Add New] Nhập tiêu đề. Thêm submenu cho tiên đề này bằng cách drag chuột kéo form từ trong navigation pane vào submenu. - 100 -
  30. Giáo trình Access 5.9. Liên kết đến dữ liệu quan hệ (Link to Related Data) Ngồi cách dùng navigation form để di chuyển đến các subform, trong cùng một form, Access 2010 cịn cung cấp cách khác để di chuyển từ form này đến form khác. Ví dụ từ form Lớp, bạn cĩ thể chuyển sang một form khác chứa danh sách các sinh viên của lớp đĩ. 5.9.1. Hiển thị các record quan hệ trong form riêng biệt Như phần trên đã trình bày, Subform dùng để thể hiện các record quan hệ của bảng cha trên Mainform. Tuy nhiên, subforms khơng luơn luơn cung cấp cho bạn đủ chỗ để làm việc. Tùy thuộc vào cách bạn làm việc và số lượng thơng tin lớn, bạn cĩ thể hiển thị các record quan hệ trong một form khác bằng cách thêm một nút trên Mainform, khi click nút sẽ mở form chứa các record quan hệ. 5.9.2. Tạo Button dùng để mở form chứa records quan hệ Mở Mainform ở dạng Design hoặc dạng Layout Trong nhĩm lệnh Form Design Tools, chọn tab Design. Click nút Button, drag chuột vẽ vào form. Xuất hiện cửa sổ Button wizard. Trong khung Categories, chọn nhĩm lệnh Form Operation. Trong khung action chọn lệnh Open Form. Click Next. Chọn Subform hiển thị -100-
  31. Giáo trình Access các record quan hệ. Click Next. Chọn tùy chọn: Open the form and find specific data to display. Click Next. Chọn field quan hệ giữa hai form, là field mà dựa trên giá trị của nĩ để lọc ra các record quan hệ trong Subform. Click Next. Chọn Text/Picture hiển thị trên Button. Click Next. Nhập tên cho nút, Click Finish. Ví dụ: Trong form Danh sách lớp, click nút Danh sách sinh viên của lớp sẽ mở form chứa các sinh viên của lớp trong mainform -101-
  32. Giáo trình Access Chương 6 REPORT - BÁO CÁO 6.1. Giới thiệu Report là cơng cụ để tạo các báo cáo, kết xuất dữ liệu ra màn hình hoặc máy in để cung cấp một hard copy của dữ liệu. Giống như form, dữ liệu nguồn của report cĩ thể là bảng hoặc là query. Report cung cấp một cách linh hoạt nhất để xem và in thơng tin tổng hợp. Nĩ hiển thị thơng tin chi tiết theo mức độ mà người dùng mong muốn, cho phép bạn xem hoặc in thơng tin theo nhiều định dạng khác nhau. Cĩ 4 loại Report cơ bản: − Tabular reports. − Columnar reports. − Mailing-label reports. 6.2. Cách tạo report 6.2.1. Tạo bằng lệnh Report: Chức năng Report là cơng cụ tạo Report nhanh và dễ dàng, thường dùng để tạo những Report đơn giản cĩ dữ liệu nguồn từ một bảng hoặc một query. ðể tạo bằng chức năng Report ta phải chọn dữ liệu nguồn cho Report − Click nút Report trong nhĩm lệnh Report trên thanh Ribbon. − Xuất hiện report dạng Tabular ở chế độ Layout. -102-
  33. Giáo trình Access 6.2.2. Tạo report bằng chức năng Wizard Chọn tab Create trên thanh Ribbon, trong nhĩm lệnh Reports, click nút Report Wizard. Chọn Table/Query làm dữ liệu nguồn cho Report. Chọn các field hiển thị trên Report trong khung Available Field click nút để chọn một field và click nút để chọn nhiều field. Click Next. Nếu report lấy dữ liệu nguồn từ một bảng thì bỏ qua bước này, ngược lại nếu dữ liệu lấy từ nhiều bảng thì chọn field kết nhĩm. Click Next. Chọn field mà bạn muốn sắp xếp dữ liệu cho report. Cĩ thể sắp xếp kết quả trong report bằng cách kết hợp tối đa là 4 field. -103-
  34. Giáo trình Access Chọn dạng Report Layout: gồm 3 dạng Columnar, Tabular, Justified. Orientation: chọn hướng trang in Portrait (trang đứng), Landscape (trang ngang). Click Next. Nhập tiêu đề cho report Chọn chế độ xem report sau khi tạo xong Preview the report. Modify the report’s design. Click Finish để kết thúc. 6.2.3. Tạo report bằng Design a) Cách tạo Chọn Table/Query làm dữ liệu nguồn cho report. Chọn tab Create trên thanh Ribbon, trong nhĩm lệnh Reports, click nút Report Design. Xuất hiện cửa sổ thiết kế report và field list chứa các field trong dữ liệu nguồn của report. -104-
  35. Giáo trình Access Lần lượt drag chuột kéo các field trong field list hoặc các control trong nhĩm lệnh Controls trên thanh Ribbon thả vào report. b) Các phần trong cửa sổ thiết kế report Một report gồm các phần: Page Header/Footer, Report Header/Footer, Detail, Group Header/Footer (Các report cĩ phân nhĩm). Page Header/Footer: Chứa tiêu đề đầu trang và cuối trang. Nội dung đặt trong phần Page Header/Footer sẽ xuất hiện ở đầu và cuối mỗi trang. Report header Page header Page footer -105-
  36. Giáo trình Access Các nội dung thường đặt trong Page Header/Footer. Page Numbers: Chèn số trang. Logo: chèn Logo cho Report. Title: chèn tiêu đề cho Report. Date and Time: Chèn ngày giờ hiện hành của máy. Lưu ý: Page Header khơng chứa các ơ thống kê dữ liệu. Report Header/Footer: Tiêu đề đầu và cuối report, nội dung đặt trong Report Header/Footer chỉ xuất hiện ở phần đầu của trang đầu tiên và phần cuối trang của trang cuối cùng. Các nội dung thường đặt trong Report Header/Footer. Cơng thức tính tốn, thống kê dữ liệu. Detail: chứa nội dung chính của report, hiển thị dữ liệu trong dữ liệu nguồn dưới dạng các textbox bound control, mỗi textbox là một field dữ liệu hoặc các textbox dạng unbound control dùng để tạo thêm field mới. Group Header/Footer (Các report cĩ phân nhĩm): đối với các report cĩ phân nhĩm giống như form dạng main-sub thì ngồi các phần cơ bản cịn cĩ thêm phần kết nhĩm là group header/Footer. Nội dung trong phần group header/Footer là tiêu đề của nhĩm. Thống kê dữ liệu theo nhĩm. c) Hiệu chỉnh Report ðể hiệu chỉnh report, ta mở report ở chế độ design view. Chọn các control muốn hiệu chỉnh. Mở Properties Sheet, chọn thuộc tính đê hiệu chỉnh. Cách hiệu chỉnh tương tự như đối với form. -106-
  37. Giáo trình Access 6.3. Tạo report cĩ phân nhĩm Chức năng kết nhĩm của Report là một cơng cụ mạnh và khơng thể thiếu để làm khối lượng lớn dữ liệu cĩ ý nghĩa bằng cách sắp xếp chúng thành các nhĩm nhỏ hơn, và thực hiện các phép tính tốn thống kê trên mỗi nhĩm riêng biệt. Cĩ 3 cách sử dụng nhĩm để phân tích dữ liệu trong report Sử dụng Total Query. Sử dụng Report Grouping. Sử dụng Subreports. 6.3.1. Sử dụng Total Query Trong trường hợp này, report khơng chứa phần chi tiết mà chỉ chứa các ơ thống kê dữ liệu: Sum, Avg, Min, Max trong phần Detail của report. Cách thực hiện như sau: Tạo Total Query, trong query chọn field làm tiêu chuẩn thống kê, field chứa dữ liệu thống kê và chọn phép thống kê. Ví dụ: Tạo report tính tổng số lượng và tổng tiền đã bán của từng sản phẩm Tạo report, sử dụng Total query đã tạo ở trên. -107-
  38. Giáo trình Access 6.3.2. Report Grouping Report grouping giúp bạn cĩ thể tổ chức khối lượng lớn các thơng tin vào các nhĩm. Với cách này report sẽ thể hiện dữ liệu chi tiết trong từng nhĩm và cĩ thể thêm nhiều cấp độ nhĩm theo các tiêu chí khác nhau. Cách tạo như sau: Trên thanh Ribbon, chọn tab Create, trong nhĩm lệnh Reports, click nút Report Design. Xuất hiện cửa sổ thiết kế Report, thanh Ribbon chuyển sang tab Design. Trong Properties Sheet, chọn Tab Data, tại thuộc tính Record source, chọn Table/Query làm dữ liệu nguồn cho Report. Click nút Group& Sort trong nhĩm lệnh Grouping & Totals. Trong cửa sổ thiết kế xuất hiện khung Group, Sort and Total bên dưới cửa sổ thiết kế. -108-
  39. Giáo trình Access Click khung Add a Sort để chọn field sắp xếp. Click nút Add a group để chọn field kết nhĩm, chọn field kết nhĩm trong field list, trên cửa sổ thiết kế xuất hiện thanh group header. Khung Group, Sort and Total cĩ dạng như hình: Mở thanh group footer và thực hiện các phép thống kê bằng cách click nút More, cửa sổ Group, Sort and Total cĩ dạng: Click nút with no Total để mở menu Totals: Total On: chọn field chứa dữ liệu thống kê Type: Chọn phép thống kê. -109-
  40. Giáo trình Access Chọn vị trí đặt các ơ thống kê bằng cách check vào các ơ tùy chọn: Show Grand Total: ðặt ơ thống kê trong phần report header/footer. Show group subtotal as % of Grand Total: ðặt ơ thống kê trong phần report header/footer. Show subtotal in group header: ðặt ơ thống kê trong phần group header. Show subtotal in group footer: ðặt ơ thống kê trong phần group footer. Drag chuột kéo các field phân nhĩm đưa vào group header, và các field cịn lại đưa vào phần detail. Ví dụ: thiết kế report Hĩa đơn bán hàng Nếu cần thêm field kết nhĩm thì trong khung Group, Sort and Total click tiếp trong ơ Add a group để chọn field tiếp theo. -110-
  41. Giáo trình Access 6.3.3. SubReport Subreport cĩ tác dụng tương tự như Report grouping. Sự khác biệt duy nhất là tạo các report trong hai phần riêng biệt: Main Report và SubReport. Main Report SubReport Cách tạo: − Tạo Main Report, dữ liệu nguồn thường là bảng cha. − Tạo Sub Report, dữ liệu nguồn phải chứa field liên kết với Main Report. − ðưa Sub Report vào Main Report cĩ thể dùng cơng cụ SubForm/SubReport trong nhĩm lệnh Controls. − Thiết lập thuộc tính Link child Fields và Link master Fields. 6.3.4. Tạo report cĩ phân nhĩm bằng wizard Dữ liệu nguồn cho report cĩ phân nhĩm thường được lấy từ nhiều bảng cĩ quan hệ 1-n, field kết nhĩm thường là field khĩa chính của bảng 1. − Tạo dữ liệu nguồn cho report theo yêu cầu phân nhĩm. − Trên thanh Ribbon, chọn tab Create, click nút Report -111-
  42. Giáo trình Access Wizard -112-
  43. Giáo trình Access − Chọn dữ liệu nguồn cho report là query đã tạo trước. − Chọn các field hiển thị trong kết quảNext. − Nếu dữ liệu cĩ quan hệ 1-n thì access tự phân nhĩmNext. − Chọn thêm field kết nhĩm thứ hai nếu cĩ yêu cầu (hiển thị hai quan hệ 1-n), nếu khơng thì click Next. − Nếu trong report cĩ chứa field cĩ dữ liệu kiểu số thì trong cửa sổ ở bước này xuất hiện nút Summary Option − Click nút Summary Options để chọn phép thống kê. -113-
  44. Giáo trình Access − Các phép thống kê gồm: Sum, Avg, Min, Max. − Trong mục Show cĩ hai tùy chọn Detail and Summary: hiển thị chi tiết và ơ thống kê dữ liệu. Summary Only: chỉ hiển thị ơ thống kê dữ liệu. − Chọn xong click OK và click Next để tiếp tục. − Chọn Layout cho report, cĩ ba dạng Layout: Steped: tiêu đề của cột lặp lại ở đầu của mỗi trang. Block và Ouline: tiêu đề của cột lặp lại trong từng nhĩm. − Orientation: chọn hướng giấy in. Portrait: trang đứng. Landscape: trang ngang. − Chọn xong click Next, nhập tiêu đề cho report, click Finish. 6.3.5. Ngắt trang trong report phân nhĩm ðối với các report cĩ phân nhĩm, thường người dùng cĩ nhu cầu hiển thị dữ liệu trong mỗi nhĩm trên một trang, để thực hiện ta dùng chức năng ngắt trang theo nhĩm: − Click phải trên thanh group header, chọn propertiesTại thuộc tính Force New Pagechọn Before section. -114-
  45. Giáo trình Access 6.4. Preview Rport Sau khi thiết kế xong, bạn phải xem Report trước khi in, hình thức của report xem ở chế độ preview sẽ là hình thức khi in ra giấy. ðể xem report trước khi in bạn chọn một trong các cách sau: − Chọn Tab FileChọn PrintPrint Preview. − Chọn tab HomeViewPrint Preview. 6.5. ðịnh dạng report Access 2010 cung cấp một cơng cụ cho phép định dạng report với các mẫu phong phú và đẹp giúp bạn cĩ thể định dạng font chữ và màu chữ cho report một cách nhanh chĩng và dễ dàng. 6.5.1. Tạo lưới cho report: − Mở report ở chế độ Layout. − Thanh Ribbon chuyển sang Report Layout Tools. − Chọn khối dữ liệu cần tạo lưới. − Click nút Gridlinechọn kiểu lưới. 6.5.2. Thiết lập thuộc tính của các đối tượng trong report − Click phải trên đối tượng cần thay đổi thuộc tính, chọn properties Sheet. Property Mơ tả ðịnh dạng kiểu dữ liệu numbers, dates, Format times, text . Decimal Places Số số lẻ. Visible Hiển thị hoặc ẩn control. Xác định vị trí của control theo chiều Left ngang. Top Xác định vị trí của control theo chiều dọc. -115-
  46. Giáo trình Access Width Xác định độ rộng của control. Height Xác định chiều cao của control. Chọn màu nền của control. Click nút Back Color để chọn màu. Special Effect Chọn hiệu ứng 3-D cho control. Chỉ định kiểu đường viền của control Border Style transparent lines, solid lines, dashed lines Border Color Màu đường viền. Border Width ðộ rộng của đường viền. Chỉ định màu cho văn bản trong các Fore Color control. Font Name Chọn font chữ. Font Weight Chữ đậm. Font Italic Chữ nghiêng. Font Underline Gạch dưới. Text Align Canh lề cho văn bản trong control. 6.5.3. ðịnh dạng dữ liệu a) Tạo cột số thứ tự Khi tạo report cĩ dạng danh sách, ngồi các field trong cơ sở dữ liệu, ta cĩ thể tạo thêm cột số thứ tự cho danh sách: Mở report ở chế độ design. Tạo một textbox trong phần detail Nhâp nội dung cho textbox =1 Click phải trên textboxpropertieschọn tab Data. Tại thuộc tính Running Sum: chọn kiểu đánh số thứ tự. No: khơng đánh số thứ tự Over Group: đánh số thứ tự theo nhĩm, dùng cho report cĩ phân nhĩm. Over All: đánh số thứ tự trên tồn bộ danh sách, dùng cho report khơng phân nhĩm. -116-
  47. Giáo trình Access b) ðịnh dạng dữ liệu kiểu Text ðịnh dạng văn bản trong các control dùng thanh cơng cụ trong nhĩm Text Formatting − Mở report ở chế độ Design hoặc Layout view. − Chọn các ơ chứa văn bản cần định dạng . − Chọn font chữ trong khung font, kích thước trong khung size − Ngồi ra các định dạng khác, cĩ thể sử dụng menu tắt khi click chuột phải trên các control cần định dạng. c) ðịnh dạng dữ liệu cĩ điều kiện Với cơng cụ conditional formatting bạn cĩ thể nhấn mạnh một thơng tin nào đĩ theo các định dạng khác nhau. − Chọn giá trị trong cột mà bạn muốn định dạng − Chọn Report Layout Tools, chọn tab Format − Trong nhĩm lệnh Control Formating, click nút Conditional Formatting. − Xuất hiện cửa sổ Condition Formating Rules Manager − Click nút New Rule, Xuất hiện cửa sổ New Formating Rule -117-
  48. Giáo trình Access − Select a rule type: chọn loại rule − Edit the rule decription: Nhập rule mới − Chọn kiểu định dạng cho ruleOK Ví dụ: ðánh dấu những sinh viên cĩ điểm trung bình <5, với định dạng nền xanh chữ trắng. -118-
  49. Giáo trình Access Chương 7 MACRO – TẬP LỆNH 7.1. Giới thiệu Một macro là một tập hợp của một hoặc nhiều hành động thực hiện chính xác theo một trình tự từ trên xuống để phục vụ các yêu cầu thao tác trên các đối tượng trong cơ sở dữ liệu. Một macro giúp bạn thực hiện các cơng việc hàng ngày bằng cách tự động hĩa chúng. Thay vì thực hiện bằng tay các cơng việc lặp đi lặp lại, bạn cĩ thể ghi lại một macro đơn giản cho tồn bộ cơng việc một lần. Xây dựng macro bao gồm các hành động lựa chọn từ một danh sách, và sau đĩ điền vào các đối số của hành động. Giả sử xây dựng một form với nút đĩng form bằng cách tạo nút trên form và xây dựng một macro để đĩng form sau đĩ gán macro cho sự kiện Click của nút. Object: Button Event: Click Action:Close Cĩ 3 loại Macro − Standalone macros: Là một đối tượng của cơ sở dữ liệu, macro này sau khi được tạo và lưu thì nĩ xuất hiện trong phần Macro của Navigation Pane − Data macros: Là loại macro được lưu trữ như một phần của một table. Bạn cĩ thể thiết kế sao cho table thực thi macro trước -119-
  50. Giáo trình Access hoặc sau khi một record được thêm, chỉnh sửa hoặc xĩa -120-
  51. Giáo trình Access − Embedded macros: Là loại macro được lưu trữ như một phần của một form hoặc report. Macros này chỉ thực thi khi form hoặc report hoặc một đối tượng trên form hoặc report chịu tác động của một sự kiện. 7.2. Cách tạo và thực thi Standalone macros: 7.2.1. Cách tạo: − Chọn tab Create trên thanh Ribbon, trong nhĩm lệnh Macro & Code, click nút Macro − Xuất hiện cửa sổ thiết kế Macro với các thành phần: Khung bên trái dùng để chọn các action trong Macro. Khung bên phải chứa các Action theo nhĩm và các đối tượng trong cơ sở dữ liệu đã được gán macro. − Chọn Action trong khung Add New Action. − Ứng với những Action khác nhau thì xuất hiện các ơ cho bạn chọn hoặc nhập các argument tương ứng. − Ví dụ: khi chọn Action là GotoRecord thì sẽ xuất hiện các Argument như hình. -121-
  52. Giáo trình Access − Tiếp tục chọn Action tiếp theo bằng cách click Add new Action. 7.2.2. Thực thi macro − ðối với macro khơng gán cho sự kiện của một đối tượng cụ thể thì chọn tên macro và click nút run để thực thi hoặc double click vào tên macro, thường dùng cho các macro chứa các lệnh Open. Ví dụ: macro mở form. − ðối với macro mà chỉ cĩ thể thực thi khi tác động vào một đối tượng cụ thể trên form hoặc report thì sau khi tạo và lưu macro thì phải gán macro cho sự kiện của đối tượng cụ thể. Các thực hiện Mở form hoặc report chứa đối tượng cần gán macro. Click phải trên đối tượng chọn properties, hoặc chọn đối tượngMở properties Sheet. Chọn tab Event, chọn sự kiện (event). Trong danh sách xổ xuống chọn tên Macro. 7.2.3. Sub Macro: Các macro cĩ cùng tính chất, cùng chức năng hoặc thực hiện các hành động trên cùng một form, report thường được tạo trong cùng một macro, các macro được tạo bên trong một macro gọi là -120-
  53. Giáo trình Access Submacro. Một macro chứa nhiều Submacro bên trong nĩ vì vậy mỗi Submacro thành phần bên trong phải được phân biệt bằng một tên riêng. Cách tạo: − Trong cửa sổ thiết kế Macro, mở khung Action Catalog bằng cách click nút Action Catalog trong tab Design trên thanh Ribbon. − Drag chuột kéo Submacro trong khung Action Catalog vào cửa sổ thiết kế macro. − Trong cửa sổ thiết kế xuất hiện khung Submacro. − Nhập tên cho Submacro − Chọn Action cho Submacro. − Khi gán Submacro, ta truy xuất vào tên của Submacro. 7.2.4. Các Actions và các Events thơng dụng a) Actions: Trong Access 2010 action được chia thành nhĩm theo chức năng. -121-
  54. Giáo trình Access Data Entry Operations Macro Commands DeleteRecord OnError EditListItems RemoveAllTempVars SaveRecord RunDataMacro Database Objects RunMenuCommand GotoControl SetLocalVar GotoPage SetTempVar GotoRecord StopAllMacros OpenForm StopMacro OpenReport System Commands OpenTable Beep PrintObject CloseDatabase PrintPreview QuitAccess SelectObject User Interface Commands SetProperty AddMenu Filter/Query/Search BrowseTo ApplyFiler LockNavigationPane FindNextRecord MessageBox FindRecord SetMenuItem OpenQuery UndoRecord Refresh Window Management RemoveFilterSort CloseWindow SetFilter MaximizeWindow SetOrderBy MinimizeWindow ShowAllRecords MoveAndSizeWindow RetoreWindow. b) Events: Sự kiện tác động lên đối tượng để thực thi macro. Tùy thuộc vào đối tượng khác nhau sẽ cĩ những event khác nhau. -122-
  55. Giáo trình Access − Mouse và Keyboard event Event Ý nghĩa Click click chuột trên đối tượng. DblClick Double click trên đối tượng. MouseDown Nhấn phím của chuột trên một đối tượng. MouseMove Di chuyển chuột ngang đối tượng. MouseUp Thả phím của chuột khi đang trỏ đến đối tượng KeyDown Nhấn phím của bàn phím KeyUp Thả phím − Form Event Event Ý nghĩa Open Khi form được mở, nhưng record đầu tiên chưa hiển thị Load Khi form được load vào bộ nhớ nhưng chưa mở Resize Khi kích thước của form thay đổi Unload Khi đĩng form và record unload, và trước khi form di chuyển khỏi màn hình Close Khi đĩng form Activate Khi form nhận focus, trở thành cửa sổ active GotFocus Khi form khơng active LostFocus Khi form mất focus − Form Data Events Event Ý nghĩa Khi di chuyển một record khác đến record Current hiện hành BeforeInsert Sau khi dữ liệu đầu tiên được nhập vào new record và trước khi record thực sự được tạo AfterInsert After the new record được thêm vào bảng BeforeUpdate Trước khi dữ liệu thay đổi được cập nhật vào record. -123-
  56. Giáo trình Access Sau khi dữ liệu thay đổi được cập nhật vào AfterUpdate record. Khi filter được chỉ định nhưng trước khi nĩ Filter được áp dụng. ApplyFilter Sau khi filter được áp dụng vào form. − Control Event Event Ý nghĩa Trước khi dữ liệu trong control thay đổi thì BeforeUpdate cập nhật vào recordset. Sau khi sự thay đổi dữ liệu được cập nhật AfterUpdate vào recordset của form. Change Khi nội dung trong text box thay đổi. GotFocus Khi một control nhận focus LostFocus Khi một control mất focus Click Khi click chuột DblClick Khi double click 7.3. Tạo Data Macro Data macro là loại macro được lưu trữ như một phần của một table, macro này khơng xuất hiện trong phần macro của Navigation pane. 7.3.1. Cách tạo: Mở bảng ở chế độ Design view bằng cách click phải trẹn tên của Table trong Navigation Pane và chọn Design view. Click nút Create Data Macros trong nhĩm lệnh Field, Record & Table Event. Xuất hiện danh sách các sự kiện (Event) của data macro: After Insert After: Sau khi một record mới được thêm vào bảng. After Update: Sau khi bất kỳ một field trong bảng được uppdate. After Delete: Sau khi một record trong bảng bị xĩa -124-
  57. Giáo trình Access Before Delete: Khi một record trong bảng bị xĩa. Before Change: Khi một record trong bảng được uppdate. Chọn một event trong danh sách. Xuất hiện cửa sổ thiết kế macro, chọn action cho macro theo yêu cầu. ðĩng cửa sổ thiết kế macro, trở lại cửa sổ thiết kế bảng. ðĩng cửa sổ thiết kế và lưu sau đĩ mở bảng lại ở chế độ datasheet view. Ví dụ: tạo một data macro để ngăn khơng cho người nhập liệu để trống ơ đơn vị tính. Khi nhập dữ liệu hoặc chỉnh sửa dữ liệu trong bảng nếu để trống ơ đơn vị tính thì xuất hiện thơng báo như hình. 7.3.2. Các Action của data macro DeleteRecord: Như tên gọi của nĩ, DeleteRecord xĩa một record trong một bảng (khơng cĩ xác nhận của người dùng). Rõ ràng, DeleteRecord phải được cẩn thận sử dụng để ngăn chặn việc xĩa dữ liệu quý giá từ ứng dụng CancelRecordChange: Hủy bỏ các thay đổi được thực hiện bởi EditRecord và CreateRecord -125-
  58. Giáo trình Access − ExitForEachRecord: ForEachRecord duyệt qua một Recordset mà nĩ được trả về từ một Table hoặc Query, cho phép macro thay đổi dữ liệu của recordset. Cĩ nhiều tình huống mà data macro cần phải thốt khỏi một vịng lặp ForEachRecord trước khi duyệt đến cuối recordset. Ví dụ một data macro tìm kiếm một giá trị trong một bảng, và hai giá trị được tìm thấy, khơng cĩ cần phải tiếp tục vịng lặp thì ExitForEachRecord được thực hiện theo một điều kiện. − LogEvent: Tất cả các ứng dụng của Access 2010 bao gồm một bảng UsysApplicationLog được sử dụng để ghi lại các lỗi data macro và cĩ thể được sử dụng truy cập các thơng tin khác. LogEvent để thêm một record vào USysApplicationLog bất cứ lúc nào bạn muốn từ một data macro. − SendEmail: gửi một e-mail bằng cách sử dụng Microsoft Office Outlook. − SetField: cập nhật giá trị của một field trong một bảng. Những argument của SetField bao gồm tên bảng và tên field, và giá trị mới để gán cho field này. − SetLocalVar: Macro trong Access 2010 cĩ thể sử dụng các biến cục bộ để thơng qua các giá trị từ một phần của một macro khác. − StopMacro: để chấm dứt và thốt khỏi macro. Hầu hết thường được sử dụng kết hợp với một khối lệnh IF − StopAllMacros: Kết thúc các Action thực hiện song song. − RunDataMacro: ðối số duy nhất của nĩ là tên của một số data macro khác, đơn giản chỉ để gọi macro và cho phép nĩ thực hiện các Action của nĩ như là một hoạt động đơn lẻ. − OnError: Action chính trong Access 2010 về xử lý lỗi macro. OnError chỉ thị cho Access phải làm gì khi lỗi xảy ra trong quá trình thực hiện macro. -126-
  59. Giáo trình Access − RaiseError: thơng qua một lỗi chuyển đến các lớp giao diện người dùng. Ví dụ sử dụng RaiseError cho sự kiện BeforeChange để xác nhận dữ liệu trước khi cĩ sự thay đổi trong cơ sở dữ liệu. − ClearMacroError: Action này thực thi khi một lỗi đã được xử lý bằng action RaiseError. 7.3.3. Xĩa data macro − ðể xĩa data macro, ta mở bảng ở chế độ Design view. − Click nút Rename/Delete macro. 7.4. Embedded macros Khi tạo một nút lệnh trên form bằng chức năng wizard thì một macro được gắn liền với form giống như data macro được gắn liền với bảng. Macro này khơng xuất hiện trong phần macro của Navigation pane. ðể xem hoặc hiệu chỉnh nội dung của Embedded macro ta mở form hoặc report ở chế độ design view, chọn nút lệnh và mở properties sheet của nút lệnh, tại event, click nút , xuất hiện cửa sổ thiết kế macro, sau đĩ thực hiện hiệu chỉnh. 7.5. Hiệu chỉnh macro 7.5.1. Thay đổi action arguments. − Click chọn một action − Xuất hiện các text box cho phép nhập hoặc hiệu chỉnh argument của action. − Lưu lại kết quả sau khi thay đổi. -127-
  60. Giáo trình Access 7.5.2. Sắp xếp các actions − Click vào bất kỳ phần nào của action, ngoại trừ bên trong các text box. − Drag chuột kéo action đến vị trí mới. − Hoặc click vào nĩ, và sau đĩ sử dụng lên và xuống các phím mũi tên trên bàn phím hoặc mũi tên màu xanh trong cửa sổ thiết kế. 7.5.3. Thêm một action mới. Bên dưới của mỗi macro luơn cĩ một ơ Add New Action chờ để bạn lựa chọn một action. Tuy nhiên, cĩ một cách khác để tìm thấy những action là dựa vào khung Action categories, bằng cách double click vào action mà bạn muốn thêm vào macro. 7.5.4. Xĩa một action. − Chọn action cần xĩa − Click nút delete bên phải hoặc nhấn phím Delete 7.6. Các hàm thường dùng trong biểu thức điều kiện 7.6.1. Hàm MsgBox («msg», «type», «title»): Hàm cĩ tác dụng cho xuất hiện hộp thơng báo, trên hộp thơng báo cĩ các nút yes, no, ok, để cho người dùng chọn lựa. Giá trị trả về của hàm chính là sự chọn lựa click vào nút lệnh nào trên hộp thơng báo. a) Các tham số của hàm − Message: Nội dung của chuỗi thơng báo. − Type: giá trị số biểu diễn các nút lệnh và biểu tượng trên hộp thơng báo. − Title tiêu đề của hộp thơng báo. b) Giá trị số của các biểu tượng và nút lệnh trên hộp thơng báo -128-
  61. Giáo trình Access Giá trị số Biểu tượng và nút lệnh trên hộp thơng báo 16 Biểu tượng dấu cấm. (Stop) 32 Biểu tượng dấu hỏi. (Question) 48 Biểu tượng dầu cảm thán. (Exclamation) 1 Gồm hai nút OK, Cancel. 2 Gồm ba nút Abort, Retry, Ignore. 3 Gồm ba nút Yes, No, Cancel. 4 Gồm hai nút Yes, No. 5 Gồm hai nút Retry, Cancel. c) Giá trị trả về của hàm là sự chọn lựa nút lệnh trên hộp thơng báo Giá trị trả về của Sự lựa chọn nút lệnh trên hộp hàm MsgBox thơng báo 1 Người sử dụng chọn nút OK. 2 Người sử dụng chọn nút Cancel. 3 Người sử dụng chọn nút Abort. 4 Người sử dụng chọn nút Retry. 5 Người sử dụng chọn nút Ignore. 6 Người sử dụng chọn nút Yes. 7 Người sử dụng chọn nút No. Ví dụ: khi click nút xĩa chương trình sẽ xuất hiện hộp thơng báo xác nhận “Bạn cĩ chắc chắn xĩa khơng?”, nếu người dùng click nút yes thì xĩa, ngược lại thì khơng xĩa. Biểu thức điều kiện cĩ dạng: -129-
  62. Giáo trình Access 7.6.2. DCount («expr», «domain», «criteria»): ðếm số record trong tập record được chỉ định bởi tham số > thỏa mãn điều kiện được chỉ định trong biểu thức >. expr: tên field muốn đếm số record domain: tên bảng chứa expr criteria: biểu thức điều kiện Ví dụ: =DCount ("[MaHD]", "HoaDon", "[MaKH] = ‘SJC’") 7.7. Macro Autoexec Macro Autoexec là macro tự động thực thi khi chương trình được khởi động và cĩ tên là autoexec. Macro autoexec thường dùng để mở form giao diện, khi ứng dụng được khởi động thì form giao diện tự động mở ra đầu tiên. ðể thực hiện ta tạo một macro autoexec chứa action OpenForm, Form name là tên form giao diện, tên macro là autoexec. 7.8. Xậy dựng hệ thống menu bằng macro Một ứng dụng hồn chỉnh thường cần đến hệ thống menu để liên kết các thành phần thành một hệ thống. Ví dụ: hệ thống menu trong chương trình quản lý hĩa đơn 7.8.1. Tạo macro cho hệ thống menu: Trong Access 2010, menu do người dủng tạo được tổ chức thành nhĩm giống như nhĩm lệnh trên thanh Ribbon đặt trong tab Add- In. − Tạo menu cấp 1: chính là Main Menu dùng action Addmenu với các Argument như sau: -130-
  63. Giáo trình Access Menu Name: tên các menu trong menu cấp 1. Menu Macro Name: tên macro để tạo menu cấp 2. StatusBar Text: Dịng văn bản xuất hiện trên thanh status bar khi menu được chọn. Giả sử Main menu gồm 4 Menu Tương ứng với mỗi Menu trong Main Menu ta tạo một Macro với tên chính là tên trong thuộc tính Menu Macro Name của Main Menu. − Tạo macro cho menu cấp 2: Macro này cĩ tên trùng với tên được đặt trong mục Menu Macro Name của macro cấp 1, mỗi menu là một macro Trong menu chính cĩ bao nhiêu menu con thì tạo bấy nhiêu macro -131-
  64. Giáo trình Access 7.8.2. ðưa menu vào chương trình ðể đưa menu vào hoạt động thì cần phải cĩ một form chính của chương trình, khi form này được mở thì hệ thống menu sẽ được kích hoạt: − Mở form chính ở chế độ design. − Click phải trên form properties. − Chọn tab Other. − Tại thuộc tính Menu bar, nhập tên macro cấp1. -132-
  65. Giáo trình Access Chương 8: MODULE 8.1. Giới thiệu Mặc dù macro đã hỗ trợ một cách nhanh chĩng và dễ dàng để tự động hĩa các ứng dụng nhưng macro khơng cĩ tính mềm dẽo, với những yêu cầu phức tạp thì macro khơng giải quyết được. Module là một cơng cụ của access dùng ngơn ngữ Visual Basic để tạo những chương trình nhằm giải quyết những hạn chế của macro. Module và các thủ thủ tục của nĩ là đối tượng chủ yếu của ngơn ngữ lập trình VBA (Visual Basiv for Application). Cĩ hai loại module: module dùng chung và module gắn liền với form, report. − Module dùng chung là những thủ tục, hàm được sử dụng chung cho tồn bộ các form, report cĩ trong tập tin cơ sở dữ liệu, các module này cĩ thể được gọi từ bất kỳ form, report nào, nĩ được chứa trong phần Module của Navigation pane. − Module gắn liền với form, report là những hàm, thủ tục gắn liền với các đối tượng trên form, report, các module này là một thành phần của form, report, nĩ khơng xuất hiện trong phần Module của Navigaiton pane. 8.1.1. Cửa sổ soạn thảo code VB − Trên thanh Ribbon, chọn tab Create, click nút Module trong nhĩm lệnh Macros & Code xuất hiện cửa sổ soạn thảo gồm các thành phần Project window: Khung chứa tất cả các module trong cơ sở dữ liệu. Properties window: Khi code chưa được tạo thì cửa sổ này là rỗng. Immediate window: cửa sổ thực thi lệnh trực tiếp. -133-
  66. Giáo trình Access − Document window: Cửa sổ soạn thảo code VB, khi tạo module mới trong cửa sổ này xuất hiện các dịng code mặc định Option Compare Database: Chỉ thị này cho Visual Basic biết cách xử lý các phép tốn so sánh các phần của văn bản. Option Explicit: Chỉ thị này cho Visual Basic kiểm tra lỗi nghiêm ngặt khi sử dụng các biến. 8.2. Cách tạo Module 8.2.1. Tạo một module dùng chung − Trên thanh Ribbon chọn tab Create Module. − Xuất hiện cửa sổ soạn thảo. − Nhập code của các thủ tục trong cửa sổ soạn thảo. − Click nút run để thực thi module, hoặc gọi module từ các module hoặc các đối tượng khác trong cơ sở dữ liệu. − Sau khi hồn tất lưu module, module này xuất hiện trong phần Module của thanh Navigation. − Nếu đang làm việc trong cửa sổ soạn thảo thì các module dùng chung xuất hiện trong Project Window -134-
  67. Giáo trình Access 8.2.2. Module gắn với form, report: − Mở đối tượng form hoặc report ở chế độ design. − Click phải trên control muốn gán modulechọn properties. − Chọn tab eventchọn event thích hợpClick nút − Xuất hiện cửa sổ Choose Builder. − Chọn lệnh Code BuilderOK. − Xuất hiện cửa sổ soạn thảo module với nội mặc định Sub ControlName_SuKien() Code do người dùng nhập End Sub − Mở Form hoặc report, tác dụng sự kiện vào control để thực thi module. − Module này đi liền với form hoặc report. 8.2.3. Các thành phần trong module − Phần khai báo chung (Declaration Section): gồm những lệnh khai báo biến, hằng, và khai báo về cách thức làm việc. Các hằng, biến khai báo trong phần này sẽ cĩ hiệu lực trong tất cả các thủ tục. − Phần các thủ tục: gồm các thủ tục trong module, mỗi thủ tục gồm các lệnh khai báo biến, hằng, và các lệnh trong thủ tục, các hằng và biến trong phần này chỉ cĩ hiệu lực trong thủ tục khai báo nĩ. Cấu trúc của một thủ tục: Sub ( ) Các lệnh End Sub -135-
  68. Giáo trình Access Phần khai báo Phần thủ tục 8.2.4. Lệnh khai báo: a) Khai báo cách thức làm việc của access − Option Compare Database: so sánh căn cứ vào bộ mã riêng của từng nước. − Option Compare Text: so sánh khơng phân biệt chữ hoa, chữ thường. − Option Compare Binary: so sánh căn cứ vào giá trị nhị phân của các ký tự trong bảng mã. − Option Explicit: Thiết lập chế độ phải khai báo biến trước khi dùng, mặc định là khơng khai báo biến trước khi dùng. b) Khai báo biến: − Cú pháp: Dim As Ví dụ: Dim i As Integer, st As String*15 c) Phạm vi của biến: − Biến cục bộ: là biến được khai báo trong một thủ tục hoặc trong phần Declarations của form hoặc report, chỉ cĩ tác dụng trong thủ tục khai báo nĩ hoặc trong form hoặc report chứa nĩ. -136-
  69. Giáo trình Access − Biến tồn cục: là biến được khai báo sau từ khĩa Public, biến này được khai báo tại phần Declaration của Module dùng chung. Public As d) Khai báo hằng Hằng là đại lượng cĩ giá trị khơng đổi trong suốt quá trình thực thi chương trình. Cú pháp: [Public|Private] [As kiểu dữ liệu] = Ví dụ: Const ngay = #24/12/2004# 8.2.5. Lệnh gán Dùng để gán giá trị cho một biến hay một hằng. Lệnh gán được sử dụng trong thân của thủ tục. a) Lệnh Let: Gán giá trị của một biểu thức cho một biến. Cú pháp : [Let] tenBien| tenHam = BieuThuc tenBien.TenThanhPhan = BieuThuc tendoiTuong{ . | ! } (Thuoctinh | tenDoiTuong) = BieuThuc b) Lệnh Set : Gán đối tượng cho một biến thuộc loại đối tượng tương ứng. Cú pháp : Set tenBien = {[New] bieuThuc | Nothing} -137-
  70. Giáo trình Access Ví dụ : Sub Vidu Dim myDB as database Dim mySet As recordset Set myDb = CurrentDB Set mySet = myDb.OpenRecordSet(“NhanVien”) End Sub 8.3. Kiểu dữ liệu: 8.3.1. Kiểu số: Byte: Kiểu số nguyên dương trong phạm vi từ 0 255, chiếm 1 byte. Integer: Kiểu số nguyên, cĩ giá trị trong khoảng - 32768 32767, chiếm 2 bytes. Long: Kiểu số nguyên dài, cĩ giá trị trong khoảng 2,147,483,648 2,147,483,647, chiếm 4 bytes. Single: Kiểu số thực, cĩ giá trị trong khỏang 1.401298E- 45 to 3.402823E38. Chiếm 4 bytes. Double: Kiểu số thực cĩ giá trị trong khoảng 4.94065645841247E-324 to 1.79769313486232E308. Chiếm 8 bytes. Currency: Kiểu tiền tệ. Bản chất là kiểu số, chiếm 8 bytes, cĩ giá trị trong khoảng - 922,337,203,685,477.5808 to 922,337,203,685,477.5807. Ðặc biệt, kiểu này luơn cĩ ký hiệu tiền tệ đi kèm. 8.3.2. Kiểu chuỗi: String a) Variant : Variant là kiểu dữ liệu khơng tường minh, cĩ thể chứa giá trị số hoặc chuỗi Ví dụ: Dim a As Variant a = 123 a = “Nguyen Van Nam” -138-
  71. Giáo trình Access 8.3.3. Kiểu đối tượng thuộc cơ sở dữ liệu Database: Cơ sở dữ liệu đang mở Recordset: Tập hợp các mẫu tin Field : Trường trong bảng Form: Form đang sử dụng Form_TenForm: Form đang được chỉ định QueryDef: Bảng truy vấn (Query) TableDef: Bảng dữ liệu (Table) 8.4. Các hàm thơng dụng 8.4.1. Hàm MsgBox: Hàm cĩ tác dụng làm xuất hiện hộp thơng báo trên đĩ cĩ các nút cho người dùng chọn lựa, giá trị trả về của hàm là sự chọn lựa của người dùng trên hộp thơng báo. Cú pháp: MsgBox(“Câu thơng báo”, Kiểu HTB+ Biểu tượng,”Tiêu đề”) Trong đĩ: Câu thơng báo: là nội dung sẽ xuất hiện trong hộp thơng báo. Kiểu hộp thơng báo (HTB) gồm : VbOkOnly Hộp thơng báo chỉ cĩ nút OK VbOkCancel Hộp thơng báo gồm 2 nút OK và Cancel VbYesNo Hộp thơng báo gồm 2 nút Yes No VbYesNoCancel Hộp thơng báo gồm 2 nút Yes No và Cancel Biểu tượng trên hộp thơng báo gồm: vbCritical Biểu tượng X vbQuestion Biểu tượng ? vbExclamation Biểu tượng ! vbInformation Biểu tượng i -139-
  72. Giáo trình Access Giá trị trả về của hàm là VbYes, VbNo, VbOk, Ví dụ: − Lệnh MsgBox: cĩ tác dụng cho xuất hiện hộp thơng báo, khơng cĩ giá trị trả về. Cú pháp: MsgBox “Câu thơng báo”, Kiểu HTB, “Tiêu đề” 8.4.2. Hàm InputBox: Hiển thị hộp thơng báo, trên hộp thơng báo cĩ một textbox cho người dùng nhâp giá trị vào biến. Cú pháp: InputBox( “Câu thơng báo”, “Tiêu đề”, Giá trị mặc định Giá trị trả về của hàm InputBox là giá trị do người dùng nhập vào textbox Ví dụ: Sub tong() Dim a As Integer Dim b As Integer Dim t As Integer a = InputBox("Nhap a", "nhap du lieu", 0) b = InputBox("Nhap b", "nhap du lieu", 0) t = a + b MsgBox a & "+" & b & "=" & a + b, vbOKOnly, "ket qua" End Sub -140-
  73. Giáo trình Access 8.4.3. Hàm dữ liệu số a) Int( ): Lấy phần nguyên của b) Phép Mod: Mod , cho kết quả là phần dư của phép chia Number1 cho Number2 c) Format( , “format”): định dạng dữ liệu số hoặc chuyển chuỗi số thành số Ví dụ: ðịnh dạng dữ liệu số: Format(123456.789, “#,###.00)123.456,46 Chuyển chuỗi thành số Format(“123456.789”, “#,###.00)123.456,46 d) Val( ) : chuyển thành số. 8.4.4. Hàm xử lý chuỗi a) Left( ,n) b) Right(( ,n) c) Mid( ,m,n) d) Len( ) e) Trim( ) 8.5. Biến kiểu đối tượng Biến đối tượng là biến dùng để chỉ một loại đối tượng như CSDL, bộ các mẫu tin, biểu mẫu, điều khiển. Cĩ hai loại biến đối tượng: ðối tượng cĩ sẵn, khi dùng khơng cần phải khai báo. ðối tượng khơng cĩ sẵn, khi dùng phải khai báo. Mỗi đối tượng gồm cĩ các phương thức và thuộc tính, để truy xuất đến các phương thức và thuộc tính của đối tượng ta dùng cú pháp: . . -141-
  74. Giáo trình Access 8.5.1. Các đối tượng cĩ sẵn: 1. Application: Dùng để thực hiện các cơng việc liên quan đến ứng dụng. a) Các phương thức của Application: SetOption: thiết lập các tùy chọn trong cửa sổ Options. Cú pháp : Application.SetOption OptionLabel, OptionValue Ví dụ : Thiết lập mục tùy chọn của trang Edit/Find mục conFirm Application.SetOption “Confirm record changes “, False Application.SetOption “Confirm document deletions”, 0 Quit: thốt khỏi Access Cú pháp : Application.Quit QuitType QuitType: kiểu đĩng. acSave: Tự động lưu tất cả các đối tượng khơng cần hỏi. acPrompt: Trước khi thốt, hiển thị hộp thoại hỏi người dùng cĩ lưu những thay đổi khơng. acExit: Thốt và khơng lưu b) Các thuộc tính của Application: MenuBar: dùng để tạo thanh menu cho chương trình. Cú pháp : Application.MenuBar = MenuName 2. Docmd: Dùng để thực hiện những cơng việc thơng thường trong access bằng ngơn ngữ VB như mở form, mở report, query, lọc dữ liệu, thi hành macro, -142-
  75. Giáo trình Access a) Các phương thức của Docmd: Close: Dùng để đĩng đối tượng. Cú pháp DoCmd.Close [ObjectType], [ObjectName], [SaveOption] − ObjectType: kiểu đối tượng cần đĩng acForrm: Ðĩng form. acReport: Ðĩng report. acQuery: Ðĩng query. acTable: Ðĩng bảng. − ObjectName: Tên đối tượng cần đĩng. − SaveOption: Tùy chọn lưu hoặc khơng lưu khi đĩng đối tượng. SaveNo: Khơng lưu. SaveYes: Luơn lưu. SavePromt: Hiển thị hộp thoại nhắc lưu nếu cĩ sự thay đổi. Ví dụ: DoCmd.Close acForm, "frmHoadon", acSaveNo OpenForm: Mở form và thiết lập mơi trường làm việc cho form Cú pháp DoCmd.OpenForm [objectName], [ViewMode], [FilterName], [WhereCondition], [DataMode], [WindowsMode] − ObjectName: tên form muốm mở. − ViewMode: chế độ mở. acDesign: mở form để thiết kế. acNormal:mở form để thao tác. − FilterName : Mở form để lọc. -143-
  76. Giáo trình Access − WhereCondition: điều kiện giới hạn dữ liệu. − DataMode: thiết lập chế độ dữ liệu trên form. − WindowsMode: thiết lập kiểu cửa sổ của form: acDialog : Kiểu hộp thoại. acWindowsNormal Kiểu cửa sổ bình thường. Ví dụ: DoCmd.OpenForm "frmLapHoaDon", , ,"hoadonID = 'HÐ0035' OpenReport: Mở report và thiết lập mơi trường làm việc cho report Cú pháp: DoCmd.OpenReport [objectName], [ViewMode], [FilterName], [WhereCondition], [DataMode], [WindowsMode] − ObjectName – tên Report. − ViewMode: Chế độ mở. acDesign: Mở report ở chế độ thiết kế. acNormal: Mở Report để thi hành. − FilterName : điều kiện lọc. − WhereCondition: ðiều kiện giới hạn dữ liệu nguồn. − DataMode: thiết lập chế độ dữ liệu trên Report. − WindowsMode: thiết lập kiểu cửa sổ report: acDialog: Kiểu hộp thoại. acWindowsNormal: Kiểu cửa sổ bình thường. Ví dụ: DoCmd.OpenReport "rptHoadon", , ,"hoadonID= '" + txtHoadonID + "'" GotoRecord: Di chuyển giữa các record Cú pháp: DoCmd. GotoRecord [ObjectType], [ObjectName], [Record] -144-
  77. Giáo trình Access − ObjectType: kiểu đối tượng. − ObjectName: Tên đối tượng. − Record: acFirst: Di chuyển đến record đầu. acLast: Di chuyển đến record cuối. acNewRec: Di chuyển đến record mới. acNext: Di chuyển đến record tiếp. acPrevious: : Di chuyển đến record trước. Quit: Thốt khỏi access Cú pháp: DoCmd.Quit [QuitType] − QuitType: kiểu thốt acQuitPrompt: Hiển thị hộp thoại nhắc lưu nếu cĩ sự thay đổi trước khi thốt acQuitSaveAll: thốt và lưu tất cả. acQuitSaveNone: thốt và khơng lưu. RunSQL: thực thi câu lệnh SQL Cú pháp: Docmd.RunSQL SQLStatement Ví dụ: DoCmd.RunSQL "UPDATE canbo SET luongchinh = hessoluong*290000" 8.5.2. ðối tượng khơng cĩ sẵn: 1. Database: là thành phần chứa Table hay query. ðể sử dụng đối tượng Database phải khai báo trước. Cú pháp: Dim BienDataBase as Database Set BienDatabase = CurrentDb 2. Recordset: Truy xuất đến các record trong table hoặc query trong cơ sở dữ liệu. -145-
  78. Giáo trình Access Cú pháp: Dim BienRecordset as Recordset Set BienRecordset = BienDataBase.OpenRecordset(Table/Query, loại) − Table/Query: chỉ các table/query làm dữ liệu nguồn cho biến recordset. − Loại: chỉ loại dữ liệu nguồn. cĩ 3 loại. DBOpenTable: dữ liệu nguồn là table, loại biến này hỗ trợ hầu hết các tác vụ trên bảng dữ liệu với tình trạng cập nhật mới nhất. DBOpenDynaset: dữ liệu nguồn là table hoặc là query, hỗ trợ cho tác cụ Find. DBOpenSnap: tương tự như DBOpenDynaset nhưng khơng cho thay đổi dữ liệu. a) Phương thức của Recordset − MoveFirst, MovePrevious, MoveNext, MoveNext : di chuyển giữa các record. − AddNew: Thêm một record mới. − FindFirst/FindPrevious/FindNext/FindNext : tìm một record theo điều kiện cho trước. : viết theo cú pháp sau: “Tên Field=’ ” & Giá trị&” ‘ “ Nếu cĩ nhiều điều kiện thì viết theo cú pháp sau: “Tên Field=’ ” & Giá trị 1&” ‘And Giá trị 2=” ’ “ Giá trị 1, giá trị 2 cĩ thể là tên biến, hoặc hằng, hoặc nhãn − Edit, Update: Chỉnh sửa và cập nhật dữ liệu, hai phương thức này luơn đi kèm nhau. Cú pháp : -146-
  79. Giáo trình Access BiếnRecordset.Edit BiếnRecordset!tenField = bieuthuc BiếnRecordset.Update − EOF/BOF: kiểm tra vị trí của record. b) Thuộc tính − NoMatch: Tìm record − RecordCount: ðếm số record cĩ trong biến recordset. 8.6. Cấu trúc điều khiển: 8.6.1. Cấu trúc If Then Else Lệnh If Then Else để thực hiện lệnh dựa vào giá trị của biểu thức điều kiện Cú pháp: If Then [ ] [ElseIf Then [ ]] [Else [ ]] End If Hoặc If Then [Else ] Ví dụ: If so Mod 2 = 0 Then Msgbox “Số chẵn !” Else Msgbox “Số lẻ !” End If -147-
  80. Giáo trình Access 8.6.2. Cấu trúc Select Case Cú pháp: Select Case [Case [ ]] [Case Else [ ]] End Select Ví dụ: Select Case so Case 1 thang = "Janualy" Case 2 thang = "February" Case 3 thang = "March" Case 4 thang = "April" Case 5 thang = "May" Case 6 thang = "June" Case 7 thang = "July" Case 8 thang = "August" Case 9 thang = "September" Case 10 thang = "October" Case 11 -148-
  81. Giáo trình Access thang = "November" Case 12 thang = "December" Case Else thang = "Khơng xác định" End Select 8.6.3. Cấu trúc For Next Cú pháp: For = To [Step ] [ ] [Exit For] [ ] Next [biến chạy] − là biến kiểu số nguyên. − , là các giá trị mà biến chạy sẽ nhận và thực hiện dịch chuyển sau mỗi lần lặp. − Trong trường hợp đặc biệt nếu gặp lệnh Exit For trong vịng lặp, ngay lập tức thốt khỏi lệnh lặp và thực hiện lệnh tiếp ngay sau từ khố Next. Ví dụ: Dim i As Byte Dim tong As Integer tong = 0 For i = 1 To 50 tong = tong +i Next Msgbox tong -149-
  82. Giáo trình Access 8.6.4. Cấu trúc For Each Next Cú pháp: For Each item In group [ ] [Exit For] [ ] Next [item] 8.6.5. Cấu trúc Do Loop Cú pháp: Do [{While | Until} ] [ ] [Exit Do] [ ] Loop Hoặc Do [ ] [Exit Do] [ ] Loop [{While | Until} ] 8.7. Lệnh Function Lệnh Function dùng để khai báo một hàm mới. Cú pháp: Function ([ ])As End Function -150-
  83. Giáo trình Access − Function, End Function là các từ khố bắt buộc khai báo cấu trúc một chương trình con dạng hàm − là tên gọi hàm đang khai báo. Tên khơng chứa dấu cách và ký tự đặc biệt − là các tham số cần thiết cho hàm. Cĩ thể cĩ hoặc khơng − Kiểu dữ liệu trả về của hàm. − thân chương trình con. Trong đĩ câu lệnh = phải xuất hiện ít nhất một lần trong thủ tục. Câu lệnh này cĩ tác dụng gán giá trị cho hàm. Ví dụ: Function Tong2So(a, b As Double) As Double Tong2So = a + b End Function 8.8. Lệnh Sub Lệnh Sub để khai báo một thủ tục con mới. Cú pháp: [Public] [Private] Sub ([ ]) End Sub Ví dụ: Sub tong2so(a, b As Double) tong = a + b //tong là biến tồn cục End Sub 8.9. Lệnh Call Lệnh Call được sử dụng để truyền điểu khiển đến thủ tục. -151-
  84. Giáo trình Access Cú pháp: Call subroutinename [( )] Hoặc subroutinename [ ] Ví dụ: Viết các thủ tục thực hiện các cơng việc di chuyển giữa các record và thêm tìm xĩa thốt. Option Compare Database Dim db As Database Dim rst As Recordset Sub LoadDb() Set db = CurrentDb() Set rst = Me.Recordset End Sub Private Sub CmdDau_Click() LoadDb rst.moveFirst End Sub -152-
  85. Giáo trình Access Private Sub CmdTruoc_Click() LoadDb rst.MovePrevious If rst.BOF Then rst.MoveNext MsgBox "Day la mau tin dau roi", vbInformation + vbOKOnly, "thong bao" End If End Sub Private Sub CmdNext_Click() LoadDb rst.MoveNext If rst.EOF Then rst.MovePrevious MsgBox "Day la mau tin cuoi roi", vbInformation + vbOKOnly, "thong bao" End If End Sub Private Sub CmdLast_Click() LoadDb rst.MoveLast End Sub Private Sub CmdXoa_Click() -153-
  86. Giáo trình Access Dim rs As Recordset Dim MakhStr As String Set rs = Me.Recordset MakhStr = InputBox("Nhap vao ma khach hang can xoa") rs.FindFirst "[MAKH]='" & MakhStr & "'" If rs.NoMatch Then MsgBox "Makhachhang " & MakhStr & "khong tim thay" End If End Sub Private Sub CmdThem_Click() LoadDb Dim ma As String Dim ten As String Dim dc As String Dim tp As String Dim dt As String ma = InputBox("nhap ma khach hang:") If ma = "" Then Exit Sub End If ten = InputBox("nhap ten khach hang:") If ten = "" Then Exit Sub End If dc = InputBox("nhap dia chi khach hang:") tp = InputBox("nhap thanh pho cua khach hang:") -154-
  87. Giáo trình Access dt = InputBox("nhap dien thoai cua khach hang:") rst.AddNew rst!MAKH = ma rst!TENKH = ten rst!DIACHI = dc rst!THANHPHO = tp rst!DIENTHOAI = dt rst.Update End Sub Private Sub CmdTim_Click() LoadDb Dim str As String str = InputBox("nhap ma can tim:") If str = "" Then Exit Sub Else rst.FindFirst "makh='" & str & "'" If rst.NoMatch Then MsgBox "khong tim thay." End If End If End Sub Private Sub CmdXoa_Click() LoadDb Dim str As String -155-
  88. Giáo trình Access str = InputBox("NHAP MAKH CAN XOA?") rst.FindFirst "MAKH='" & str & "'" If rst.NoMatch Then MsgBox "KHONG TIM THAY THONG TIN NAY", vbInformation + vbOKOnly, "THONG BAO" Else rst.Delete rst.MoveNext End If End Sub Private Sub CmdThoat_Click() If MsgBox("CO MUON THOAT KHONG?", vbOKCancel, "THONG BAO") = vbOK Then DoCmd.Close , , acSaveYes End If End Sub -156-
  89. Giáo trình Access Mục lục Chương 1 TỔNG QUAN VỀ MICROSOFT ACCESS 2010 1 1.1. Giới thiệu 1 1.2. Khởi động Access 2010 2 1.3. Các thành phần trong cửa sổ khởi động 2 1.3.1. Thanh Quick Access: 2 1.3.2. Vùng làm việc 3 1.3.3. Thanh Ribbon 3 1.3.4. Cửa sổ Properties 4 1.3.5. Thanh Navigation Pane 5 1.4. Cách tạo tập tin cơ sở dữ liệu 5 1.4.1. Tạo một cơ sở dữ liệu mới rỗng 5 1.4.2. Tạo cơ sở dữ liệu theo mẫu (Template) 6 1.5. Quản lý cơ sở dữ liệu 6 1.5.1. Recent 6 1.5.2. Mở một cơ sở dữ liệu 6 1.5.3. Thốt khỏi access 7 1.5.4. Thu gọn và chỉnh sửa cơ sở dữ liệu (Compact & Repair Database) 7 1.5.5. Tạo password 8 1.5.6. Gở bỏ password 8 1.6. Các đối tượng trong cơ sở dữ liệu trong Access 8 1.6.1. Bảng (Tables) 8 1.6.2. Truy vấn (Queries) 9 1.6.3. Biểu mẫu (Forms) 9 1.6.4. Báo cáo (Reports) 9 1.6.5. Tập lệnh (Macros) 9 1.6.6. Bộ mã lệnh (Modules) 9 1.7. Thao tác với các đối tượng trong cơ sở dữ liệu 10 1.7.1. Tạo mới một đối tượng 10 1.7.2. Thiết kế lại một đối tượng 10 1.7.3. Xem nội dung trình bày của một đối tượng 10 1.7.4. Xĩa một đối tượng 10 1.7.5. ðổi tên đối tượng 10 1.7.6. Sao chép một đối tượng 11 1.7.7. Chép dữ liệu từ Access sang ứng dụng khác (Export) 11 1.7.8. Chép dữ liệu từ ứng dụng khác vào cơ sở dữ liệu Access hiện hành (Import) 12 1.7.9. Chức năng Link 14 -157-
  90. Giáo trình Access 1.8. Chọn giao diện người dùng trong Access 2010 14 1.8.1. Tabbed Documents 14 1.8.2. Overlapping Windows 15 1.8.3. Chuyển từ giao diện Tabbed Documents sang Overlapping Windows 15 Chương 2 XÂY DỰNG CƠ SỞ DỮ LIỆU 16 2.1. Khái niệm về cơ sở dữ liệu Access 16 2.2. Bảng dữ liệu (Table) 16 2.2.1. Khái niệm 16 2.2.2. Khĩa chính (Primary key) 17 2.2.3. Khĩa ngoại (Foreign key) 18 2.3. Cách tạo bảng 18 2.3.1. Tạo bảng bằng chức năng Table Design 18 2.3.2. Tạo bảng trong chế độ Datasheet View 20 2.4. Các kiểu dữ liệu (Data Type) 21 2.5. Các thuộc tính của Field 23 2.5.1. Field Size 23 2.5.2. Decimal Places 23 2.5.3. Format 24 2.5.4. Input Mask (mặt nạ nhập liệu) 27 2.5.5. Tạo field Lookup Wizard 28 2.5.6. Validation rule (Quy tắc hợp lệ) 30 2.5.7. Validation text (Thơng báo lỗi) 31 2.5.8. Required (Yêu cầu) 31 2.5.9. AllowZeroLength 31 2.5.10. Index ( Chỉ mục/ Sắp xếp) 31 2.5.11. Caption 31 2.5.12. Defaut value 32 2.6. Hiệu chỉnh cấu trúc của bảng 32 2.7. Cách nhập dữ liệu cho bảng 32 2.8. Tạo quan hệ giữa các bảng trong cơ sở dữ liệu 34 2.8.1. Các loại quan hệ 34 2.8.2. Cách tạo quan hệ 35 2.8.3. Cách xĩa quan hệ 37 2.8.4. Kiểu kết nối (Join type) 38 2.9. Các thao tác với bảng ở chế độ Datasheet view 39 2.9.1. Một số định dạng trong chế độ Database View 39 2.9.2. Sắp xếp 41 2.9.3. Tìm kiếm và thay thế 42 2.9.4. Lọc dữ liệu 43 -158-
  91. Giáo trình Access Chương 3 TỐN TỬ -HÀM -BIỂU THỨC 46 3.1. Tốn tử 46 3.1.1. Tốn tử số học 46 3.1.2. Tốn tử so sánh 46 3.1.3. Tốn tử logic 46 3.1.4. Tốn tử khác 47 3.1.5. Tốn tử nối chuỗi 47 3.2. Hàm 47 3.2.1. Hàm xử lý kiểu dữ liệu Text 47 3.2.2. Hàm ngày giờ 48 3.2.3. Hàm điều kiện 49 3.2.4. Hàm cơ sở dữ liệu 49 3.3. Biểu thức 50 Chương 4 QUERY-TRUY VẤN DỮ LIỆU 51 4.1. Khái niệm 51 4.2. Các loại query 51 4.3. Cách tạo select query bằng Design view 52 4.3.1. Các thành phần trong cửa sổ thiết kế query 52 4.3.2. Các thao tác trong cửa sổ thiết kế query 53 4.3.3. Cách nhập biểu thức điều kiện 55 4.3.4. Truy vấn cĩ nhiều điều kiện ở nhiều fields 56 4.3.5. Top value 57 4.3.6. Tạo field tính tốn trong query 58 4.3.7. Sử dụng Expresstion Builder 59 4.4. Total query 60 4.4.1. Cách tạo Total Query 60 4.4.2. Các tùy chọn trên dịng Total 61 4.5. Queries tham số (Parameter Queries) 62 4.6. Crosstab query 63 4.6.1. Khái niệm 63 4.6.2. Cách tạo 63 4.7. Các loại query tạo bằng chức năng Wizard 67 4.7.1. Find Duplicate query 67 4.7.2. Find Unmatched query Wizard 67 4.8. Action query 68 4.8.1. Update query 68 4.8.2. Make-Table query 70 4.8.3. Append query 71 4.8.4. Delete query 72 Chương 5 FORM-BIỂU MẪU 74 -159-
  92. Giáo trình Access 5.1. Giới thiệu 74 5.2. Cách tạo form 74 5.2.1. Tạo một Single Form 75 5.2.2. Tạo form bằng chức năng Form Wizard 76 5.2.3. Tạo Form bằng Design 77 5.3. Sử dụng Form 80 5.3.1. Tìm kiếm và chỉnh sửa một record 80 5.3.2. Thêm một record 81 5.3.3. Xĩa một record 82 5.3.4. Lọc dữ liệu trên form 82 5.4. Tùy biến form trong chế độ Desing view 83 5.4.1. Thêm một control vào form 83 5.4.2. Các loại form control 84 5.4.3. ðịnh dạng các control trên form 85 5.4.4. Thiết lập thuộc tính cho control 85 5.5. Cách tạo các control cĩ hỗ trợ của chức năng Wizard 86 5.5.1. Command button 86 5.5.2. Option group 88 5.5.3. Combo box và List box 89 5.6. Form và những bảng liên kết 92 5.6.1. Subform control 93 5.6.2. Hiệu chỉnh subform 94 5.6.3. Tạo ơ tính tốn trong subform 95 5.7. Tab control 96 5.7.1. Sử dụng tab control 97 5.7.2. Hiệu chỉnh tab Control 97 5.8. Navigation Form 97 5.8.1. Tạo Single level Navigation Form 98 5.8.2. Tạo Two level Navigation Form 99 5.9. Liên kết đến dữ liệu quan hệ (Link to Related Data) 100 5.9.1. Hiển thị các record quan hệ trong form riêng biệt 100 5.9.2. Tạo Button dùng để mở form chứa records quan hệ 100 Chương 6 REPORT - BÁO CÁO 102 6.1. Giới thiệu 102 6.2. Cách tạo report 102 6.2.1. Tạo bằng lệnh Report 102 6.2.2. Tạo report bằng chức năng Wizard 103 6.2.3. Tạo report bằng Design 104 6.3. Tạo report cĩ phân nhĩm 107 6.3.1. Sử dụng Total Query 107 -160-
  93. Giáo trình Access 6.3.2. Report Grouping 108 6.3.3. SubReport 111 6.3.4. Tạo report cĩ phân nhĩm bằng wizard 111 6.3.5. Ngắt trang trong report phân nhĩm 113 6.4. Preview Rport 114 6.5. ðịnh dạng report 114 6.5.1. Tạo lưới cho report 114 6.5.2. Thiết lập thuộc tính của các đối tượng trong report 114 6.5.3. ðịnh dạng dữ liệu 115 Chương 7 MACRO – TẬP LỆNH 118 7.1. Giới thiệu 118 7.2. Cách tạo và thực thi Standalone macros 119 7.2.1. Cách tạo 119 7.2.2. Thực thi macro 120 7.2.3. Sub Macro 120 7.2.4. Các Actions và các Events thơng dụng 121 7.3. Tạo Data Macro 124 7.3.1. Cách tạo 124 7.3.2. Các Action của data macro 125 7.3.3. Xĩa data macro 127 7.4. Embedded macros 127 7.5. Hiệu chỉnh macro 127 7.5.1. Thay đổi action arguments 127 7.5.2. Sắp xếp các actions 128 7.5.3. Thêm một action mới 128 7.5.4. Xĩa một action 128 7.6. Các hàm thường dùng trong biểu thức điều kiện 128 7.6.1. Hàm MsgBox («msg», «type», «title») 128 7.6.2. DCount («expr», «domain», «criteria») 130 7.7. Macro Autoexec 130 7.8. Xậy dựng hệ thống menu bằng macro 130 7.8.1. Tạo macro cho hệ thống menu 130 7.8.2. ðưa menu vào chương trình 132 Chương 8 : MODULE 133 8.1. Giới thiệu 133 8.1.1. Cửa sổ soạn thảo code VB 133 8.2. Cách tạo Module 134 8.2.1. Tạo một module dùng chung 134 8.2.2. Module gắn với form, report 135 8.2.3. Các thành phần trong module 135 8.2.4. Lệnh khai báo 136 8.2.5. Lệnh gán -161- 137
  94. Giáo trình Access 8.3. Kiểu dữ liệu 138 8.3.1. Kiểu số 138 8.3.2. Kiểu chuỗi: String 138 8.3.3. Kiểu đối tượng thuộc cơ sở dữ liệu 139 8.4. Các hàm thơng dụng 139 8.4.1. Hàm MsgBox 139 8.4.2. Hàm InputBox 140 8.4.3. Hàm dữ liệu số 141 8.4.4. Hàm xử lý chuỗi 141 8.5. Biến kiểu đối tượng 141 8.5.1. Các đối tượng cĩ sẵn 142 8.5.2. ðối tượng khơng cĩ sẵn 145 8.6. Cấu trúc điều khiển 147 8.6.1. Cấu trúc If Then Else 147 8.6.2. Cấu trúc Select Case 148 8.6.3. Cấu trúc For Next 149 8.6.4. Cấu trúc For Each Next 150 8.6.5. Cấu trúc Do Loop 150 8.7. Lệnh Function 150 8.8. Lệnh Sub 151 8.9. Lệnh Call 151 -162-