Bài giảng MS Access 2010

Những ứng dụng của Access

Dùng để xây dựng hệ cơ sở dữ liệu

Có thể dùng để xây dựng trọn gói những phần mềm quản lý qui mô vừa và nhỏ.

Dùng để quản lý dữ liệu cho phép người dùng đăng nhập vào rồi xem, tìm kiếm, sửa, xóa, chia sẻ. Tạo các ứng dụng về quản lý mà không cần phải là một nhà phát triển.

 

 

pptx292 trang | Chia sẻ: NamTDH | Lượt xem: 1283 | Lượt tải: 2download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng MS Access 2010, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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. Cách tạo: 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 218 6.1.3 Tạo bằng chức năng Design: Các thành phần trong cửa sổ thiết kế Report: Page Header/Footer Report Header/Footer Detail Group Header Footer Một Report gồm các thành phần: 219 6.1.3 Tạo bằng chức năng Design: 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. Các nội dung thường đặt trong Page Header/Footer. Page Numbers, logo, Title, Date and Time… 220 6.1.3 Tạo bằng chức năng Design: 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. Page Numbers: chèn số trang Logo: chèn logo báo cáo Title: tiêu đề cho trang báo cáo Date and Time: ngày và thời gian Các nội dung thường đặt trong Page Header/Footer: 221 6.1.3 Tạo bằng chức năng Design: 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 toán, thống kê dữ liệu. 222 6.1.3 Tạo bằng chức năng Design: 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ì ngoà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. 223 6.1.3 Tạo bằng chức năng Design: Để 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. Hiệu chỉnh Report 6.2 Tạo Report có phân nhóm 224 Sử dụng Total Query Sử dụng Report Grouping Sử dụng Sub Report 6.2.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ê Tạo Report, sử dụng Total query đã tạo ở trên. 225 6.2.1 Sử dụng Total Query 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. 226 6.2.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 227 6.2.2 Report Grouping 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. 228 6.2.2 Report Grouping 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ế. 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. 229 6.2.2 Report Grouping 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: 230 6.2.2 Report Grouping 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ê. 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. Chọn vị trí đặt các ô thống kê bằng cách check vào các ô: 231 6.2.3 Sub Report 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. 232 6.2.3 Sub Report 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. Cách tạo: TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Tự động hóa ứng dụng bằng Marco Chương 7 234 Giả sử ta có một công việc gồm 4 thao tác: Mở một bảng để sửa (giả sử có tên BanHang) Mở một Form ứng vơí bảng đó để vào dữ liệu Mở một Report ứng với bảng đó In Report đó Bình thường ta thao tác từng công việc một, hết một công việc, đóng lại và mở công việc khác cứ như thế cho đến hết. Nhưng còn một cách khác là xử lý bốn công việc trên một cách tự động bằng công cụ mà ta hay gọi là Macro. 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. 7.1 Marco là gì? 235 Cách tạo: Chọn tab Create trên thanh Ribbon, trong nhóm lệnh Macro & Code, click nút Macro 7.2 Cách tạo và thực thi Marco 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. 236 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. 7.2.1 Cách tạo Marco Ví dụ: khi chọn Action là GotoRecord thì sẽ xuất hiện các Argument như hình. Tiếp tục chọn Action tiếp theo bằng cách click Add new Action. 237 Đố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. 7.2.2 Thực thi Marco Chọn tab Event, chọn sự kiện (event). Trong danh sách xổ xuống chọn tên Macro. 238 Actions: Trong Access 2010 action được chia thành nhóm theo chức năng. Events: Sự kiện tác động lên đối tượng để thực thi macro. 7.2.3 Các Actions và Events thông dụng 239 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.3 Marco Autoexec 7.4 Xây dựng hệ thống menu bằng Marco Một ứng dụng hoà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. 240 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: 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. 7.4.1 Tạo Marco cho hệ thống menu 241 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. 7.4.1 Tạo Marco cho hệ thống menu Trong menu chính có bao nhiêu menu con thì tạo bấy nhiêu macro. 242 Để đư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 7.4.2 Đưa menu vào chương trình Tại thuộc tính Menu bar, nhập tên macro cấp1. TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Module – Lập trình trong Access Chương 8 244 Chương trình con có hai dạng: Thủ tục hoặc hàm. Mỗi chương trình con là một dãy các lệnh để thực hiện một công việc nào đó. Một chương trình có thể có rất nhiều chương trình con. a. Chương trình con dạng thủ tục: Bao gồm các thành phần: Đầu thủ tục, thân thủ tục và kết thúc thủ tục. 1. Đầu thủ tục có dạng: [Private] Sub [(] 2. Thân thủ tục Thân thủ tục nằm sau đầu thủ tục. Thân thủ tục chứa các lệnh để giải quyết một công việc nào đó (các lệnh cụ thể bạn sẽ tìm hiểu sau). 3. Kết thúc thủ tục Để báo cho máy tính biết kết thúc một thủ tục, ta viết dòng lệnh: End Sub 8.1 Tổ chức và hoạt động của chương trình trong Access [Private] Sub [(] End Sub 245 b. Chương trình con dạng hàm (Funtion) Cũng như thủ tục, hàm cũng có cấu trúc ba phần: Đầu hàm, thân hàm và kết thúc hàm. Dạng tổng quát như sau: 8.1 Tổ chức và hoạt động của chương trình trong Access [Private] Function [(] End Function Sau đây là một số ví dụ: Ví dụ1: Lập trình hiển thị câu chào: “Chào bạn đã đến với lập trình Access” Bước 1: Chọn Create chọn New chọn Macro & code , sau đó cửa sổ để bạn soạn thảo chương trình (hay còn gọi là cửa sổ Code) hiện ra như sau: 246 Bước 2: Bạn gõ vào cửa sổ Code các lệnh (bạn cứ gõ rồi sau sẽ hiểu lệnh đó là gì?) như hình sau: Bước 3: Chạy chương trình: Chọn Run/Run Sub. Sau khi chạy chương trình, kết quả như hình sau: Giải thích: Lệnh MsgBox(“Chao ban da den voi lap trinh Access”) sẽ đưa ra một thông báo như hình trên. Ta có thể gọi đây là lệnh hiển thị dữ liệu cũng được. Khi đưa ra kết quả trên chương trình tạm dừng và nếu bạn chọn OK thì chương trình sẽ chạy tiếp và thực hiện lệnh sau lệnh MsgBox(...). 8.1 Tổ chức và hoạt động của chương trình trong Access 247 Ví dụ 2: Vào 2 số nguyên, tính tổng và hiển thị tổng của hai số đó. Bạn gõ vào cửa sổ Code như hình sau: Khi chạy chương trình, máy yêu cầu bạn gõ từ bàn phím giá trị a như giao diện sau: 8.1 Tổ chức và hoạt động của chương trình trong Access 248 Đến đây nếu bạn gõ vào số 5 và chọn OK (Hay ấn Enter) thì số nguyên 5 sẽ lưu vào biến a. Máy lại đưa ra giao diện: Và nếu bạn gõ vào số 4 và chọn OK thì máy sẽ lưu số nguyên 4 vào biến b. Tiếp tục máy sẽ tính tổng và đưa kết quả là 9 như hình sau: 8.1 Tổ chức và hoạt động của chương trình trong Access 249 Giải thích: Lệnh: Dim a As Integer Nghĩa là: Biến (Dim) a là (As) nguyên (Integer). Bạn khai báo biến a là nguyên , để máy sử dụng ô nhớ tương ứng với số nguyên mà!, tất nhiên nếu là số thực thì ô nhớ phải lớn hơn, v.v.. lý do khai báo là vậy. Lệnh: a = InputBox("Moi ban go vao so a? ") Nghĩa là: Hộp nhập liệu (InputBox) ra thông báo: "Moi ban go vao so a? “. Nếu bạn gõ vào một số thì số đó được lưu vào biến a Lệnh: s = a + b Đây là lệnh “gán”, nghĩa là máy sẽ lấy nội dụng biến a (bạn vừa gõ vào 5), cộng với nội dung của biến b (bạn vừa gõ vào 4), kết quả sẽ là 9, “gán” kết quả này cho biến s (gọi lệnh “gán” là như vậy). Lệnh: MsgBox "Tong 2 so la: " & Str(s) Đây là lệnh hiển thị dữ liệu, nhưng dữ liệu thì phải đồng nhất, ở đây: "Tong 2 so la: "(là dữ liệu văn bản) còn nội dung của biến s là một số nguyên. Để ghép được bạn phải đổi nội dung của biến s (số nguyên) thành dạng văn bản bằng hàm Str(s): Str viết tắt từ chữ String (văn bản). Để ghép hai văn bản ta dùng dấu & (cũng như để cộng 2 số ta dùng dấu + ). 8.1 Tổ chức và hoạt động của chương trình trong Access 250 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 biểu tượng. 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. Bạn chọn Event và cuốn để tìm sự kiện mình cần. 8.2 Thủ tục đáp ứng sự kiện với form, report 251 Ví dụ: Tạo thủ tục để mở bảng có tên SO_LUONG khi ta kích vào vùng tiêu đề đầu trang Form. Ta thao tác như sau: Chọn Create vào tap Form chon Form Design Kích vào thanh FormHeader để bật cửa sổ chứa các thủ tục đáp ứng sự kiện ứng với vùng này (tất nhiên ban chon Event), như hình sau: 8.2 Thủ tục đáp ứng sự kiện với form, report 252 Kích vào ô bên phải ứng với dòng On Click, kích mũi tên xuống để chọn [Event Procedure], kích tiếp vao nút ba chấm bên phải , Sau đó thủ tục đáp ứng sự kiện hiện ra: 8.2 Thủ tục đáp ứng sự kiện với form, report 253 Bạn gõ dòng lệnh: DoCmd.OpenTable “So_luong”. Lưu thủ tục này bằng một tên nào đó, giả sử tên DauForm Thoát về CSDL Chạy thủ tục này bằng cách chọn Navigation pane/ Forms, kích đúp vào tên DauForm ta thấy một Form hiện ra. Tiếp theo bạn kích vào vùng FormHeader, chương trình chạy và kết quả là bảng SoLuong được mở ra như sau: Sự kiện Click ở các vùng còn lại thiết kế tương tự. 8.2 Thủ tục đáp ứng sự kiện với form, report 254 a. Taọ thủ tục, hàm trong Macro & Code Tab. Bước 1: Create chọn Tab Macro & Code chọn Module Bước 2: Khai báo và tạo lập thủ tục hoặc hàm Bước 3: Ghi Module Ví dụ: Vào tuổi của hai người, tính tuổi trung bình của họ. Function Tong() Dim T1 As Interger Dim T2 As Interger Dim TB As Single T1 = InputBox(“vào tuoi cua nguoi thu nhat?”) T2 = InputBox(“vào tuoi cua nguoi thu hai?”) TB=(T1+T2)/2 MsgBox “Tuoi trung binh la:” & Str(TB) End Function Tuổi trung bình có thể không phải nguyên (vì phải chia cho 2), do đó ta phải khai báo là thực (Single). Số thực trong máy là số có dấu chấm thập phân, ví dụ: 23.45, 12.00, -45.34567, v.v.. 8.3 Tạo và thực hiện thủ tục và hàm 255 b. Tạo thủ tục đáp ứng sự kiên của các điều khiển trên Form. Trên Form ta có thể đặt các điều khiển như nút lệnh chẳng hạn, nút lệnh này cũng có các sự kiện. Các bước tiến hành: Bước 1: Mở Form và bổ sung một đối tượng lên Form, giả sử nút lệnh (Button) chẳng hạn. Bước 2: Mở cửa sổ Code: Chọn nút lệnh, kích phải chuột chọn Build event , sau đó hộp thoại Code Builder hiện ra: 8.3 Tạo và thực hiện thủ tục và hàm 256 Chọn Code Builder và chọn OK, một thủ tục sự kiện xuất hiện: Soạn thủ tục hoặc hàm đáp ứng sự kiện. Ghi lại thủ tục đó và chạy thử 8.3 Tạo và thực hiện thủ tục và hàm 257 c. Chương trình có nhiều thủ tục Một thủ tục khi chạy có thể yêu cầu (gọi) một hoặc nhiều thủ tục khác làm việc. Lệnh gọi này được viết lại đúng tên thủ tục bị gọi, ví dụ hai thủ tục sau: Sub MoBang() DoCmd.OpenTable”So_luong” End Sub Và thủ tục tính tổng: Sub Tong() Dim a As Integer, b As Integer, s As Integer a = 12 b = 20 s = a + b MsgBox ("s=" & Str(s)) End Sub Để chạy được 2 thủ tục trên, ta có thể tạo một thủ tục khác (giả sử có tên là GOI(), thủ tục GOI có dạng sau: Sub GOI() MoBang Tong End Sub 8.3 Tạo và thực hiện thủ tục và hàm 258 Khi chạy, thủ tục GOI() yêu cầu thủ tục MoBang() làm việc, thủ tục MoBang() làm việc xong lại quay về thủ tục GOI() và thực hiện tiếp lệnh sau đó (tức là lệnh gọi thủ tục Tong). Cứ như thế cho đến khi tất cả các lệnh trong thủ tục GOI() được hoàn tất. Ba thủ tục đó nằm trong một đoạn mã (chương trình) như sau: 8.3 Tạo và thực hiện thủ tục và hàm 259 Các phép toán số học Các phép toán so sánh: Các phép toán Logic: AND, OR, NOT: Các phép toán so sánh tạo nên biểu thức logic cho kết quả True(-1) hoặc False(0) Phép ghép chuỗi ký tự: Muốn ghép 2 chuỗi ký tự ta sử sụng phép toán & hoặc dấu + 8.4 Các phép toán, hàm, biến, biểu thức + : Cộng - : Trừ * : Nhân / : Chia Mod : Chia lấy phần dư \ : Chia nguyên ^ : Luỹ thừa = : Bằng : Lớn hơn >= : Lớn hơn hoặc bằng : khác X Y X And Y X Or Y Not (x) -1 -1 0 0 -1 0 0 0 -1 -1 -1 0 -1 -1 -1 0 0 0 -1 -1 260 Khai báo biến: Biến phải khai báo để chương trình xác định: Tên của biến là gì? vì chương trình sẽ làm việc với tên đó. Kiểu của biến là gì? (nguyên, thực, logic, văn bản, v.v..) vì chương trình phải “xếp chỗ” cho các biến “lưu trú”, nghĩa là chương trình phải huy động ô nhớ phù hợp với kiểu của biến, ví dụ nếu biến nguyên thì ô nhớ “bé”, số thực thì ô nhớ “to”, v.v..Việc khai báo là để xếp chỗ ở của biến (ô nhớ) cho hợp lý, tránh lãng phí (thừa không gian “lưu trú” hoặc không đủ chỗ để “lưu trú”) Dạng khai báo biến như sau: Dim [As] : Bạn tự đặt theo luật sau: là một chuỗi các chữ cái, chữ số, dấu gạch chân, độ dài tên không quá 40 ký tự, không được trùng với các từ khoá có trong Access và đặc biệt ký tự đầu phải là chữ cái.. [As]: Nếu phần này không ghi thì coi như biến đó ngầm định có các kiểu: Kiểu số, chuỗi, Date/Time, Null (rỗng). Khi sử dụng biến đó tuỳ ngữ cảnh mà xác định kiểu sau. Còn nếu ghi phần này thì kiểu có thể là: Nguyên, thực, văn bản, v.v.. Ví dụ về khai báo biến: Dim i As Interger (i là biến nguyên ngắn) 8.4 Các phép toán, hàm, biến, biểu thức 261 Các hàm thường sử dụng. Với các hàm, bạn cũng phải viết đúng theo quy định của Access, ví dụ Sin(x), Cos(x), Sqr(x), v.v..các hàm như đã trình bày ở chương 5. Biểu thức (Expression) ... Các biến, hằng, hàm nối với nhau bởi phép toán được gọi là biểu thức, biểu thức cũng có thể chỉ là 1 biến , 1 hằng, 1 hàm. Điều quan trọng là bạn phải viết biểu thức đúng quy định (đúng phép toán đã quy định, đúng tên biến, đúng tên hằng, đúng cách viết hằng v.v..). Ví dụ: Biểu thức chỉ chứa hằng: (234+678)/13 Biểu thức số chỉ chứa biến: (a+b+c)*(a+b) Biểu thức số vừa chứa biến và hằng: (a+b)/7 Biểu thức văn bản: “Tin hoc” & “Văn phong” Biểu thức logic:(5>13) Or (3[ , [][,]]) Ví dụ: Nhập tên của một khách hàng vào biến Kh Dim Kh As String *20 Kh=InputBox$(“Tên khách hàng”) 264 b. Lệnh Inputbox Chức năng: Cho phép nhập giá trị kiểu Varial vào từ bàn phím Cú pháp: InputBox([ , [][,]]) Ví dụ:Nhập số chứng từ của một hoá đơn vào biến Sct Dim Sct Sct=InputBox(“Số chứng từ”) c. Lệnh MsgBox Chức năng: Hiện chuỗi văn bản (thông báo) ra hộp thoại. Cú pháp: MsgBox([ ,[ ,]]) Ví dụ: MsgBox (“Hello Thao”) Ví dụ 2: Nhập và tính tổng hai số và in kết quả ra hộp thoại Sub Tong() Dim a As Interger, b As Interger a=InputBox(“vào a=”) b= InputBox(“vào b=”) Msgbox “Kết quả là:” & Str(a+b) End Sub 8.5.1 Vào ra dữ liệu 265 Như đã nói qua ở phần đầu lập trình, lệnh gán có dạng: = Ví dụ: s=s+i 8.5.3 Lệnh rẽ nhánh IF…THEN…END IF Dạng 1: Hoạt động của lệnh này như sau: Nếu đúng thì thực hiện Nếu sai thì bỏ qua lệnh If. Ví dụ: Sub XemTuoi() Dim tuoi As Integer tuoi=InputBox(“ Vao tuoi cua ban?”) If tuoi>60 Then MsgBox(“Chắc bạn nghỉ hưu rồi?”) End If End Sub 8.5.2 Lệnh gán If Then End If 266 Khi chạy chương trình: Nếu bạn gõ vào 65 (lơn hơn 60) và Enter thì máy sẽ in ra câu: “Chắc bạn nghỉ hưu rồi”. Còn nếu bạn gõ vào 25 (nhỏ hơn 60) và Enter thì máy không đưa ra gì cả. Dạng 2: Hoạt động: Nếu đúng thì thực hiện bỏ Nếu sai thì thực hiện bỏ 8.5.3 Lệnh rẽ nhánh IF...THEN...END IF If Then Else End If 267 Ví dụ 1: Ta sửa lại thủ tục XemTuoi() để gặp trường hợp nào máy cũng trả lời: Sub XemTuoi() Dim tuoi As Integer tuoi=InputBox(“ Vao tuoi cua ban?”) If tuoi>60 Then MsgBox(“Chắc bạn nghỉ hưu rồi?”) Else MsgBox(“Bạn chưa đến tuổi nghỉ hưu!” ) End If End Sub Ví dụ 2: Lập trình giải phương trình bậc hai:ax2+bx+c=0 Để tính nghiệm phương trình bậc hai này, bạn phải cho máy biết ba giá trị cụ thể ứng với a, b, c (ở đây kiểu 3 biến ấy là thực, rõ ràng bạn phải dùng lện InputBox). Nhờ giá trị cụ thể 3 biến đó bạn tính được Delta, sau đó bạn phải xem xét nếu (If) Delta không âm thì có 2 nghiệm, nếu âm thì vô nghiệm. Trình tự đó (giải thuật) được liệt kê như sau: 8.5.3 Lệnh rẽ nhánh IF...THEN...END IF 268 Sub GPTB2() Dim a As Double, b As Double, c As Double, Delta As Double Dim x1 As Double, x2 As Double a= InputBox(“vao a=”) b= InputBox(“vao b=”) c= InputBox(“vao c=”) Delta= b*b - 4*a*c If Delta>0 Then x1=(-b+Sqr(Delta))/(2*a) x2=(-b-Sqr(Delta))/(2*a) MsgBox (“x1=” & Str(x1)) MsgBox (“x2=” & Str(x2)) Else MsgBox (“Pt vo nghiem”) End If End Sub 8.5.3 Lệnh rẽ nhánh IF...THEN...END IF 269 Không phải lúc nào cũng “không thế này thì thế kia” (2 nhánh) mà có những trường hợp bạn phải chọn 1 trong nhiều nhánh, ví dụ: Giả sử bằng tốt nghiệp của bạn có 3 loại: Trung bình, Khá và Giỏi. Nếu khá thì được thưởng 100.000đ, nếu giỏi được thưởng 200.000đ, còn trung bình thì không được thưởng. Chương trình như sau: Sub XetThuong() Dim Loai As Integer Loai=InputBox(“Vào loại: Trung bình gõ vào số1, Khá số2, Giỏi số3”) Select Loai Case 1 MsgBox(“Bạn không được thưởng”) Case 2 MsgBox(“Bạn được thưởng 100.000đ”) Case Else MsgBox(“Bạn được thưởng 200.000đ”) End Select End Sub 8.5.4 Lệnh chọn Select...Case 270 Khi chạy chương trình, nếu bạn gõ vào số 3 thì máy sẽ in dòng:” Bạn được thưởng 200.000đ”. Nhưng nếu bạn không may gõ nhầm số 6 (gõ nhầm là bình thường mà!) thì máy vẫn thưởng bạn 200.000đ, mặc dù không có loại nào là loại 6 cả. Để an toàn bạn sửa lại đoan mã trên như sau: Sub XetThuong() Dim Loai As Integer Loai=InputBox(“Vào loại: Trung bình gõ vào số1, Khá số2, Giỏi số3”) Select Loai Case 1 MsgBox(“Bạn không được thưởng”) Case 2 MsgBox(“Bạn được thưởng 100.000đ”) Case 3 MsgBox(“Bạn được thưởng 200.000đ”) Case Else MsgBox(“Bạn gõ nhầm loại bằng rồi!”) End Select End Sub 8.5.4 Lệnh chọn Select...Case 271 Cú pháp tổng quát của lệnh Select như sau: Nếu bằng i thì thực hiện và kết thúc lệnh Select Case. Còn nếu không có 1 trường hợp nào đúng thì hực hiện và cũng kết thúc luôn lệnh Select Case hoặc ra khỏi Select Case nếu không dùng lệnh Case Else.. 8.5.4 Lệnh chọn Select...Case Select Case Case Case ……….. Case [Case Else ] End Select 272 Ví dụ: Tạo một thủ tục lập kế hoạch công tác trong tuần, đặt vào nút lệnh Command() trên Form. Khi chạy chương trình và kích hoạt nút lệnh thủ tục được thực hiện: Private Sub command0_Click() Dim Thu As Integer Thu = InputBox(“Bạn cho biết thứ? ”) Select Case Thu Case 2 MsgBox (“Họp giao ban”) Case 3 MsgBox (“Đi xuống phân xưởng”) Case 4 MsgBox (“Đi lên tổng công ty”) Case 5 Or 6 MsgBox (“Họp các phân xưởng”) Case Else MsgBox (“Nghỉ”) End Select End Sub 8.5.4 Lệnh chọn Select...Case 273 Lệnh For có cú pháp tổng quát như sau: Ban đầu nhận , và so sánh với , nếu lớn hơn thì kết thúc For, nếu nhỏ hơn hoặc bằng thì thực hiện , gặp Next, cộng thêm với , và đồng thời so sánh với , nếu lơn hơn thì kết thúc For, còn nếu đang nhỏ hơn hoặc bằng thì lại thực hiện , gặp Next lại làm tiếp như trên. 8.5.5 Lệnh lặp For...Next For = To [Step ] Next 274 Ví dụ: Tính tổng s=11+22+33+...+1010 . Sub Tong() Dim s As Double, i As Integer For i = 1 To 10 Step 1 s = s + i^i Next MsgBox “Kết quả là:” & Str(s) End Sub 8.5.5 Lệnh lặp For...Next 275 Dạng tổng quát như sau: Chừng nào còn đúng thì thực hiện Khi sai thì ra thì thoát khỏi vòng lặp và thực hiện nhóm lệnh sau Loop . Ví dụ: Sub Tong() Dim s As Double, a As Double, i As Integer i= 1 a=1/i s= 0 Do While a>=0.0001 s= s+a i= i+1 a=1/i Loop MsgBox (“Kết quả:”) & Str(s) End Sub 8.5.6 Lệnh Do while... Loop Do While Loop 276 Dạng tổng quát như sau: Chừng nào vẫn còn sai thì thực hiện . Ví dụ trên ta viết lại theo lệnh này: Sub Tong() Dim s As Double, a As Double, i As Integer i= 1 a=1/i s= 0 Do Until a đúng thì ra khỏi vòng lặp và thực hiện nhóm lệnh sau Loop. 8.5.7 Lệnh Do Until... Loop Do Until Loop 277 Trong Access có một số đối tượng mà bạn cần quan tâm: Đối tượng DBEngine: chứa đối tượng Workspaces (vùng làm việc) Đối tượng Workspaces: chứa nhiều vùng làm việc, mỗi vùng chứa một Database. Đối tượng Database: chứa CSDL Đối tượng RecordSets: chứa các đối tượng trong CSDL Đối tượng Tabledefs: chứa các bảng của một CSDL Đối tượng Querydefs: chứa các truy vấn của một CSDL Đối tượng Field: chứa các trường trong bảng Đối tượng Form: chứa các Form v.v.. 8.6 Đối tượng, biến đối tượng và xử lý đối tượng 278 Cách khai báo biến đối tượng: a. Kiểu Database cho phép tham chiếu đến một CSDL, vì vậy để làm việc với một CSDL ta phải khai báo biến kiểu Database Để làm việc với một CSDL hiện thời ta làm như sau: Dim Db As Database (Khai báo biến Db có kiểu Database) Set Db=DBEngine.Wokspaces(0).Database(0) (gắn biến Db ứng với CSDL hiện thời) Hoặc có thể viết: Dim Db As Database Set Db=CurrentDb() (Gắn biến Db với CSDL hiện thời) Làm việc với 1 CSDL khác: Dim Db As Database Set Db= DBEngine.Wokspaces(0).Database() 8.6.1 Đối tượng và khai báo đối tượng Dim As 279 b. Sử dụng biến kiểu RecordSet Kiểu RecordSets cho phép ta tham chiếu đến các đối tượng của CSDL đã khai báo như: Bảng, truy vấn, các bản ghi, v.v.. Ví dụ 1: Tạo 1 biến kiểu RecordSet gắn với bảng So_luong của CSDL hiện thời: Sub Form_Load() Dim Db As Database Dim Rec As Recordset Dim Dem As Integer Set Db = CurrentDb() Set Rec = Db.OpenRecordset("So_luong", DB_OPEN_TABLE) Dem = Rec.RecordCount MsgBox "Tổng số bản ghi là" + Str(Dem) End Sub ở trên ta dùng thủ tục Form_Load(), thủ tục này khi chạy thì tự động nạp Form. 8.6.1 Đối tượng và khai báo đối tượng 280 Ví dụ 2: Ta có thể dùng một biến bảng như sau:: Sub Form_Load() D

Các file đính kèm theo tài liệu này:

  • pptxslide_bai_giang_mon_access_2010_4005.pptx
Tài liệu liên quan