Bài giảng Access 3

doc 34 trang phuongnguyen 6820
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Access 3", để 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:

  • docbai_giang_access_3.doc

Nội dung text: Bài giảng Access 3

  1. ACCESS 3 Yêu cầu : Tự thiết kế được các Report lập nhóm thông dụng. Sử dụng Macro để liên kết các đối tượng. Sử dụng ngôn ngữ Access Basic cơ bản để lập trình cho các sự kiện trên đối tượng. Access 3 Trang 1
  2. Mục lục ACCESS 3 1 BÀI 1 2 THIẾT KẾ REPORT 2 I- Tổng quan 2 II- Chuẩn bị 2 1- Chuẩn bị trang giấy 2 2- Giới thiệu cửa sổ thiết kế 2 3- Một số thuộc tính thường dùng của Report 3 III- Thiết kế Report 3 1- Các bước tổng quát 3 2- Tạo nguồn cho Report bằng thuộc tính Record Source 3 3- Các thuộc tính bổ sung cho Textbox 4 4- Sắp xếp và lập nhóm cho dữ liệu 4 5- Các chức năng khác 4 5.2- Đánh số trang 5 5.3- Lập nhóm theo nội dung dữ liệu 5 BÀI 2 8 MACRO 8 I- Tổng quan 8 II- Tạo Macro 8 1- Tạo Macro thông qua sự kiện 8 2- Tạo Macro và gán vào sự kiện trên đối tượng 9 3- Ví dụ: Xét mẫu sau: 9 1- Macro có điều kiện 11 BÀI 3 13 THỦ TỤC XỬ LÝ SỰ KIỆN 13 I- Tổng quan 13 II- Giới thiệu thủ tục xử lý sự kiện 13 1- Thủ tục Wizard 13 Private Sub _ ([các tham số]) 13 End Sub 13 2- Tạo thủ tục xử lý sự kiện 14 Private fraChon_AfterUpdate() 14 If fraChon = 1 Then 14 Else 14 End If 14 End Sub 14 III- Các qui tắc khi viết lệnh 14 1- Viết lệnh 14 2- Lệnh gán 14 . = 14 Private Sub cmdHienthi_Click() 15 ' Gan chuoi 15 Me.txtLoichao.Value = "Chao mung cac hoc vien" & _ 15 ' Thay doi thuoc tinh 15 Me.txtLoichao.ForeColor = 255 15 Me.txtLoichao.TextAlign = 2 15 Me.txtLoichao.Locked = True 15 End Sub 15 Access 3 Trang 2
  3. Private Sub cmdThoat_Click() 15 DoCmd.Close , , acSaveYes 15 End Sub 15 Private Sub cmdXoa_Click() 15 Me.txtLoichao.Value = Null 15 End Sub 15 3- Thực hiện hành động trong thủ tục 15 DoCmd. [các đối số] 15 DoCmd.Close acForm, “F_Timkhachhang”, acSaveYes 15 DoCmd.RunCommand accmdDeleteRecord 16 4- Thực hiện các phương thức trên đối tượng 16 Me.cmdXoa.SetFocus 16 Private Sub cobTp_AfterUpdate() 16 ' Cho phép cobTenkh nhận focus 16 Me.cobMakh.Enabled = True 16 ' Chạy lại Query nguồn của cobMakh 16 Me.cobMakh.Requery 16 ' Không cho các Control sau nhận focus 16 Me.Makh.Enabled = False 16 Me.Tenkh.Enabled = False 16 Me.Diachikh.Enabled = False 16 Me.Dienthoaikh.Enabled = False 17 Me.Thanhpho.Enabled = False 17 End Sub 17 Private Sub cobMakh_AfterUpdate() 17 ' Lọc dữ liệu trên Form 17 DoCmd.ApplyFilter , "[Makh] = '" & Me!cobMakh.Value & "'" 17 ' Cho các Control sau nhận focus 17 Me.Tenkh.Enabled = True 17 Me.Diachikh.Enabled = True 17 Me.Dienthoaikh.Enabled = True 17 Me.Thanhpho.Enabled = True 17 ' Chuyển focus đến Tenkh 17 Me.Tenkh.SetFocus 17 End Sub 17 5- Lệnh nhảy 17 On Error Goto 17 On Error Resume Next 17 BÀI 4 18 CÁC CẤU TRÚC RẼ NHÁNH 18 I- Cấu trúc điều kiện If 18 1- Tổng quan 18 2- Các dạng If 18 If Then 18 If Then 18 End if 18 If Then 18 ElseIf Then 18 Else 18 End If 18 3- Ví dụ 18 Private Sub fraChon_AfterUpdate() 19 If fraChon = 1 Then 19 Else 19 Access 3 Trang 3
  4. End If 19 End Sub 19 Private Sub cmdXem_Click() 19 If fraChon = 1 Then 19 DoCmd.OpenReport "RL_Thiepmoi", acViewPreview 19 ElseIf fraChon = 2 And IsNull(cobtp) Then 19 MsgBox "Ban phai chon thanh pho", vbCritical 19 Me.cobtp.SetFocus 19 Else 19 End If 19 End Sub 19 II- Cấu trúc chọn lựa Select Case 19 1- Tổng quan 19 2- Cú pháp 19 Select Case 19 Case 19 Case 19 Case Else 19 End Select 19 3- Ví dụ 19 Private Sub txtSo_Exit() 20 ‘ Khai báo biến chuỗi 20 Dim t1 As String 20 Dim t2 As String 20 ‘ Khai báo biến số nguyên 20 Dim chuc As Byte 20 Dim donvi As Byte 20 If Val(Me.txtSo) 99 Then 20 MsgBox “Ban nhap so khong dung pham vi”, vbCritical 20 Me.txtSo.SetFocus 20 Exit Sub 20 Else 20 Select Case chuc 20 Case 1 : t1 = “Muoi” 20 Case 2 : t1 = “Hai muoi” 20 Case 3 : t1 = “Ba muoi” 20 Case 4 : t1 = “Bon muoi” 20 Case 5 : t1 = “Nam muoi” 20 Case 6 : t1 = “Sau muoi” 20 Case 7 : t1 = “Bay muoi” 20 Case 8 : t1 = “Tam muoi” 20 Case 9 : t1 = “Chin muoi” 20 End Select 20 Select Case donvi 20 Case 0 : t2 = “” 20 Case 1 : t2 = “mot” 20 Case 2 : t2 = “hai” 20 Case 3 : t2 = “ba” 20 Case 4 : t2 = “bon” 20 Case 5 : t2 = “lam” 20 Case 6 : t2 = “sau” 20 Case 7 : t2 = “bay” 20 Case 8 : t2 = “tam” 20 Case 9 : t2 = “chin” 20 Access 3 Trang 4
  5. End Select 20 End If 20 Me.txtChu = t1 & Space(1) & t2 & Space(1) & “dong” 20 End Sub 20 III- Biến và khai báo biến 20 1- Tổng quan 20 2- Kiểu của biến 21 Dim As 21 BÀI 5 22 TẠO THỰC ĐƠN LỆNH 22 I- Tổng quan 22 II- Các bước tạo thực đơn 22 1- Tạo hệ thống thực đơn 22 2- Khai báo các thuộc tính khi khởi động 23 BÀI TẬP 24 A- Thiết kế các mẫu Report 24 1- Mẫu 1: R_1 24 2- Mẫu 2: R_2 24 3- Mẫu 3: R_3 25 4- Mẫu 4: R_4 25 5- Mẫu 5: R_5 26 B- Các bài tập về Macro 26 1- Mẫu 1: F_mau7 26 2- Mẫu 2: F_mau8 26 3- Mẫu 3: F_mau9 27 4- Mẫu 4: F_mau10 27 5- Mẫu 5: F_mau11 28 C- Các bài tập về thủ tục xử lý sự kiện 28 1- Mẫu 1: F_code1 28 2- Mẫu 2: F_code2 29 Phuong trinh có : 29 Nghiem thu nhat la : x1 = 2.53 29 Nghiem thu hai la : x2 = 5.68 29 Phuong trinh co nghiem kep : x = 1.25 29 Phuong trinh vo nghiem !!! 29 3- Mẫu 3: F_code3 29 D- Tạo thực đơn 29 Access 3 Trang 5
  6. BÀI 1 THIẾT KẾ REPORT I- Tổng quan ▬ Report Wizard hỗ trợ người sử dụng tạo nhanh các Report theo các kiểu chuẩn. Nhưng đôi khi, ta muốn thay đổi nội dung báo cáo hoặc chỉnh sửa theo nhu cầu riêng thì Report Wizard lại không thực hiện được. ▬ Nghiên cứu cách thiết kế Report cho phép ta tạo ra các Report theo đúng ý thích và thẩm mỹ của cá nhân. Vì vậy ta cần phải nắm được các nguyên tắc để thiết kế sao cho khi in ấn sẽ đạt được kết quả theo mong muốn. ▬ Các điều khiển sử dụng để thiết kế Report thông dụng nhất là Textbox và Label. ▬ Cần chú ý là để thiết kế được Report thì máy tính phải có khai báo một máy in. ▬ Có hai chế độ: Chế độ thiết kế: Menu View Design View Chế độ xem: Menu View Print Preview II- Chuẩn bị 1- Chuẩn bị trang giấy ▬ Menu File Page Setup Xuất hiện hộp thoại Page Setup. Thẻ Margin: Canh lề giấy (left, right, top, bottom). Thẻ Page: Chọn khổ giấy (size), hướng giấy (orientation) Thẻ Column: Chọn số cột trên trang giấy (number of column) 2- Giới thiệu cửa sổ thiết kế ▬ Report Header|Footer: Nội dung trong các vùng này xuất hiện một lần duy nhất ở đầu và cuối Report. Thường dùng để tạo các tiêu đề cho Report, logo công ty hoặc tạo các thống kê cho toàn bộ Report. ▬ Page Header|Footer: Nội dung trong các vùng này xuất hiện ở đầu và cuối mỗi trang Report. Thường dùng để tạo các tiêu đề cột, đánh số trang. Access 3 Trang 6
  7. ▬ Detail: Chứa nội dung của các cột dữ liệu. Chú ý: Tùy theo nhu cầu thiết kế mà ta có thể thêm hoặc bớt các vùng Header|Footer. Lệnh: Menu View Report Header|Footer (Page Header|Footer). 3- Một số thuộc tính thường dùng của Report ▬ Caption: Tiêu đề của Report (nằm trên thanh tiêu đề). ▬ Auto Resize: Tự động điều chỉnh kích thước vừa khít với nội dung thiết kế khi xem ở chế độ Print Preview. ▬ Auto Center: Tự động canh giữa màn hình Report khi xem ở chế độ Print Preview. ▬ Record Source: Nguồn của Report. III- Thiết kế Report 1- Các bước tổng quát ▬ Bước 1: Tạo nguồn cho Report (Có thể tạo nguồn cho Report bằng cách khai báo nguồn thông qua thuộc tính Record Source). ▬ Bước 2: Cửa sổ “Database” Thẻ Report New Xuất hiện cửa sổ New Report. ▬ Bước 3: Chọn Design View và chọn nguồn cho Report (nếu đã có nguồn) trong mục “Choose the table or query ” OK Xuất hiện cửa sổ thiết kế Report. ▬ Bước 4: Sử dụng thanh công cụ để thiết0 kế Report (có thể chọn menu View Field List để mở bảng nguồn của Report và kéo thả khi thiết kế). ▬ Bước 5: Kiểm tra kết quả: menu View Print Preview ▬ Bước 6: Lưu 2- Tạo nguồn cho Report bằng thuộc tính Record Source ▬ Mở bảng thuộc tính của Report ▬ Nhấp vào nút ba chấm của thuộc tính Record Source Xuất hiện của sổ Design Query ▬ Tạo Query nguồn ▬ Thực hiện một trong hai thao tác: Nếu muốn Query nguồn tồn tại trong cửa sổ Database thì chọn lệnh Save để lưu Đóng cửa sổ Design Query Chọn Yes Nếu không muốn Query nguồn tồn tại trong của sổ Database Đóng cửa sổ Design Query Chọn Yes (Lưu ý : trong trường hợp này tại thuộc tính Record Source xuất hiện một chuỗi lệnh được gọi là chuỗi lệnh SQL) Access 3 Trang 7
  8. 3- Các thuộc tính bổ sung cho Textbox ▬ Hide Duplicates: Ẩn hoặc không ẩn các giá trị trùng trong Field nguồn của Textbox (yes|no). ▬ Running Sum: Tạo dãy số thứ tự cho các Record trong nhóm hoặc cả Report (No, OverGroup, OverAll) ▬ Can Grow: Cho phép hoặc không nội dung trong Textbox tự động xuống hàng khi kích thước của chiều ngang không đủ lớn. 4- Sắp xếp và lập nhóm cho dữ liệu ▬ Đây là một trong những chức năng quan trọng trong Report nhằm tạo cho dữ liệu trong Report có cái nhìn khách quan và chính xác hơn. Đồng thời cho phép xuất hiện các vùng thống kê dữ liệu theo từng nhóm sao cho phù hợp tối đa tới nhiều nhu cầu của người dùng. ▬ Khi thiết kế Report người thiết kế phải quan sát mẫu hoặc phải hình dung Field có dữ liệu lập nhóm (thường là Field bên “một”). Sau khi khai báo Field lập nhóm thì trong cửa sổ sẽ xuất hiện thêm các vùng Group Header hoặc Group Footer tùy theo khai báo. ▬ Để tạo Field sắp xếp và lập nhóm ta làm theo các bước sau: Bước 1: Menu View Sorting and Grouping Xuất hiện cửa sổ “Sorting and Grouping”. Bước 2: Chọn Field sắp xếp và lập nhóm trong cột Field/Expression (Có thể chọn nhiều hàng ứng với nhiều Field để tạo nhiều cấp sắp xếp và lập nhóm). Bước 3: Xác lập cách sắp xếp trong cột Sort Order. Bước 4: (Chỉ thực hiện khi có lập nhóm) Khai báo Group Header và Group Footer để cho xuất hiện hoặc không các vùng tương ứng trên Report. Trong đó:  Group Header: Thường dùng để chứa Field nhóm và các nhãn cho dữ liệu trong nhóm.  Group Footer: Thường dùng để tạo các Textbox chứa các giá trị thống kê dữ liệu cho nhóm. Bước 5: Ba thuộc tính còn lại: Group On, Group Interval và Keep Together có liên quan đến nội dung của dữ liệu lập nhóm (tham khảo ở phần dưới). 5- Các chức năng khác 5.1- Chèn hình trang trí cho Report ▬ Bước 1: Sử dụng công cụ Image. ▬ Bước 2: Kéo mouse trên vùng thiết kế để định vị trí và kích thước của hình ảnh. Thả mouse xuất hiện hộp thoại: Access 3 Trang 8
  9. ▬ Bước 3: Chọn hình ảnh trang trí OK Thay đổi thuộc tính cho điều khiển Image (Chủ yếu là chọn Stretch cho thuộc tính Size Mode) 5.2- Đánh số trang ▬ Bước 1: Menu Insert Page Numbers Xuất hiện hộp thoại Page Number. ▬ Bước 2: Khai báo: Page N: Chỉ xuất hiện số trang hiện hành. Page N of M: Xuất hiện số trang hiện hành trên tổng số trang. Top of Page [Header]: Số trang xuất hiện trên vùng Page Header. Bottom of Page [Footer]: Số trang xuất hiện trên vùng Page Footer. Alignment: Chọn vị trí canh lề cho số trang (left, center, right). Số trang sẽ xuất hiện trong cửa sổ thiết kế dưới dạng một Textbox lập công thức. Ví dụ như: =Page & “/” & Pages 5.3- Lập nhóm theo nội dung dữ liệu ▬ Việc chỉ định phạm vi dữ liệu để lập nhóm có liên quan đế hai thuộc tính Group On và Group Interval trong hộp thoại “Sorting and Grouping”. Hãy quan sát bảng sau: Field có dữ liệu kiểu Text Group on Group interval Ý nghĩa Each value 1 Nhóm các Record có giá trị bằng nhau. Prefix character n Nhóm các Record có n ký tự bên trái bằng nhau. Field có dữ liệu kiểu Date/Time Group on Group interval Ý nghĩa Each value 1 Nhóm các Record có giá trị bằng nhau. Year Khai báo khoảng giá trị. Nhóm các Record có giá trị theo năm. Qtr Khai báo khoảng giá trị. Nhóm các Record có giá trị theo quý. Field có dữ liệu kiểu Number Group on Group interval Ý nghĩa Each value 1 Nhóm các Record có giá trị bằng nhau. Interval Khai báo khoảng giá trị. Nhóm các Record theo khoảng giá trị đã khai báo. 5.4- Thống kê dữ liệu trên Report ▬ Sử dụng các phương thức thống kê: Sum, Avg, Min, Max, Count, trong các Textbox. ▬ Thống kê dữ liệu cho nhóm thường đặt tại vùng Group Footer. ▬ Thống kê dữ liệu cho Report thường đặt tại vùng Report Footer. Ví dụ: Muốn tính tổng thành tiền cho nhóm theo Tenkh, ta tạo một Textbox tại Tenkh Footer có dạng: =Sum(Thanhtien). Còn nếu muốn tính tổng thành tiền cho toàn bộ Report, ta tạo một Textbox tại vùng Report Footer có dạng: =Sum(Thanhtien). Access 3 Trang 9
  10. Ví dụ: Các mẫu Report: Mẫu Report không lập nhóm: Mẫu Report lập nhóm theo Tenkh: Access 3 Trang 10
  11. Mẫu Report lập nhóm theo Tenkh, Nam, Thang: Access 3 Trang 11
  12. BÀI 2 MACRO I- Tổng quan ▬ Macro là đối tượng bao gồm một hoặc nhiều hành động, mỗi hành động dùng để thực hiện một công việc nào đó. Những hành động này đã được cài sẵn trong Access dưới dạng một danh sách nhằm tự động hóa quá trình xử lý công việc. ▬ Một Macro sau khi tạo sẽ được gán vào một sự kiện trên đối tượng và khi sự kiện xảy ra thì Macro sẽ thực thi. Các sự kiện của đối tượng nằm trong thẻ Event của hộp Properties. Ví dụ: Một Macro được gán vào sự kiện OnClick của một nút lệnh thì khi nhấp mouse vào nút lệnh thì Macro sẽ thi hành. ▬ Các công việc có thể sử dụng Macro: Liên kết công việc giữa Form và Report. Tìm kiếm hoặc lọc ra những thông tin cần tham khảo một cách tự động. Cài đặt các thuộc tính cho Form, Report hoặc các điều khiển. Cũng như cài đặt một giá trị của điều khiển trong Form vào kết quả của phép tính toán hoặc vào giá trị của một bảng dữ liệu khác. Tự động hóa việc nhập|xuất dữ liệu vào các Table. Tạo ra một môi trường làm việc theo ý riêng. Chẳng hạn như điều chỉnh thanh thực đơn cho Form, nhóm các Query II- Tạo Macro 1- Tạo Macro thông qua sự kiện ▬ Mở hộp Properties của đối tượng Chọn sự kiện Nhấp vào nút ba chấm ▬ Chọn Macro Builder ▬ Đặt tên cho Macro Xuất hiện cửa sổ Design Macro Access 3 Trang 12
  13. ▬ Các thành phần của cửa sổ Design: Macro Name: Lệnh mở|đóng: Menu View Macro Name. Được sử dụng trong việc tạo ra nhóm Macro. Condition: Lệnh mở|đóng: Menu View Condition. Được sử dụng cho các Macro có điều kiện. Action: Thành phần cố định. Chứa các hành động cho Macro. Comment: Nơi diễn giải nội dung cho hành động. Action Argument: Các tham số cho hành động. ▬ Thực thi sự kiện trên đối tượng để chạy Macro. 2- Tạo Macro và gán vào sự kiện trên đối tượng ▬ Cửa sổ “Database” Thẻ Macro New Xuất hiện cửa sổ Design Macro như trên. ▬ Khai báo các hàng động trong Macro. ▬ Lưu Macro. ▬ Mở hộp Properties của đối tượng Chọn sự kiện Nhấp vào nút tam giác Chọn tên Macro. ▬ Thực thi sự kiện để chạy Macro. 3- Ví dụ: Xét mẫu sau: Yêu cầu: ▬ Thiết kế Form “Tìm khách hàng” sao cho khi nhập tên khách hàng hoặc tên đại diện cho khách hàng trong Textbox, sau đó nhấp nút “Tìm” sẽ mở Form “Thông tin khách hàng” để biết được các thông tin về khách đó. Thiết kế: ▬ Tạo một Macro gán vào sự kiện OnClick của nút “Tìm” với hành động OpenForm để mở Form “Thông tin khách hàng” theo điều kiện nhận được từ Textbox của Form “Tìm khách hàng”. Action Argument OpenForm Form Name: “ F_Thongtinkhachhang View: Form Where Conditon: Tenkh=Forms!F_Timkhachhang!txtTenkh 4- Các sự kiện và biến cố thường dùng 4.1- Các sự kiện trên đối tượng Biến cố Ý nghĩa BeforeUpdate Xảy ra trước khi dữ liệu mới ghi vào thuộc tính Value của đối tượng. Access 3 Trang 13
  14. AfterUpdate Xảy ra sau khi dữ liệu mới ghi vào thuộc tính Value của đối tượng. OnClick Xảy ra khi nhấp mouse trên đối tượng. OnDblClick Xảy ra khi nhấp kép mouse trên đối tượng. OnOpen Xảy ra khi đối tượng được mở. OnEnter Xảy ra trước khi đối tượng nhận focus. OnGotFocus Xảy ra khi đối tượng nhận focus. OnExit Xảy ra trước khi đối tượng mất focus. OnLostFocus Xảy ra sau khi đối tượng đã mất focus. 4.2- Các hành động thường dùng Hành động Ý nghĩa Các đối số ApplyFilter Cho phép sàng lọc dữ liệu Filter Name: Tên của Query dùng để trích lọc hiển thị khi xử lý dữ liệu. dữ liệu nguồn đang xử lý. Where Condition: Điều kiện sàng lọc dữ liệu. Beep Phát ra tiếng “bíp” (không có đối số) Close Đóng một đối tượng. Object Type: Loại đối tượng muốn đóng. Nếu để trống thì hiểu là đối tượng hiện hành. Object Name: Tên của đối tượng muốn đóng. Save : Có lưu lại khi đóng đối tượng không. GotoControl Chuyển focus giữa các điều Control Name: Tên của đối tượng chuyển tới. khiển trên Form. GotoRecord Cho phép di chuyển con trỏ Object Type: Kiểu đối tượng trong Table|Query Record trong Table|Query hoặc Form. hoặc Form. Object Name: Tên của đối tượng. Record: Vị trí di chuyển là: trước, sau, đầu, cuối, thêm mới. MsgBox Hiển thị một hộp thông báo Message: Nội dung của thông báo cần hiển thị. đến người dùng. Beep: Có phát ra tiềng "bíp" hay không. Type: Loại hộp thông báo. Title: Tiêu đề của hộp thông báo. OpenForm Mở một Form. Form Name: Tên Form cần mở. View: Dạng trình bày Form. Filter Name: Tên của Query dùng để sàng lọc dữ liệu hiển thị trong Form. Where Condition: Điều kiện dùng để sàng lọc dữ liệu hiển thị trong Form. OpenReport Mở một Report. Report Name: Tên Report cần in. View: Chế độ mở. Filter Name: Tên của Query dùng để sàng lọc dữ liệu trong Report. Where Condition: Điều kiện sàng lọc dữ liệu hiển thị trong Report. Quit Thoát khỏi Access. Options: Lưu đối tượng hay không ? (Prompt, SaveAll, Exit). RunCommand Thực hiện một lệnh trên Command: Lệnh trên menu. menu của Access. ShowAllRecords Hiển thị tất cả các Record (không có đối số) trong Table|Query|Form. SetValue Gán giá trị cho một Field, Item: Tên của Field, điều khiển hoặc thuộc tính điều khiển hoặc thuộc tính. của điều khiển muốn gán giá trị. Expression: Biểu thức cần gán giá trị. StopMacro Ngừng thi hành Macro. (không có đối số) Access 3 Trang 14
  15. II- Macro đặc biệt 1- Macro có điều kiện ▬ Khi muốn các hành động trong Macro thi hành phụ thuộc vào một điều kiện nào đó ta thiết kế Macro có điều kiện bằng cách mở thêm cột Condition trong cửa sổ thiết kế. ▬ Các biểu thức điều nhập trên hàng có hành động cần thực hiện. Nếu hành động có cùng điều kiện thì nhập thay thế bằng dấu ba chấm. Ví dụ: Condition Action IsNull(Forms!F_Timkhachhang!txtTenkh) MsgBox Beep StopMacro OpenForm Chú ý: Hàm IsNull( ) sẽ cho giá trị True nếu biểu thức trong ngoặc là Null. Ngược lại là False. Ví dụ: Xét mẫu Form sau đây: Yêu cầu: ▬ Khi chọn tùy chọn “Tất cả thành phố” thì Combobox mờ đi. Ngược lại, khi chọn tùy chọn “Chọn thành phố” thì Combobox sẽ sáng lên để cho phép chọn tên một thành phố trong nó. Thiết kế một Macro gán vào thuộc tính AfterUpdate của Option Group: Condition Action Argument fraChon=1 SetValue Item: cobTp.Enabled Expression: No fraChon=2 SetValue Item: cobTp.Enabled Expression: Yes 2- Macro nhóm ▬ Trong một Form có thể có nhiều Macro, do đó sẽ phát sinh rất nhiều Macro tại cửa Database. Việc này gây khó khăn trong việc quản lý các Macro đối với người thiết kế. ▬ Để tập hợp các Macro trong một Form lại và lưu chung trong một Macro, ta gọi là Macro Group. Để tạo một Macro Group ta mở thêm cột Macro Name trong cửa Design. ▬ Trong cột Macro Name, ta ghi tên Macro con trong nhóm ở hàng chứa hành động đầu tiên. Ví dụ: Macro Name Condition Action Dau GotoRecord Sau Not [NewRecord] GotoRecord Truoc [NewRecord] GotoRecord Cuoi GotoRecord Themmoi GotoRecord Access 3 Trang 15
  16. Xoa SetWarning MsgBox(“Đồng ý xóa”,1)=1 RunCommand 3- Macro AutoExec ▬ Đây là loại Macro được lưu với tên Autoexec, nó sẽ tự động chạy khi file mdb được mở ra. Ta có thể sử dụng Macro với các hành động để khởi tạo môi trường làm việc cho ứng dụng. Ví dụ như mở các Form giới thiệu chương trình, tắt các thanh công cụ, ▬ Nếu không muốn chạy Macro Autoexec thì khi mở mdb ta giữ thêm phím Shift. ▬ Ví dụ: Tạo macro AutoExec như sau: Action Arguments Maximize OpenForm FormName:”GiaoDienChuongTrinh” SetValue Item: [Application].[MenuBar] Expression: " CHUONG TRINH QUAN LY NHAN SU" Access 3 Trang 16
  17. BÀI 3 THỦ TỤC XỬ LÝ SỰ KIỆN I- Tổng quan ▬ Ngoài việc sử dụng Macro để xử lý các sự kiện trên các đối tượng Form|Report|Control ta có thể viết các mã lệnh để thay thế. Các mã lệnh này khi tạo ra sẽ nằm bên trong một thủ tục và ta gọi là thủ tục xử lý sự kiện (Event Procedure). ▬ Các thủ tục này được lưu theo đối tượng và cũng như Macro có thể có nhiều thủ tục trên Form|Report tạo nên một đơn thể lớp (Class Module) của Form|Report đó. ▬ Một thủ tục xử lý sự kiện có thể được tạo khi tạo các nút lệnh bằng Wizard. Ngoài ra các thủ tục xử lý sự kiện cho đa số các đối tượng khác thường phải viết bằng tay. II- Giới thiệu thủ tục xử lý sự kiện 1- Thủ tục Wizard ▬ Khi thực hiện nút lệnh “Đóng” của một Form bằng Wizard thì trên sự kiện OnClick của nút lệnh xuất hiện dòng “Event Procedure”. Nhấp mouse vào nút ba chấm sẽ xuất hiện cửa sổ sau: Nhận xét: ▬ Một thủ tục luôn bắt đầu và kết thúc bằng 2 dòng: Private Sub _ ([các tham số]) End Sub ▬ Các dòng còn lại nằm giữa hai dòng trên chính là các lệnh trong thủ tục. Về nguyên tắc, mỗi lệnh phải nằm trên một dòng độc lập. ▬ Một thủ tục có thể có [các tham số] tùy theo và nó được dùng để chứa các thông tin trao đổi giữa hệ thống và người viết. Access 3 Trang 17
  18. ▬ Như vậy ta có thể tự viết ra các dòng lệnh hoặc sửa đổi các thủ tục Wizard như trên để xử lý các sự kiện theo đúng như cầu của riêng mình. 2- Tạo thủ tục xử lý sự kiện ▬ Chọn sự kiện của đối tượng. ▬ Nhấp vào nút ba chấm Chọn Code Builder OK ▬ Xuất hiện 2 dòng thủ tục sự kiện chuẩn. ▬ Viết các lệnh trong thân thủ tục để hoàn thành thủ tục. ▬ Đóng cửa sổ code. ▬ Thực thi sự kiện. Ví dụ: Mẫu Form sau đây: ▬ Mở thủ tục AfterUpdate của Option Group ▬ Nhấp nút ba chấm Chọn Code Builder ▬ Thủ tục được viết như sau: Private fraChon_AfterUpdate() If fraChon = 1 Then cobTp.Enabled = False Else cobTp.Enabled = True End If End Sub III- Các qui tắc khi viết lệnh 1- Viết lệnh ▬ Một câu lệnh đơn chỉ viết trên một dòng. ▬ Để viết nhiều câu lệnh trên một dòng ta dùng dấu hai chấm (:) để ngăn cách. ▬ Để viết một lệnh trên nhiều dòng ta dùng dấu gạch dưới (_) ở vị trí ngắt. ▬ Dòng chú thích được bắt đầu bằng dấu nháy đơn (‘). 2- Lệnh gán ▬ Để thay đổi giá trị của thuộc tính đối tượng ta sử dụng lệnh gán theo cú pháp sau: . = Ví dụ: ▬ Thay đổi chữ trong Textbox thành màu đỏ: txtHienthi.ForeColor = 255 ▬ Thay đổi màu nền trong Textbox thành màu vàng: txtHienthi.BackColor = 65535 Ví dụ: Xét mẫu Form sau: Access 3 Trang 18
  19. Yêu cầu: ▬ Khi nhấp nút “Hiển thị” thì trong Textbox sẽ hiện lời chào “Chào mừng các học viên ” (theo mẫu) có màu đỏ, được canh giữa và được khóa lại. ▬ Khi nhấp nút “Xóa” thì Textbox sẽ bị xóa trắng. ▬ Nút “Thoát” dùng để đóng Form. Viết lệnh: Private Sub cmdHienthi_Click() ' Gan chuoi Me.txtLoichao.Value = "Chao mung cac hoc vien" & _ vbCrLf & "Trung Tam Giao duc Ky thuat Tong hop Huong nghiep" & _ vbCrLf & "Tinh Dong Nai" ' Thay doi thuoc tinh Me.txtLoichao.ForeColor = 255 Me.txtLoichao.TextAlign = 2 Me.txtLoichao.Locked = True End Sub Private Sub cmdThoat_Click() DoCmd.Close , , acSaveYes End Sub Private Sub cmdXoa_Click() Me.txtLoichao.Value = Null End Sub 3- Thực hiện hành động trong thủ tục ▬ Access cung cấp đối tượng DoCmd chứa các phương thức có tên và đối số tùy chọn giống như các hành động trong Macro. Vì vậy, ta có thể sử dụng đối tượng này khi muốn thực hiện các hành động. ▬ Cú pháp tổng quát: DoCmd. [các đối số] Trong đó: ▬ sẽ được chọn trong danh sách xuất hiện sau khi ta nhập dấu chấm. ▬ [các đối số] ngăn cách bằng dấu phẩy và có thể sử dụng đối số mặc nhiên bằng cách đánh dấu phẩy và rồi để trống. Các đối số này sẽ xuất hiện khi ta đánh dấu phẩy. Các đối số là hằng chuẩn thường các ký tự đầu là ac , vb , Còn các đối số không phải là hằng đều phải đặt trong cặp dấu nháy kép. Ví dụ về các hành: DoCmd.OpenForm “F_Thongtinkhachhang”, , , “[Tenkh] Like ‘” & Forms!F_Timkhachhang!txtTenkh & “’” Cho phép mở Form “F_Thongtinkhachhang” ở chế độ Form View với điều kiện Tenkh trùng với giá trị nhập trong Textbox txtTenkh trong Form “F_Timkhachhang”. DoCmd.Close acForm, “F_Timkhachhang”, acSaveYes Cho phép đóng Form “F_Timkhachhang” và có lưu cập nhật. Access 3 Trang 19
  20. DoCmd.RunCommand accmdDeleteRecord Sử dụng lệnh xóa Record trên menu Edit 4- Thực hiện các phương thức trên đối tượng ▬ Phương thức của một đối tượng là một hành động được thực hiện trên đối tượng đó. Có thể sử dụng các phương của đối tượng bằng cú pháp : . [các đối số] ▬ Các phương thức thường dùng: SetFocus: Chuyển focus đến đối tượng. Requery: Chạy lại Query nguồn của Form|Combobox|Listbox Refresh: Hiển thị dữ liệu mới nhất vừa sửa đổi. Undo: Phục hồi dữ liệu trên Form|Control. Ví dụ 1: Để chuyển focus đến nút “Xóa” sau khi nhấp nút “Hiển thị” ta viết thêm dòng sau đây trong thủ tục cmdHienthi_Click(): Me.cmdXoa.SetFocus Ví dụ 2: Xét mẫu Form sau đây: Yêu cầu thiết kế: ▬ Hai Combobox đặt tại vùng Form Header chứa danh sách thành phố khách hàng và tên các khách hàng theo thành phố đó. Trong đó, Combobox chứa tên khách hàng không cho phép nhận focus khi mở Form. ▬ Các Textbox trong vùng Detail để hiển thị thông tin các khách hàng trong Table Khachhang và sẽ hiển thị đúng khách hàng theo sự chọn lực trong các Combobox. Đồng thời chúng cũng sẽ xuất hiện mờ khi khi mở Form. Yêu cầu nội dung: ▬ Khi chọn một thành phố trong Combobox 1 thì Combobox 2 sẽ sáng lên để cho phép chọn tên khách hàng ở thành phố đó. Trong khi đó các Textbox thông tin khách hàng vẫn chưa hiện sáng. ▬ Khi chọn một khách hàng trong Combobox 2 thì các Textbox sẽ hiện sáng, đồng thời chúng hiển thị đúng khách hàng vừa chọn và con trỏ bắt đầu nhảy vào Textbox “Tên khách hàng” để cho phép hiệu chỉnh (không cho phép hiệu chỉnh “Mã khách hàng”). Thiết kế: ▬ Thủ tục cho Combobox 1: Private Sub cobTp_AfterUpdate() ' Cho phép cobTenkh nhận focus Me.cobMakh.Enabled = True ' Chạy lại Query nguồn của cobMakh Me.cobMakh.Requery ' Không cho các Control sau nhận focus Me.Makh.Enabled = False Me.Tenkh.Enabled = False Me.Diachikh.Enabled = False Access 3 Trang 20
  21. Me.Dienthoaikh.Enabled = False Me.Thanhpho.Enabled = False End Sub ▬ Thủ tục cho Combobox 2: Private Sub cobMakh_AfterUpdate() ' Lọc dữ liệu trên Form DoCmd.ApplyFilter , "[Makh] = '" & Me!cobMakh.Value & "'" ' Cho các Control sau nhận focus Me.Tenkh.Enabled = True Me.Diachikh.Enabled = True Me.Dienthoaikh.Enabled = True Me.Thanhpho.Enabled = True ' Chuyển focus đến Tenkh Me.Tenkh.SetFocus End Sub Chú ý: Đối tượng Me đại diện cho Form hiện hành. 5- Lệnh nhảy ▬ Khi gọi thực hiện các thủ tục, có khi tồn tại những dòng lệnh mà tại đó phát sinh lỗi. Những lỗi này có thể do: Đối tượng ở trạng thái không chấp nhận lệnh. Đối tượng không tồn tại. ▬ Tùy tình huống mà ta dùng các lệnh nhảy sau đây để điều khiển việc thực thi các dòng lệnh trong thủ tục: On Error Goto Nhảy đến đoạn chương trình có khi có lỗi xảy ra. đặt tại dòng nơi cần nhảy tới theo sau là dấu hai chấm. On Error Resume Next Thực hiện dòng lệnh đứng liền tiếp theo dòng lệnh sinh lỗi. Lệnh này thường được đặt trước dòng lệnh phát sinh lỗi. Access 3 Trang 21
  22. BÀI 4 CÁC CẤU TRÚC RẼ NHÁNH I- Cấu trúc điều kiện If 1- Tổng quan ▬ Đây là cấu trúc thông dụng trong khi viết lệnh, nó được dùng để thực hiện các lệnh tùy theo các điều kiện. 2- Các dạng If 2.1- Dạng 1 If Then Kiểm tra và thực hiện 1 lệnh tương ứng nếu xảy ra (true). Nếu không xảy ra (false) thủ tục sẽ bỏ qua dòng lệnh này. 2.2- Dạng 2 If Then End if Giống dạng 1 nhưng thực hiện nhiều lệnh trong thân If. 2.3- Dạng 3 If Then ElseIf Then Else End If Kiểm tra nhiều và thực hiện các tương ứng nếu xảy ra. Ngược lại, thực hiện . 3- Ví dụ Xét mẫu Form sau: Yêu cầu : ▬ Khi chọn tùy chọn “Tất cả thành phố” thì Combobox sẽ mờ đi. Ngược lại, khi chọn tùy chọn “Chọn thành phố” thì Combobox sẽ sáng lên để cho phép chọn tên thành phố. ▬ Khi chọn tùy chọn “Tất cả thành phố”, nhấp nút “Xem” sẽ mở Report “RL_Thiepmoi” ra màn hình (tất cả các khách hàng). Ngược lại, Access 3 Trang 22
  23. khi chọn tùy chọn “Chọn thành phố” đồng thời chọn một thành phố trong Combobox và nhấp nút “Xem” sẽ mở Report “RL_Thiepmoi” ra màn hình với các khách hàng có thành phố đúng thành phố vừa chọn. Thiết kế: ▬ Thủ tục đáp ứng yêu cầu trên: Private Sub fraChon_AfterUpdate() If fraChon = 1 Then cobtp.Enabled = False Else cobtp.Enabled = True End If End Sub Private Sub cmdXem_Click() If fraChon = 1 Then DoCmd.OpenReport "RL_Thiepmoi", acViewPreview ElseIf fraChon = 2 And IsNull(cobtp) Then MsgBox "Ban phai chon thanh pho", vbCritical Me.cobtp.SetFocus Else DoCmd.OpenReport "RL_Thiepmoi", acViewPreview, , "Thanhpho = '" & Me.cobtp & "'" End If End Sub II- Cấu trúc chọn lựa Select Case 1- Tổng quan ▬ Điều khiển việc thực hiện các lệnh dựa trên các giá trị của một biểu thức. 2- Cú pháp Select Case Case Case Case Else End Select Khi có thì thực hiện , khi có thì thực hiện , Ngoài ra thực hiện sau phát biểu Case Else. Lưu ý: có thể có các dạng sau: ▬ Một giá trị cùng kiểu với giá trị . ▬ Nhiều giá trị cách nhau dấu phẩy. ▬ Miền giá trị: To ▬ Biểu thức: Is 3- Ví dụ Access 3 Trang 23
  24. Xét mẫu Form sau: Yêu cầu: ▬ Nhập một số có 2 chữ số vào Textbox bên trái Bấm enter Dịch bằng chữ trong Textbox bên phải. ▬ Thủ tục như sau: Private Sub txtSo_Exit() ‘ Khai báo biến chuỗi Dim t1 As String Dim t2 As String ‘ Khai báo biến số nguyên Dim chuc As Byte Dim donvi As Byte If Val(Me.txtSo) 99 Then MsgBox “Ban nhap so khong dung pham vi”, vbCritical Me.txtSo.SetFocus Exit Sub Else chuc = Val(Me.txtSo) \ 10 ‘ Tach chu so hang chuc donvi = Val(Me.txtSo) mod 10 ‘ Tach chu so hang don vi Select Case chuc Case 1 : t1 = “Muoi” Case 2 : t1 = “Hai muoi” Case 3 : t1 = “Ba muoi” Case 4 : t1 = “Bon muoi” Case 5 : t1 = “Nam muoi” Case 6 : t1 = “Sau muoi” Case 7 : t1 = “Bay muoi” Case 8 : t1 = “Tam muoi” Case 9 : t1 = “Chin muoi” End Select Select Case donvi Case 0 : t2 = “” Case 1 : t2 = “mot” Case 2 : t2 = “hai” Case 3 : t2 = “ba” Case 4 : t2 = “bon” Case 5 : t2 = “lam” Case 6 : t2 = “sau” Case 7 : t2 = “bay” Case 8 : t2 = “tam” Case 9 : t2 = “chin” End Select End If Me.txtChu = t1 & Space(1) & t2 & Space(1) & “dong” End Sub III- Biến và khai báo biến 1- Tổng quan ▬ Biến là một vùng nhớ tạm được khai báo trong thủ tục để lưu trữ các giá trị trung gian trong khi xử lý. ▬ Biến phải được khai báo bằng một tên và thuộc về một kiểu dữ liệu nhất định. Access 3 Trang 24
  25. ▬ Tên biến bao gồm chữ cái, chữ số và dấu gạch dưới và phải bắt đầu bằng một chữ cái. Đồng thời tên biến không được đặt trùng với các từ khóa như : Case, If, Then, 2- Kiểu của biến ▬ Thông thường, mỗi biến phải được khai báo bằng một kiểu xác định nhằm tránh sự nhầm lẫn khi trao đổi giá trị cho biến. ▬ Bảng các kiểu thường dùng: Kiểu Mô tả Phạm vi Byte Số nguyên 1 byte 0 255 Boolean Đúng|Sai True(-1)|False(0) Date Ngày tháng Integer Số nguyên 2 byte. -32,768 32,767 Long Số nguyên 4 byte. -2,147,483,648 2,147,483,647 Single Số thực 4 byte. Double Số thực 8 byte. Currency Số thực có dấu chấm cố định 8 byte. String Chuỗi ký tự. Variant Chuỗi, ngày, giờ, số. 3- Khai báo biến ▬ Cú pháp: Dim As ▬ Biến khai báo trong thủ tục chỉ có phạm vi sử dụng trong thủ tục. Khi thủ tục kết thúc giá trị biến sẽ bị xóa. ▬ Biến khai báo trong Declaration của đơn thể sẽ có phạm vi sử dụng trong Form|Report. Khi đóng đối tượng giá trị của biến sẽ bị xóa. Access 3 Trang 25
  26. BÀI 5 TẠO THỰC ĐƠN LỆNH I- Tổng quan ▬ Thanh thực đơn là nơi chứa các lệnh cho phép người dùng truy xuất tới các đối tượng trong ứng dụng mà không thông qua cửa sổ Database. Nghĩa là, ta có thể không cho cửa sổ Database xuất hiện khi khởi động ứng dụng. ▬ Có thể tạo thanh thực đơn bằng Macro Group, nhưng trong bài này giới thiệu cách tạo thực đơn lệnh của Access. II- Các bước tạo thực đơn 1- Tạo hệ thống thực đơn ▬ Bước 1: Menu View Toolbar Customize Hiện hộp thoại: Thẻ Toolbar 1- Chọn New để xuất hiện và đặt tên 2- Chọn Properties để xuất hiện và chọn Menu Bar trong hộp Type Thanh thực đơn tạo mới xuất hiện Access 3 Trang 26
  27. ▬ Bước 2: Thẻ Command: Chọn New Menu và kéo biểu tượng “New Menu” đặt vào thanh thực đơn (trên mẫu) sau đó nhấp vào Name để đặt tên cho thực đơn. ▬ Bước 3: Thẻ Command: Chọn các mục trong hộp Categories (AllQuery, AllReport, AllForm, AllMacro, ) để xuất hiện các đối tượng tương ứng trong ứng dụng. ▬ Bước 4: Kéo đối tượng đặt vào bên dưới thực đơn (theo mẫu). ▬ Bước 5: Thực hiện lại bước 4 cho các đối tượng trong cùng thực đơn. Lập lại các bước 2,3,4,5 cho thực đơn tiếp theo. 2- Khai báo các thuộc tính khi khởi động ▬ Menu Tools Start Up Hiện hộp thoại: ▬ Bỏ tùy chọn Display Database Window để không cho khởi động cửa sổ Database khi chạy file MDB. ▬ Chọn tên thực đơn vừa tạo trong hộp Menu Bar. Access 3 Trang 27
  28. BÀI TẬP A- Thiết kế các mẫu Report 1- Mẫu 1: R_1 2- Mẫu 2: R_2 Access 3 Trang 28
  29. 3- Mẫu 3: R_3 4- Mẫu 4: R_4 Access 3 Trang 29
  30. 5- Mẫu 5: R_5 B- Các bài tập về Macro 1- Mẫu 1: F_mau7 Yêu cầu: ▬ Nút “Tất cả” được chọn mặc định và để hiển thị toàn bộ các khách hàng đã có. ▬ Chọn một trong các thành phố để xem danh sách các khách hàng theo thành phố đó. ▬ Nút “Đóng” dùng để đóng Form. 2- Mẫu 2: F_mau8 Yêu cầu: ▬ Nút “Xem tất cả” áp dụng cho Group bên trái. Các tùy chọn tương ứng để mở các báo cáo: R_3, R_4, R_5. ▬ Nút “Xem riêng” áp dụng cho Group bên phải. Khi chọn tùy chọn thì Combobox tương ứng sẽ bật sáng, lúc này bấm nút “Xem riêng” sẽ kiểm tra Combobox rỗng hay không để mở các Report tương ứng: R_3, R_4, R_5 theo giá trị đã chọn trong Combobox. ▬ Nút “Đóng” dùng để đóng Form. Access 3 Trang 30
  31. 3- Mẫu 3: F_mau9 Yêu cầu: ▬ Khi chọn tùy chọn “Tất cả thành phố” thì Combobox sẽ mờ đi và lúc này nếu bấm nút “Xem” sẽ mở Report: RL_Thiepmoi đã tạo trong phần Access1 (tham khảo mẫu bên dưới). ▬ Khi chọn tùy chọn “Chọn thành phố” thì Combobox sẽ bật sáng và lúc này nếu bấm nút “Xem” sẽ kiểm tra Combobox có rỗng hay không để mở Report “ RL_Thiepmoi theo tên thành phố đã chọn trong Combobox. ▬ Nút “Đóng” dùng để đóng Form. Mẫu Report: RL_Thiepmoi 4- Mẫu 4: F_mau10 Yêu cầu: ▬ Thiểt kế mẫu Form theo đúng trạng thái chọn của tùy chọn khi Form hoạt động. ▬ Tùy chọn 1: Textbox có nền màu đỏ, chuỗi “Hello!!!Learning Access” màu vàng. ▬ Tùy chọn 2: Textbox có nền màu xanh dương, chuỗi “ Welcom to Access !!!” màu trắng. ▬ Tùy chọn 3: Textbox có nền màu vàng, chuỗi “Begin with Access !!!” màu xanh lá. ▬ Tùy chọn 4: Textbox có nền màu xanh lá, chuỗi “End. Goodbye” màu xanh dương. Access 3 Trang 31
  32. 5- Mẫu 5: F_mau11 Yêu cầu: ▬ Khi chọn mục "Xem khách hàng chung" thì Combobox "Chọn mã khách hàng", Checkbox "In trên màn hình", Checkbox "In ra giấy" đồng thời không hiện sáng. Lúc này, nếu nhấp nút "Xem" sẽ mở Report: R_5 (Báo cáo hóa đơn theo khách hàng). ▬ Khi chọn mục "Xem khách hàng chi tiết" thì Combobox "Chọn mã khách hàng" sẽ hiện sáng đồng thời 2 checkbox "In trên màn hình" và "In ra giấy" sẽ không hiện sáng. Trong trường hợp này, nếu Combobox không được chọn sẽ xuất hiện thông báo yêu cầu chọn. Ngược lại nếu được chọn và khi nhấp nút "Xem" sẽ hiện Report: R_5 theo mã khách hàng vừa chọn trong Combobox. ▬ Khi chọn mục "Báo cáo doanh thu theo sản phấm" thì Combobox sẽ không hiện sáng, đồng thời 2 Checkbox "In trên màn hình" và "In ra giấy" sẽ hiện sáng. Nếu chọn một trong hai Checkbox sẽ mở Report: R_1 (Báo cáo doanh thu theo sản phẩm) theo đúng ý nghĩa của tùy chọn. Nếu cả hai không được chọn sẽ hiện thông báo yêu cầu chọn. Nếu chọn cả hai cũng sẽ xuất hiện Report: R_1 với cả hai ý nghĩa của tùy chọn. C- Các bài tập về thủ tục xử lý sự kiện 1- Mẫu 1: F_code1 Yêu cầu: ▬ Cho phép nhập độ dài 3 cạnh của một tam giác (Có kiểm tra điều kiện để 3 giá trị nhập là 3 cạnh của một tam giác). Sau đó in ra các kết quả theo mẫu (Lưu ý: Kết quả in ra có màu xanh dương). ▬ Các công thức: a b c Diện tích tam giác: S p(p a)(p b)(p c) với p 2 abc Bán kính đường tròn ngoại tiếp: R 4S S Bán kính đường tròn nội tiếp: r p (Các hàm cần sử dụng: hàm Sqr( ) để tính căn bậc hai ; Hàm Round( ) để làm tròn ; Hàm Val( ) để đổi ra giá trị số.) Access 3 Trang 32
  33. 2- Mẫu 2: F_code2 Yêu cầu: ▬ Tùy thuộc vào việc chọn lựa tại Option Group mà ta có bài toán giải tương ứng. ▬ Sau khi nhập các hệ số cho bài toán, bấm nút “Kết quả” sẽ có kết quả hiện trong Textbox. ▬ Lưu ý: Kết quả có màu đỏ và phải xuất hiện các chuỗi mô tả. Ví dụ: Phuong trinh có : Nghiem thu nhat la : x1 = 2.53 Nghiem thu hai la : x2 = 5.68 Hoặc: Phuong trinh co nghiem kep : x = 1.25 Hoặc: Phuong trinh vo nghiem !!! 3- Mẫu 3: F_code3 Yêu cầu: ▬ Khi nhập một số có 2 chữ số, bấm Enter, sẽ hiện chữ trong Textbox thứ hai. ▬ Kiểm tra trường hợp ô số không nhập thì sẽ hiện thông báo. Ngoài ra các bạn học viên có thể thực hành các ví dụ đã cho trong phần lý thuyết và thực hành các bài tập đã cho trong phần bài tập Macro. D- Tạo thực đơn ▬ Thực đơn “Nhập” gồm các lệnh: Xuất|Nhập sản phẩm Mở Form F_mau3 (Access2) Xuất|Nhập nhân viên Mở Form F_mau4 (Access2) ▬ Thực đơn “Thống kê” gồm các lệnh: Thống kê hóa theo khách hàng Mở Form FM_mau1 (Access2) Thống kê nhân viên Mở Form FM_mau2 (Access2) Thống kê doanh số sản phẩm Mở FM_mau3 (Access2) Thống kê hóa đơn theo thời gian FM_mau5 (Access2) ▬ Thực đơn “Báo cáo” gồm các lệnh: Báo cáo sản phẩm Mở Report R_1 (Access3) Báo cáo doanh thu khách hàng Mở Report R_2 (Access3) ▬ Thực đơn “Xử lý” gồm các lệnh: Access 3 Trang 33
  34. Báo cáo Mở Form F_mau8 Thiệp mời Mở Form F_mau9 ▬ Thực đơn “Tiện ích” gồm các lệnh: Tam giác Mở Form F_code1 Giải phương trình Mở Form F_code2 Đổi số ra chữ Mở Form F_code3 ▬ Thực đơn “Hệ thống” gồm lệnh: Thoát Mở một Macro với phương thức Quit Chúc các bạn học viên thành công Access 3 Trang 34