1. Trang chủ
  2. » Giáo án - Bài giảng

Microsoft Access 2000 Lập trình ứng dụng cơ sở dữ liệu. Tập 1

383 3,1K 4
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 383
Dung lượng 11,07 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Microsoft Access 2000 cung cấp hệ thống chương trình ứng dụng rất mạnh, giúp bạn mau chóng và dễ dàng tạo lập các trình ứng dụng của mình bất kể từ nguồn dữ liệu nào thông qua các form,

Trang 1

THU VIEN | nh Tê (chủ biên)

ĐẠI HỌC THUY SAN

ˆ Nhiều giải pháp điều hành dữ liệu dinh chóng,

dễ dàng nhất từ trước tới nay

Chao ming Can dé din ức

the uién céa ching t6¢

Xin vui long:

NHÀ XUẤT BẢN GIÁO Mi Stone xé sich s - Không gạch, viết, vẽ lên sách lt

(

a l

Trang 2

UMA iin

Tu

Nguyễn Đình Tê (chủ biên) - Nguyễn Ngọc Minh

Trương Hải Thụy - Hoàng Đúc Hải

Trang 3

LỜI NÓI Đầu

ừ phiên bản Microsoft Access đầu tiên phát hành vào năm

1992 đến Microsoft Access 2000, qua năm lần phát hành với trên 120 triệu bản chiếm tỷ trọng doanh số khá lớn nên có thể nói rằng Access là một trong những chương trình cơ sở dữ liệu

phổ biến nhất trên thế giới

Microsoft Access 2000 chẳng những dễ dàng liên kết các thông tin liên quan mà còn có thể làm việc với nhiều nguồn dữ liệu

khác: dBASE, Paradox, SQL trên nhiều loại máy tính: Máy tính văn

phòng (PC), máy chủ (server), máy mini và máy lớn (mainframe) Access đảm nhận hai vai trò: Phần mềm trên máy khách (client) hoặc máy chủ và dễ dàng truy cập các chương trình ứng dụng khác như Microsoft Word, Excel, PowerPoint, Outlook

Microsoft Access 2000 cung cấp hệ thống chương trình ứng dụng rất mạnh, giúp bạn mau chóng và dễ dàng tạo lập các trình ứng dụng của mình bất kể từ nguồn dữ liệu nào thông qua các form, report kết hợp với việc sử dụng một số lệnh Visual Basic

Microsoft Access 2000 là phương tiện để trao đổi thông tin trên mang Internet va Intranet, đặc biệt sử dụng trang truy cập giúp bạn ° nhanh chóng tạo và sử dụng các chương trình ứng dụng trên mạng

Microsoft Access 2000 giúp bạn lưu trữ và quản lý dữ liệu Phối hợp Access với Microsoft SQL Server trên máy văn phòng hoặc máy phục vụ để tạo lập nhiều trình ứng dụng trên Windows được nhanh chóng và ít tốn kém Ngoài ra Microsoft Access 2000 còn cung cấp công cụ để dễ dàng liên kết dữ liệu từ máy tính PC với dữ liệu ở máy tính lớn

Do một số những tính năng nổi bật kể trên nên chúng tôi xin giới thiệu với độc giả quyển “Microsoft Access 2000 lập trình ứng dụng cơ sở dữ liệu” gồm 2 tập, 14 chương kèm theo CD-ROM chứa

bài tập và cơ sở dữ liệu mẫu để độc giá có thể thao tác trực tiếp trên

máy

Trang 4

sao tránh khỏi các thiếu sót, những mong quý độc giả lượng thứ Trong sách có nhiều thuật ngữ mới, những thuật ngữ này, chúng tôi

để trong dấu ngoặc hoặc diễn giải ngữ nghĩa để tham khảo ý kiến của độc giả

Các ý kiến đóng góp, xin quý vị độc giả gửi về địa chỉ E-mail của chúng tôi mk.pub@cinet.vnnews.com hoặc Website của nhà sách Minh Khai www.minhkhai.com.vn

Chúng tôi xin chân thành cảm ơn Nhà xuất bản Giáo Dục và những người khác đã góp công sức để đưa quyển sách này đến tay độc giả

Tp Hồ Chí Minh, tháng 10 năm 2000

MK.PUB

Trang 5

Chương 1: GIGI THIEU VE VBA

TẬP HỢP, ĐỐI TƯỢNG, THUỘC TÍNH, PHƯƠNG PHÁP VÀ SỰ KIỆN

- — Trình Duyệt Đối Tượng

JET, CAC KIEU DU LIEU VA KHAI BAO

GỠ RỐI VÀ BẤY LỖI

- Cú Pháp Căn Bản Cho Bẫy Lỗi

- — Ví Dự Bẫy Lỗi

- — Xử Lý Lỗi

MACROS

iil

Trang 6

- Thiết Kế Macros

- So Sánh Giữa VBA Và Macros

Chương +: CÁC MÔ HÌNH TRUY CAP DU LIEU

TỔNG QUÁT VỀ DAO

- —_ Không Gian Làm Việc Jet

- —_ Không Gian Làm Việc ODBCDirect

- Dùng Chung Các Đối Tượng Cho Không Gian Làm Việc Jet

Và ODBCDirect

- Các Đối Tượng Của Không Gian Làm Viéc Jet

- Các Đối Tượng Của Không Gian Làm Việc ODBCDirect

TỔNG QUÁT VỀ ADO ˆ

- Thư Viện ADODB

- Thư Viện ADOX:

- Điền Dữ Liệu Vào Bảng

- Làm Việc Với Dữ Liệu Trong Các Định Dạng Khác

Chương 4: THAO TÁC DỮ LIỆU BẰNG QUERY

TỔNG QUAN VỀ CÁC LOẠI QUERY

Query Select

82

84 8s

Trang 7

ey MUC LUC

ˆ Query Action

- Các Loại Query Khác

- Cac Thao Tac Định Nghĩa Dữ Liệu

Làm Việc Với Nguồn Dữ Liệu Từ Xa

THIẾT KẾ QUERY BẰNG TAY

- Query Make - Table

LAP TRINH QUERY BANG sa@t VA ADO

- Cau Lénh SELECT

- Hàm Định Nghĩa Dữ Liệu

- Views va Tht Tuc Lưu Trữ

TRUY VAN NHUNG NGUON DU LIEU TU XA

Truy Vấn Nguồn ODBC Liên Kết

- — Truy Vấn Trong Các Đề An Dữ Liệu Của Access

- _ Lập Trình Truy Vấn Cơ Sở Dữ Liệu Từ Xa

Chuong 5: XÂY DỰNG GIAO DIỆN NGƯỜI DÙNG

BANG FORM

FORM SPLASH SCREEN

- Tao Splash Screen

- — Điều Khiển Khoảng Thời Gian Hiển Thi

FORM SWITCHBOARD

- _ Điều Khién Bang Siêu Liên Kết

- Điều Khiển Bằng Chương Trình

LIÊN KẾT FORM VỚI DỮ LIỆU

- —_ Sử Dụng Wizard Của AutoForm

Trang 8

- Form Phụ

TÌM KIẾM VÀ HIỂN THỊ DỮ LIỆU

- Tạo Một Form Tìm Kiếm

- Hiển Thị Thông Tin Một Cách Linh Hoạt

- — Vẽ Biểu Đồ Một Tập Con Của Dữ Liệu

THAO TÁC FORM BẰNG VBA

- Liệt Kê Form Và Điều Khiển

- Che Dấu Và Hiển Thị Form

- —_ Liệt Kê Form Trong Đề An Khác

Trang 9

Chuong 1

GIGI THIEU VE VBA

Hơn một thập kỷ trước đây, BI Gates đã để xuất một ngôn ngữ dùng chung cho các ứng dụng văn phòng Microsoft Visual Basis for Application (VBA) la ngén ngt thoa man ude mo dé va con hon thế nữa VBA trong Microsoft Access 2000 là ngôn ngữ thông dụng trong các thành phần của Mierosoft Office, đó là một thành công lớn Cú pháp của nó cũng chặt chè như ngôn ngữ lập trình Visual Basis chuẩn Tính chất phổ biến của VBA khiến cho các nhà phát triển sử dụng nó như ngôn ngữ độc lập rất đễ dàng trong nhiều bối cảnh bằng cách nghiên cứu một mô hình đối tượng mới VBA giống như chất keo cho ứng dụng Access, nó gắn mọi thứ với nhau và cho

ra một form ứng dụng

Access 2000 có thêm một giao dién mdi, Visual Basis Editor

(VBE) là một trình soạn thảo có thể chèn các thành phần khác của Office vào trong dòng Thế nhưng bạn có thể tự mình tìm kiếm và chèn mã lệnh VBA vào đằng sau các form của Aceess quen thuộc thay vì ở sau các form người dùng trong hầu hết các thành phần còn lại của Office Việc kết hợp các kỹ thuật này bạn sẽ cảm thấy rất tự nhiên

Chương này sẽ giới thiệu VBA trong Access 2000 và ôn lại các vấn dé co bản có liên quan đến sự phát triển các ứng dung Access

2000 Nó còn trình bày những đổi mới quan trọng và giải thích những kỹ xảo Code _Behind_ Form, Đây là một chủ để phát triển Access truyền thống, ngoài ra còn có một số đối mới khác để giúp bạn làm việc với VBE

Chương này trình bày bảy đặc điểm của VBA trong Access được liệt kê dưới đây và sẽ kết thúc bằng một cuộc thảo luận ngắn gọn về macro

m Tập hợp đối tượng, thuộc tính, phương pháp và sự kiện

Trang 10

m Thủ tục và module (don thé)

m Giao diện VBE

m đet, các kiểu đữ liệu và khai báo

m Cấu trúc logic điều kiện và vòng lặp

m Các hàm cài sẵn

m Gỡ rối và bấy lỗi

TẬP HỢP, ĐỐI TƯỢNG, THUỘC TÍNH, PHƯƠNG PHÁP VÀ

SỰ KIỆN

Access 2000 hỗ trợ cho VBA, tạo thuận lợi cho phát triển hướng đối tượng Phần sau sẽ giới thiệu sự phát triển hướng đối tugng trong pham vi VBA va Access 2000 "Tài liệu này phục vụ cho những người có năng lực và kinh nghiệm phát triển ứng dụng lập trình và những người phát triển ở mức trung bình muốn xem lại lập trình hướng đối tượng bằng VBA

Tập Hợp Và Đối Tuợng

Access 2000 là môi trường phát triển hướng đối tượng Cửa số Database của nó thuận tiện cho người dùng truy xuất các bảng (table), query (vấn tin), form (mẫu biểu), report (báo cáo), module (đơn thể) và macro VBA có sẵn những đặc trưng này, triển khai mang rộng của cấu trúc lập trình như các đối tượng recordset (tập record) và các đối tượng 7abieDeƒ Để nắm vững VBA trong Access, bạn phải hiểu biết về các đối tượng và một số khái niệm liên quan đến nó

Mỗi đối tượng là một vật thể Những vật thể gồm nhiều loại khác nhau như xe hơi, điện thoại, video Tất cả các đối tượng đều có thuộc tính Ví dụ xe bơi được xác định bằng màu sắc, cửa xe, máy

móc và các thuộc tính khác Các thuộc tính có thể xác định các

Trang 11

(] Chương 1: GIỚI THIỆU VE VBA

đối tượng này giúp bạn nhận ra những nét điển hình duy nhất của các đối tượng khác dựa vào các thuộc tính của chúng Ví dụ một chiếc hơi màu đổ và màu đen xác định hai điển hình duy nhất của đối tượng xe

Những thuộc tính của đối tượng khác nhau tùy thuộc vào lớp đối tượng mà chúng đề cập tới Một chiếc xe hơi có tập hợp thuộc tính khác với một cái điện thoại CA hai déu có thuộc tính màu sắc, nhưng máy điện thoại còn có thể có thuộc tính speaker (loa phóng thanh), còn xe hơi lại có kích thước máy móc khác nhau Một vài đối tượng còn chứa các thuộc tính khác nữa Một vài đối tượng là các thùng chứa (container) các đối tượng khác Các đối tượng được chứa này cũng có các thuộc tính Ví dụ trong khi máy móc có kích thước và hình dạng khác nhau thì người gọi điện thoại lại có thuộc tính về âm lượng và giọng nói khác nhau Những thuộc tính lại còn

có thể xác định những đặc trưng duy nhất về lớp đối tượng ở bên trong nó Một Speakerphone (điện thoại có gắn micro) có các thuộc tính khác với một điện thoại chuẩn

Để bổ sung cho các thuộc tính, các đối tượng còn có các phương pháp Các phương pháp của đối tượng là những hành vi có thể thực hiện Máy điện thoại để gọi, chiếc xe hơi để di chuyển Nhiều đối tượng có các nhiều phương pháp, ví dụ, máy điện thoại thực hiện các cuộc gọi nội hạt và liên tỉnh

Người phát triển Access không thể thao tác các đối tượng vật

lý Chúng ta thao tác bằng chương trình tạo các form, các bảng và các query để có thể miêu tả các đối tượng và các hành vi của chúng Cửa sổ Database Access 2000 trình bày một số lớp đối tượng cơ sở

dữ liệu trên thanh công cụ Outlook-style của Microsoft (xem Hình 1_1) Hãy click vào nút Form trên thanh công cụ để mở một khung nhìn (view) của các đối tượng form và hiển thị hai tùy chọn để tạo các form mới Các đối tượng form có thể chứa các đối tượng khác

gọi là điều khién (control) Các đối tượng được chứa bên trong chỉ

ra một đối tượng điều khiển form về hình thức và hành vi của nó.

Trang 12

Caer) : aa ee CEG)

Lie Gt pee Peet lh unde top

Tư kệ Nên 1e X8, TE

Thuê evra, [iene] swt Lie

B a] Geaelone bene xen ere) om đ] ae benkyangss se

& CD tse: mhunter

Các tập hợp cũng giống như các đối tượng Tất cả các tập hợp trong Access đều có thuộc tính Count để xác định số lượng các trường hợp trong tập hợp Tập hợp có thể còn có thudc tinh Item Bạn có thể sử dụng thuộc tính Item chi đọc để trả về một form riêng lẻ từ tập hợp A/i/o6rms Khi những thành phần của tập hợp là những đối tượng riêng lẻ thì chúng không có thuộc tính Count Các đối tượng của một tập hợp phục vụ cho những mục đích khác nhau

Ví dụ chiếc xe hơi mui rời có mục đích sử dụng khác với ghế kiệu, nhưng cả hai đều thuộc tập hợp xe trong gia đình

Thuộc Tính Và Phương Phép

Các thuộc tính và phương pháp hiển thị sự thể hiện và hành

vì của các đối tượng, cú pháp để tham chiếu đến các thuộc tính và

4

Trang 13

Chương 1: GIỚI THIEU VE VBA

phương pháp 1a: Object.property hoặc Oð0/ccf.method Thuật ngữ object (đối tượng) có thể tham chiếu đến hoặc là một đối tượng riêng lẻ hoặc một tập hợp của các đối tượng

Vi du 1: txtinput1.backcolor chi định thuộc tính màu nên của hộp văn bản trong một form

Vi du 2: Allforms.Item(0) tham chiéu dén form dau tién trong tập hợp form Nếu form có tên là frmSamplel, ban có thể tham chiếu đến form như sau:

Allforms.Item(“frmSample1”)

Bạn có thể xem các thuộc tính của đối tượng cơ sở dữ liệu bằng cách chọn chúng trong khung nhìn Design rồi Click nút Property trên thanh công cụ Hình 1-2 trình bày một form trong khung nhìn Design cùng với tờ thuộc tính của form đó Tờ thuộc tính này trình bày mục nhập khach hang, My Default Caption trong hộp thuộc tính Caption Thuộc tinh Close Button da duge chon Ban

có thể click vào hộp Close Button réi chon No, Thuộc tinh Close Button méi nay làm mất màu xám của nút Close khi có một form xuất hiện trong khung nhìn Form Lưu ý rằng tờ thuộc tính có nhiều trang Hình 1-2 trình bày nhãn Format đã chọn Những trang này tổ chức các thuộc tính thành các nhóm để tìm được nhanh

Pant [tate | tore [ecw | |

‡ ướt 28, Lattice be lee im

ty HẠ Bate vo tan beatae

Trang 14

cg GHI CHÚ: Trong Access 2000, tờ thuộc tính có sẵn trong cả 2

khung nhìn Design và Form thay vì chỉ trong khung nhìn Design

Điều này có nghĩa là bạn có thể chỉnh sửa và trau chuốt sự thể

hiện của form một cách nhanh chóng khi làm việc với bản thiết

kế của nó trong khung nhìn Form

Đối tượng DoCmd là nguồn cung cấp phong phú các phương pháp cho tất cả những người phát triển Access ở các cấp, nhưng với những người mới học sử dụng cũng tìm được sự giúp đỡ đặc biệt để bắt đầu với những phương pháp này Đối tượng D2oCmd gồm nhiều phương pháp như: Ciose, Openform, GotoControl, FindRecord và TunCommand Nhiều phương pháp DoCmd đòi hỏi các đối số để chỉ

ra cách thực hiện phương pháp Một số phương pháp khác lại yêu cầu các đối số tùy chọn Nếu bạn không cung cấp giá trị cho các đối

số tùy chọn này thì phương pháp đó sẽ sử dụng giá trị cài đặt mặc nhiên RunCommend có sức lôi cuốn đặc biệt đối với những người dùng thành thạo muốn nâng cao địa vị lập trình của mình, bạn có thể sử dụng nó để thực thi những lệnh có giá trị trên những menu

và thanh công cụ của Access

Bạn có thể đóng một form trong Access bing c4ch ding’ phương pháp Close của đối tượng Doemd Phương pháp này có hai đối số đã yêu cầu và một tùy chọn: Đối số yêu cầu thứ nhất chỉ ra kiểu của đối tượng cần đóng Bạn sử 3:-ng acForm khi cần đóng một form (ơœcForm là một hằng số có sẵn trong Access, giá trị của nó báo cho phương pháp Cỉose biết rằng bạn muốn đóng một form Xin xem mục “Trình duyệt đối tượng” trong phần sau của chương này để biết thêm về những hằng số có sẵn trong Access) Đối số thứ hai là tên form Mục nhập này hiện ra trong thudc tinh Name cia td thuộc tính form, Hãy rào tên trong dấu ngoặc kép Đối số tùy chọn báo cho Access biết để lưu lại những sự thay đổi trên form hay không, nó có hai giá trị như sau:

acSaveYes: Có lưu lại những thay đổi

acSaueNo:_ Không lưu lại những thay đổi

Trang 15

Chương 1: GIỚI THIỆU VỀ VBA

DoCmd.close acform, “formname”, acSaveNo

Có nhiều phương pháp Docmd tác động trực tiếp vào các Object riêng lẻ Ví dụ phương pháp GotoControl ấn định.tiêu điểm vào điều khiển đặc biệt trên form Bạn có thể có cùng kết quả khi

sử dụng phương pháp 5eiƒfocus nếu chọn một điều khiển Một trong hai phương pháp trên đều thuận tiện khi ứng dụng của bạn cần chuyển tiêu điểm nhập thông tin mới hay sửa chữa các lỗi

Các Sự Kiện

Các sự kiện là rất quan trọng trong lập trình VBA Bạn có thể sử dụng các sự kiện để tạo các ứng dụng năng động và tương tác Các đối tượng và tập hợp có các sự kiện, nó cung cấp điểm xuất phát cho một mã khách hàng của người phát triển Khi làm việc với các form, bạn có thể sử dụng các sự kiện cho các tác vụ như: phê chuẩn dữ liệu, cho phép hoặc không cho phép các điều khiển, thay đổi điều khiển để có được tiêu điểm, mở hoặc đóng một form Bạn phải hiểu khi nào từng sự kiện kích hoạt (event ñre) cũng như trật tự trong đó các sự kiện lần lượt kích hoạt Khi một form mở ra, nó tạo sự tuần tự cho các sự kiện Open, Load, Resize

va Current Su kién Open xảy ra khi một form khởi động để mở nhưng trước lúc nó có thể hiển thị bất kỳ record nào Sự kiện Load xây ra sâu sự kiện Open Khi sự kiện Load kích hoạt thì form trình bày các record của nó Bất kỳ đoạn chương trình nào làm cho form thay đối kích thước hoặc vị trí đêu là do các phương pháp Äfouesize, Minimize, Maximize hoac Restore Doemd kích hoạt vào sự kiện Resize Su kién Current la su kién cuối cùng, nó xảy ra bình thường khi một form mở Nó đánh dấu thời điểm, tại đó một record đặc biệt là hiện hành hoặc có khả năng Nó cũng còn kích hoạt khi

eR

Trang 16

người dùng điều khiển đến một record mới, tạo lại các query hoặc làm mới lại một form

1

- Bạn truy xuất các sự kiện cho các form và các điều khiển của chúng bằng cách chọn form hay điểu khiến trong khung nhìn Design và click nhãn Event trong tờ thuộc tính Click nut Build bén cạnh sự kiện đang mở một hộp thoại, bạn có thể dùng nó mở module chương trình hậu thuẫn cho một form Chọn Code Builder

để mở một thủ tục sự kiện trong VBE Thủ tục sự kiện được đặt tên Objectname_Eveniname Trong dé Objectname la tên của đối tượng

và Euentname là tên của sự kiện, Ví dụ nếu bạn chọn một form và click vào nút Build cho sự kién Close, thủ tục sự kiện của bạn có tên

la Form_Close Néu ban tao thu tuc su kién On Click cia nhãn có tên lbITitle, VBA tu dong dat tén cho né 1A lb/Title_Click

Đoạn chương trình dưới đây là ba thủ tục sự kiện của form

trình bày trong Hình 1-2: Form_open, Form_load va lbITitle_click

Khi lần đầu tiên bạn mở form ở khung nhìn Form, một hộp thông báo xuất hiện đọc được là “The form opened” (form đã mở) Khi bạn click nút OK, bạn thấy thông báo thứ hai là “The form loaded” (fprm đã nạp) Sau khi form thực hiện xong chu kỳ nạp của nó, bạn check vào nhãn trên form, một hộp thông báo thứ ba xuất hiện với nội dung: "Hello from the label."

Private Sub Form_Open(Cancel As Integer)

MsgBox "The form opened.", vbInformation,

“Programming Microsoft Access 2007!

End Sub

Private Sub Form_Load()

'Đây là câu lệnh đơn giản

MsgBox “The form loaded.", vbinformation, _

"Programming Microsoft Access 2000"

'Câu lệnh này thiết lập một thuộc tính

Me.Caption = “New Caption"

Ở đây là hai phương pháp cho một tiêu điểm điều khiển

DoCmd.GoToControl "txtMy TextBox"

Trang 17

2M Chuong 1: GIGI THIEU VE VBA

Me.txtMyTextBox.SetFocus

'Khi phương pháp làm việc, VBA thiết lập một thuộc tính

Me.txtMyTextBox.Text = “Hi, there!"

End Sub

Private Sub IbITitle_Click()

MsgBox "Hello from the label.", vblnformation, _

“Programming Microsoft Access 2000"

End Sub

Các thủ tục su kiện tạo các hộp thông báo Click vào nhãn dé gọi thủ tục sự kiện /0/7e_Cch Thủ tục này có một câu lệnh đơn dùng để hiện một hộp thông báo (ký hiệu gạch dưới ở cuối câu lệnh

là ký hiệu báo cho máy biết câu lệnh còn tiếp ở dòng dưới) Thủ tục

sự kiện #orm_Open cũng có một câu lệnh đơn Thủ tục Form _load

có một số câu lệnh ngoài ra mỗi câu lệnh có một hộp thông báo của

nó Thủ tục sự kiện này tạo đầu để linh hoạt cho form, đó là cách giúp đỡ đặc biệt khi một form có hai hay nhiều chức năng trong cùng một ứng dụng Nó còn thiết lập tiêu điểm tới hộp văn bản có tên là /xtMyTextBox và ấn định “Hi, there” lam thuộc tính Text của điều khiển Thủ tục sự kiện này giải thích hai kỹ thuật khác nhau

để thiết lập tiêu điểm Kỹ thuật này đưa vào phương pháp SefFocus, còn kỹ thuật kia sử dụng phương pháp Go7oControl cho cùng một mục dích Dấu nháy đặt ở đầu vài dòng đánh dấu chúng

là các câu ghi chú Lưu ý rằng mỗi một kỹ thuật là một dòng ghi chú

THỦ TỤC VÀ MODULE

Thủ tục là thùng chứa mã lệnh của VBA Có ba loại thủ tục của những thùng chứa này: thủ tục con (subprocedure), thủ tục hàm (function procedure) va thủ tục thuộc tính (property procedure) Mac

dù chức năng của chúng có một số điểm chung nhưng mỗi loại thủ tục đều có mục đích riêng của nó Access đưa ra hai loại cơ bản của các thùng chứa cho các thủ tục: module chuẩn (standard module) và module lớp (class module) Bạn có thể sử dụng nó để định nghĩa

9

Trang 18

Thủ tục chứa hàng loạt các câu lệnh VBA nằm giữa hai lệnh

„Sub và EndSub Ở câu lệnh Sub, bạn phải khai báo tên của thủ tục Trong khi các thủ tục sự kiện phải đặt tên đúng kiểu (nhu object- event) thì thủ tục đặt tên theo các quy tắc đặt tên biến chuẩn như sau: Nó phải bắt đầu bằng một ký tự, không thể dài quá 255 ký tự, không được có dấu chấm, khoảng trắng và các từ khóa, tên hàm hoặc tên các toán tử của VBA Thủ tục có thể có các đối số, các đối

số này đặt sau tên thủ tục, nếu có nhiều đối số thì bạn phân cách chúng bằng dấu phẩy

Muốn nắm vững về các thủ tục, hãy sử dụng wizard của Command Button, nó chứa các đoạn mã lệnh VBA cho hơn 30 chức

năng Để có được các chức năng này, bạn phải thực hiện một số

thao tác chọn lựa trong các hộp thoại Thông thường thủ tục viết bằng wizard là đơn giản, dù là người phát triển có trình độ trung cấp hay thành thạo đều nên sử dụng Wizard, bởi vì nó tạo ra một sườn thủ tục để bạn có thể thêm những câu lệnh cho các yêu câu cụ thể của bạn Người mới bắt đầu làm việc với Aceess có thể sử dung wizard để di chuyển record, bảo vệ dữ liệu, các thao tác tạo form và báo cáo tổng quát, gọi các ứng dụng khác và các công việc linh tính 10

Trang 19

@ chuong 1: GIGI THIEU VE VBA

What acon do pau wart La happen when the Walon ig

Different acter ace evutatle for each category

Caloqoies: ARES

Kecerd Cer sunns Fn kecad

Fath Ogun Mie Gatored Recad

Weoat Cperatore GatoLast Record

9c bai #0 (322 to Previn gs Record

Hình 1-3: Sử dụng wizard cla Command Button ban cé thé tao toan

bộ các thủ tục sự kiện bằng cách trả lời cau hdi trong hộp thoại,

Rất nhiều người phát triển ứng dụng thích tự mình viết các thủ tục Bạn có thể mở cửa sổ mã lệnh cho một thủ tục sự kiện như

đã miêu tả ở trên, hoặc bạn có thể tạo một thủ tục theo cách thông thường Có hai cách để khởi động thủ tục tùy thuộc vào bạn đặt nó

ỡ đâu Nếu thủ tục đặt đằng sau form hay report, click vào nút Code trên thanh công cụ Design Nếu đoạn mã đã có trong một module

›„ chuẩn không nằm sau form hay report nao thi ban chọn lệnh Tool- Macro-Visual Basic Editor hoặc nhấn tổ hợp phím ALT+F11 Trong trường hợp khác bạn kết thúc VBE Hay chon Insert - Procedure và

Mìi

Trang 20

Vận dụng các kiến thức của bạn về mô hình đối tượng Access

để mã hóa một số công việc Hãy gọi đối tượng DoCmd để có nhiều phương pháp Gõ DoCmd và nhấn phím dấu chấm Thao tác này mở

ra một hộp danh sách thả xuống để hiển thị toàn bộ các mục nhập hợp lệ sau đối tượng DocCmdd (Xem Hình 1-4) Khi bạn gõ vào một mục, Âccess sẽ quy tụ những mục có đầu mục khớp với mục của bạn

is Gio Edt Yow Insert Qebug Bun Tods Addins Vindow Help =l#] |

S 4 - “RAO poe REPS 3 =

Nếu bạn không nhớ chắc chắn hãy cuốn từ đầu đến cuối các mục để tìm một phương pháp Kỹ thuật này thực hiện cho tất cả các đối tượng không riêng gì DoCmd Microsoft gọi kỹ thuật này là lntelli5Sense (giác quan thông minh) bởi vì nó có khả năng cung cấp một tập con (subset) các phương pháp thích hợp IntelliSense thực hiện 2 công việc: Liệt kê các thuộc tính và phương pháp thích hợp tại bất kỳ điểm nào trong cấu trúc của một câu lệnh của VBA và cung cấp thông tin cú pháp về nội dung các field cân có các câu lệnh VBA đã chọn Cung cấp cú pháp cho câu lệnh VBA Điều này 12

Trang 21

Chương 1: GIỚI THIỆU VỀ VIA

làm giảm các lỗi trong khi viết lệnh và giúp bạn khởi động một cách nhanh chóng

Thủ tục dưới đây có 3 dòng lệnh: Dòng lệnh thứ nhất cung cấp vị trí bộ nhớ cho kết quả tính toán Dòng lệnh thứ 2 cộng thêm hai hằng số Dòng lệnh thứ 3 in kết quả ra cửa số Immediate Cửa

sổ này giống một vùng làm việc lưu kết quả trung gian khi bạn kiểm tra chương trình Bạn có thể mở nó từ VBE bằng cách chọn View-Immediate Window Bạn có thể chạy thủ tục từ VBE bằng cách click vào bất kỳ thủ tục nào rồi click vào nút Run Sub/UesrForm trên thanh công cụ Standard

từ khóa của VBA để gọi một thủ tục Khi bạn ding cau lénh Call, bạn phải đặt các đối số trong dấu ngoặc đơn ở sau tên thủ tục Đoạn chương trình dưới đây là một phiên bản linh hoạt hơn của hàm tính toán khởi đầu Việc tính toán có hai thủ tục Một thủ tục được đặt tên là ÄySecondCalculaior có nhiệm vụ cộng hai số bất kỳ và in kết quả ra cửa số Immediate Nó xác định hai sé nào được cộng vào từ đối số mà nó nhận Một thủ tục khác dùng để gọi thủ tục trên Bạn có thể thay đổi các số cộng vào thủ tục thứ hai bằng cách thay đổi giá trị của hai đối số trong thủ tục thứ nhất Trong ứng dụng phức tạp hơn, bạn phải gắn các giá trị của đối số này cho các biến hoặc các ñeld của form :

Sub CallSeconCalculator ()

~~ “"MySecondCalculator 1, 3

End Sub

Trang 22

Thủ Tục Hàm

Các thủ tục hàm thường được gọi là hàm, hàm khác thủ tục ở

2 điểm: Chúng có thể trả về một giá trị nên bạn có thể sử dụng trong các biểu thức như một biến Chúng không làm việc như các thủ tục sự kiện Cả 2 loại thủ tục và hàm đều có thể thực hiện các tác vụ Lưu ý có một ngoại lệ là hàm và thủ tục có thể hoán chuyển cho nhau

Một hàm là tập hợp các câu lệnh VBA, bắt đầu bằng câu lệnh Function va két thic bing End Function N6 cũng có thể chấp nhận các đối số như thủ tục Một hàm có thể có một hay nhiều biểu thức,

ít nhất một trong những biểu thức này có thể cài đặt tên hàm bằng một giá trị: Bạn có thể ngưng thực hiện một hàm bằng cách dùng câu lénh Exit Functon Trong một hàm có thể có một hay nhiều c4u lénh Exit Function

Mặc dù hàm trả về một giá trị Nhưng cũng không phải nhất

thiết như vậy Một hàm có thể là một tập hợp các câu lệnh gọi các phương pháp và cài đặt: các thuộc tính ngay cả khi không được cài đặt tên hàm bằng một giá trị Đây là một điểm mà hàm và thủ tục giống nhau

Bạn có thể khởi động một hàm giống như khởi động một thủ tục, nhưng bạn chọn nút tùy chọn Function thay vì nút tùy chọn Sub trong hộp thoại Add Procedure Bạn có thể gọi một hàm bằng cách click nút Run Sub/UserForm trên thanh công cu Standard cia VBE Bạn cũng có thể gọi hàm ngay trong cửa sổ Immediate bằng cách gõ dấu chấm hỏi sau đó gõ tên hàm Nếu hàm có đối số bạn đặt nó trong dấu ngoặc đơn và phân cách các đối số bằng dấu phẩy

Trang 23

Chuong 1: GIGI THIEU VE VBA

Để phù hợp với thông lệ chung, chúng ta quy ước, thiên niên kỷ thứ

ba khởi đầu vào năm 2000 thay cho năm 2001 Hàm Year2kTest

chấp nhận một ngày và trả về kết quả là 3 nếu ngày đó nằm trong thiên niên ký thứ ba hoặc trả về 0 nếu ở thiên niên kỷ khác Cửa

sổ Iramediate ở dưới cửa sổ mã lệnh trình bày kết quả sau khi chạy hàm cho hai ngày khác nhau Cửa sổ Immediate trong hình 1_5 xác nhận kết quả này trả về là 3 cho ngày đầu tiên của năm 2000 và số

0 cho ngày đầu tiên của năm 1999 Lưu ý rằng bạn phải rào một ngày vào giữa hai dấu #

TxÌ

Hinh 1-5: Mét ham don gidn duge goi từ của sé Immediate

Thủ tục dưới đây đạt mức độ tỉnh vi hơn trong việc xác định thiên niên kỷ Hàm khởi đầu bằng việc khai báo phạm vi các ngày chính xác Sau đó kiểm tra đối số của nó dựa vào hai cột mốc thiên niên kỷ Nếu ngày không thuộc thiên niên kỷ thứ nhất hoặc thứ hai, hàm cho rằng ngày đó thuộc thiên niên kỷ thứ ba Lệnh trong hộp thông báo ban đầu chỉ ra phạm vi các ngày cho hàm là chính xác

15

Trang 24

Public Function PopularMiilennium(dtmDateln) As Byte

MsgBox "This works for dates after 12/31/0099" & _

gg GHI CHU: Access 2000 thích hợp với năm 2000 Giống như các phiên bản trước, Access 2000 lưu trữ ngày có 4 chữ số cho năm

Access 2000 còn có thể xử lý các năm nhuận Năm nhuận là năm

chia hết cho.4 và chia hết cho 100 hoặcchia hết cho 400.`Năm

2000 chia hết cho 400 nên là năm nhuận Quy tắc này là tới hạn

để tính toán trên 2 dạng ngày khác nhau Các dạng General Date

và Short Date trong Access dùng các tùy chọn dạng ngày ngắn

của hệ điều hành để chỉ ra dạng hiển thị đúng Nếu bạn thiết lập

mục Regional trong Control Panel để hiện ngày với 4 chữ số cho

năm thì tất cả các dạng ngày Generat sẽ thể hiện đủ 4 chữ số Quy tắc trên không bắt buộc bạn phải lập chương trình trong trường hợp sự cố Y2K không thể xảy ra Vì thế, một vài trình ứng dụng Access có thể có lỗi Y2K dù là Access 2000 ra đời vào năm

2000 Hãy ghé thăm ww.microsoft.com/technet/ topics/year2k/- default.htm để xem tổng quát để tài này cùng với sản phẩm đặc trưng và xem lại bản giải quyết về Y2K FMs site (www.fmsine.com /tpapers/index.html#Year 2000 Papers) có một triển vọng khác trên

16

Trang 25

đổ Chương 1: GIỚI THIỆU VỀ VIA

một vài vấn để Y2K/Access Một sản phẩm của các thị trường PFMS (Flexible Manufacturing System = hệ thống chế tạo linh hoạt) gọi là Total Access Inspector 2000 vấn dé Y2K trong các ứng dung Access Bạn có thể thường xuyên sử dụng cả 2 loại thủ tục và hàm để giải quyết một vần đề Hình 1-6 là form dựa vào cả hai loại hàm để trình bày những phép tính toán giữa 2 số Trong form này cho phép người dùng nhập vào hai số trong các hộp văn bản có nhãn là

Number1 và Number2 Click vào một trong các nút chức năng +, -,

/,* để tính toán rồi cho ra kết quả trong hộp Result

cứ vào các mục nhập trong hai hộp văn bản khác

Đoạn chương trình VBA thực hiện form trong Hình 1-6 sử dung 4 cap thủ tục trình bày dưới đây Bốn thủ tục hoạt động do bộ _ phận diều khiển khi click vào bốn nút chức năng (+, -, ”, /) trên form Bộ phận điều khiển này chỉ đơn giản là gọi một hàm, lấy ra các giá trị từ hai hộp văn bản, thực thi việc tính toán được chỉ định

bởi các nút chức năng và trả về giá trị cho các thủ tục sự kiện Đến

lượt thủ tục sự kiện lại trả giá trị từ hàm vào hộp văn bản thứ ba của form Lưu ý rằng sử dụng tiền Äe ở đằng trước các tên hộp văn bản là không bắt buộc Vì mã lệnh ở sau form cùng với hộp văn bản nên việc chỉ định tên form cũng không bắt buộc Các thủ tục sự kiện dùng tiên tố Ae thay thế cho tên lớp dài hơn, chính quy hon

Option Compare Database , Wey vis

DRL OSSJO

Trang 26

Dim dblResult As Double

Private Sub cmdAddition_Click()

Me.txtResult = MyAdder :

End Sub

Private Function MyAdder()

dblResult = CDbI(txtNumber1) + CDPbtNumber2)

Private Function MySubtractor()

dblResult = CDbl(txtNumber1) - CDbi(txINumber2)

Private Function MyMultiplier()

dbiResult = CDbI(txtNumber1) * CDbI(txtNumber2)

MyMultiplier = dblResult ˆ

End Function

Private Sub cmdDivision_Click()

Me ixtResult = MyDivider

End Sub

Private Function MyDivider(;

dblIResult = CDbl(txtNumbe 1) / CDbl(txtNumber2)

MyDivider = db!Result

End Function *

Hàm `šä: cá 2# tục thường trú trong module mã hoá chịu

trách nhiệm về forme - “âu lénh Dim ở đầu module khai báo một

Trang 27

Chương 1: GIỚI THIỆU VỀ VBA

biến để sử dụng chung cho tất cả các thủ tục trong module Vì người dùng chỉ có thể click mỗi lần một phím chức năng nên thao tác này dùng để chia sẻ kết quả của lénh dblResult Cau lénh Option Explicit bắt buộc phải sử dụng để khai báo biến trước khi sử dụng

nó Điều này giúp ta tránh được những lỗi phổ biến trong chương

trinh Option Compare Database 1a mét mifc module (module-level)

chỉ định rằng các biến chuỗi xác định, được sắp xếp theo thứ tự chỉ

ra bởi vị trí ID trong Control Panel

Cặp của các thủ tục dưới đây minh hoạ rõ về thủ tục, hàm và phương pháp Form frmCalculator2 cé 2 điều khiển, một hộp văn bản có tên fxfÏnput và một nút lệnh có tên là CmdSquarer Form này sẽ tính bình phương của số nhập vào hộp văn bản khi người dùng click nút lệnh CmdSquarer Thủ tục sẽ hiện kết quả trong hộp thông báo

Option Compare Database

Option Explicit

Dim dblResult As Doubie

Private Sub cmdSquarer_Click()

MySquarer Form_frmCalculator2.txtinput

End Sub

Public Sub MySquarer(MyOtherNumber As Double)

` đblResult= MyOtherNumber * MyOtherNumber

MsgBox dbIResullt, vbinformation, _

“Programming Microsoft Access 2000°

19

Trang 28

Các dòng chú thích để nghị một số thao tác để bạn có thể thực hiện: Một dòng gọi phương pháp GofoControl để chuyển tiêu điểm từ nút lệnh đến hộp văn bản MAu SetFocus 6 ‘dong sau minh hoạ một phương pháp có sẵn để đạt được cùng kết quả Phương pháp Ciose chỉ ra cách thức đóng một form Lưu ý rằng dòng này sử dụng một tên khác, #zmmCoaiculator2 để chỉ tới form cần đóng Việc

sử dụng hằng số aeSaueNo rất quan trọng bởi vì nó cho phép form dóng mà không cần phải hỏi có lưu lại các thay đổi hay không

Thủ Tục Thuộc Tính

Bạn sử dụng các thủ tục thuộc tính (property procedures) để định nghĩa các thuộc tính khách hàng cho form, report và module lớp Chúng ta sẽ bàn về các module lớp ở phần dưới và sẽ xem ví

dụ về thủ tục thuộc tính trong Chương 7

Có ba loại lệnh thuộc tính: Property Get, Property Let và Property Set Ban c6 thé sit dung nhimg cau lénh này để thêm các thuộc tính đặc biệt vào Form Cau lénh Property Get va End Property c6 thé tra vé mét gid tri giống như thủ tục hàm Nếu ban định nghĩa một thuộc tính chỉ với câu lénh Property Get thì thuộc tính đó là loại thuộc tính chỉ đọc Thuộc tính chỉ đọc thích hợp khi bạn chỉ có quyển xem một số nhưng không được phép chỉnh sửa nó Với một số thuộc tính quan trọng bạn có thể chỉnh sửa giá trị nhưng không đọc được giá trị Ví dụ người quản trị cơ sở đữ liệu không cần thiết đọc mật mã của người dùng mà họ quản lý Người quản trị chỉ có thể sửa đổi khi người dùng quên mật mã của họ Sử dụng câu lệnh Property- Let cùng với câu lệnh End Property để tạo

một mật mã

Câu lệnh P/operty Set lam việc giống như Property Let Ca hai có thể tạo một thuộc tính Câu lệnh Property.Let thiết lập thuộc tính là một kiểu dữ liệu chẳng hạn là một chuỗi hoặc một, số

nguyên Câu lệnh Properfy Set thiết lập thuộc tính là một đối

tượng Bạn dùng câu lệnh Property Set với các tham chiếu đối tượng ` cũng giống nhự tham chiếu đến một form hay report

Trang 29

Chương 1: GIỚI THIỆU VỀ VBA

sổ Database Các thủ tục trong một rnodule chuẩn độc lập với các đối tượng có sẵn trong một file cơ sở dữ liệu Access Điều này có nghĩa là nó không tham chiếu đến Me hoặc các tên điều khiển không làm tiển tố thích hợp cho các điểu khiến Tuy nhiên, các trình ứng dụng của bạn có thể tham chiếu các thủ tục trong module chuẩn dễ dàng từ bất kỳ đối tượng nào khác

Loại thứ hai của module là một module lớp Có ba trạng thái khác nhau cơ bản của loại này: Các module lớp của form, các module lớp của report và các module lớp của khách hàng Các thủ tục trong một module dễ bị ảnh hưởng chung với các module khác Bạn có thể đưa một thủ tục ra khỏi phạm vi chung bằng cách sử dụng từ khóa Private khi ban định rõ thủ tục lúc ban đầu Xem Hình 1-7 về cú pháp của mẫu này) Bạn cũng có thể khai báo thủ tục rõ ràng cho phạm vi toàn cục bằng cách dùng từ khóa Public

Một module của form là module cho bất kỳ form nào có ít nhất một khai báo hay một thủ tục Việc tạo một thủ tục sự kiện cho một form hoặc một điều khiển trên form là tạo một module lớp của form đó Các module lớp của report làm việc giống như các module lớp của form, nhưng các sự kiện fepor¿ thì khác so với các form và bạn không thể trộn cùng các điểu khiển vào một report như đã làm với một form Bạn có thể tạo các module lớp khách hàng bao gồm các hàm phương pháp và các hàm thủ tục cho một khái niệm giống như khái niệm về người nhân viên hoặc người kế toán Bạn có thể tham chiếu các phương pháp và các thuộc tính cho

21

Trang 30

để khai báo cho class va tao mét trường hợp mới của nó Cú pháp của loại câu lệnh này là:

Dim objinstance As New objClass

Giải pháp thứ hai dựa trên một cặp lệnh Thành phân thứ nhất của cặp lệnh là khai báo trường hợp của đối tượng Thành

phần thứ hai thiết lập một tham chiếu đến đối tượng Cú pháp của

các câu lệnh của này là: ,

Dim objinstance as objClass

Set objlnstance = New objClass

ˆ Tên objClass tham chiếu đến một module lớp cùng với các thủ tục thuộc tính và các hàm phương pháp chung Những hàm phương pháp này thực hiện như các phương pháp của lớp giống như các thủ tục thuộc tính phục vụ cho việc định nghĩa các thuộc tính Chương 7

sẽ trình bày cách tạo và sử dụng các module lớp của khách hàng

GIAO DIỆN VBE

Có lẽ sự thay đổi đáng chú ý nhất trong môi trường phát

"triển Access là giao điện VBE mới Giao diện này đưa Access 2000 gần gũi hơn với Microsoft Word, Excel và PowerPoint xuất phát từ viễn cảnh giao điện phát triển Phần này sẽ xem xét kỹ cách dùng

và cách trình bày (layout), các cửa sổ, trình bày cách sử dụng chúng

để gỡ rối Ngoài ra còn xem a dại cách h dùng Object Browser (Trinh

duyệt đối tượng)

Trang 31

@ chuong 1: GIỚI THIỆU VỀ VBA

Ctta Sổ VBE

Access 2000 dé nghị ít nhất ba cách dẫn tới các module không

có form hoặc report ở sau Đầu tiên là cách quen thuộc nhất bạn

thường thấy trong các thành phần khác của Office, từ cửa sổ

Database chon lénh Tools-Macro-Visual Basic Editor Mét shorcut

(lệnh cắt) thuận tiện cho cách này là bấm tổ hợp phím Alt+F11

Cách này đưa bạn trực tiếp đến VBE Bạn có thể sử dụng Alt+F11

để quay trở lại hay chuyển tới giữa các cửa sổ Database và VBE

Cách thứ 2, nếu bạn có sẵn một module chuẩn, hãy click vào nút

Module trong cửa sổ Database rồi double-click vao module chudn

nào bạn muốn xem Cửa sổ VBE xuất hiện chứa nội dung của

Module đó Cách thứ ba, nếu bạn muốn tạo một module chudn mdi,

hay click nuit Module trong cửa sổ Database rồi click nit New trên

thanh công cụ để mở một module trống trong VBE

ge GHI CHÚ: Nhóm phát triển Office đang làm việc để đưa ra cách

thứ tư cho VBE, đó là cách quen thuộc đối với những người phát

triển Access Bạn có thể click vào nút Code trong cửa sổ

Database với module chuẩn form hoặc report đã chọn Nút Code

sẽ mở cửa sổ VBE với module tương ứng

Để mớ module hậu thuẫn cho một form hay report, đầu tiên

bạn phải mở đối tượng trong khung nhìn Design Bạn có thể click

nút Code trên thanh công cụ Design Thao tác này mở module và

đặt vị trí hiển thị vào đỉnh của module Bạn có thể đi chuyển thẳng

đến thủ tục sự kiện của một đối tượng trên form.hay report bằng

cách click vào nút Build bên cạnh sự kiện trong tờ thuộc tính Nếu

không có thủ tục sự kiện nào, bạn hãy click vào nút Build và chọn

Code Builder, một màn hình thủ tục trắng sẽ xuất biện cho đối

Khi bạn di chuyển đến VBE, bạn có khả năng mở các cửa số Project và Properties Đây là cách thuận lợi để mở và kiểm tra các

module khác trong một trình ứng dụng Cửa số Project hiển thị các

module khéng hau thuẫn form hay report trong folder Modules Cac

23

Trang 32

module hau thudn các form va report xuất hiện trong folder Misrosoft Access Class Objects Ban cé thé chon mét folder thích hợp với một form hoặc một report để xem và thiết lập các đối tượng thích hợp với lớp Để mở cửa sổ Project hoặc Properties, chọn lệnh thích hợp từ menu View hoặc sử dụng bàn phím và thanh công cụ

shortcuts " : ,

ce GHI CHÚ: Thứ tự trong cửa sổ Properties để trình bày các đối tượng cho một đối tượng lớp của Access, đối tượng đó phải được

mở trong khung nhìn Design Hãy Double-click một module hoặc

một class trong cửa sổ Project để hiển thị các chỉ dẫn và các

khai báo thích hợp trong cửa sổ Code tương ứng, lưu ý rằng các

đối tượng chỉ xuất hiện nếu đối tượng lớp cũng được mở trong

khung nhìn Design

Hình 1-7 trình bày đoạn chương trình cho cơ sở dữ liệu mẫu của chương này nạp vào VBE Cửa sổ Project trình bày lớp Form_fmSamplel đã chọn Bên- dưới nó, cửa sổ Properties trinh bày nhãn điểu khiến cho tiêu để form đã chọn Cửa sổ này cũng trình hày nhân điểu khiển có một thủ tục sự kiện thích hợp với sự kien OnClick: Cita s6 Code ở bên phải cửa sổ Project và Properties trình bày đoạn chương trình cho thủ tục sự kiện này Bạn có thể đi chuyển, định lại kích thước và cắt bớt bất kỳ phần nào của các cửa

Trang 33

a Chương 1: GIG! THIEU VE VBA

Double-click vao bat ky déi tugng Module hoặc lớp Access nào khác trong cửa số Project dé mở cửa số Code thích hợp Từ đó bạn

có thể kiếm tra, chỉnh sửa, hoặc sao chép đoạn chương trình Cửa

sổ Code có cách trình bày quen thuộc với các hộp danh sách thả xuống của Object và Procedure ở trên đỉnh Bạn có thể dùng những hộp này để di chuyển xung quanh một module lớn hoặc mở các thủ tục mới trong thủ tục đã có sẵn Cửa sổ Properties trình bày các thuộc tính cho module hoặc lớp Access hiện hành đã chọn Bạn có thể chỉnh sửa các thuộc tính đối tượng trong cửa số này, nó thường thích hợp và linh boạt hơn để chỉnh sửa các thuộc tính đối tượng cho một form hoặc một report trong khung nhìn Design

Gỡ Rối

Bạn có thể dùng cửa sổ Code để gỡ rối và xem xét đoạn chương trình của bạn Bạn có thể thêm hoặc di chuyển một điểm ngắt trên một câu lệnh bằng cách click vào lễ bên trái của câu lệnh VBE đánh dấu điểm dừng với chấm nhỏ xung quanh theo thói quen ở lễ trái Hình 1-8 trình bày chương trình gỡ rối được dừng trên câu lệnh thứ hai của dòng thứ tư trong một thủ tục; mũi tên bên lễ trái chỉ đồng dưới của đoạn chương trình sẽ được thi hành

Thais az a C1 yEC ctAY Msgbox "The tore loaded : volnformation, „„

“Programming Kicrosote access 2000"

THỊ đế A post

e maa Caption “New Caption”

He, txthyTextBos Text " “Hi, there!*°

Trang 34

Bạn chọn lệnh Continue trong menu Run để bất đầu thực hiện đoạn chương trình sau điểm dừng Hình 1-9 trình bày kết quả sau khi thực hiện phần còn lại của chương trình trong thủ tục Form_frmSample1 Luu y ring ddu đề của form đọc là “New Caption” Hộp van ban doc dugc la “Hi, there!”

Bạn có thể dùng mũi tên để nhảy qua một hay nhiều dòng của chương trình Ví dụ, Hình 1-10 là kết quả của việc bạn drag mũi tên đến dòng thực biện phương pháp Se(Foceus và chọn lệnh Continue từ menu Run Thủ tục này nhảy qua câu lệnh gán “New

ị Caption” thành thuộc tính Caption cia form, vi thé form nay giống

| như form trong Hình 1-9, nhưng tiêu để của nó là “My Default Caption”

Hình 1-11 trình bày kết quả khi drag mũi tên trong Hình 1-8 đến dòng cuối cùng của chương trình, thực hiện câu lệnh gán nội dung vào hộp văn bản Câu lệnh này sẽ sinh ra thông báo lỗi vì bạn cố gán một giá trị thuộc tính nhưng không nhắm vào một đối tượng nào

Click me'to view a message

Trang 35

@ chugng 1: GIỚI THIỆU VỀ VBA

Run-time error *2185:

Bạn có thể dùng cửa số Watch để theo dõi giá trị của biểu

thức, các biến và các đối tượng khi thực hiện chương trình Sau khi

mở cửa sổ Watch, bạn có thể thêm các biến để quan sát bằng cách

chọn lệnh Debug-Add Watch Chọn biến cần theo đõi trước khi thực hiện câu lệnh Khi hộp thoại Add Watch mở, chọn một kiểu của Watch rồi click nút OK để đóng hộp thoại này Giá trị của biến được trình bày trong cửa sổ Watch khi câu lệnh được thực hiện Nếu bạn chạy chương trình theo từng bước, bạn có thể kiểm tra giá trị của các biến sau mỗi bước

Hình 1- 12 _ trình bay | giá trị thuộc tính Caption của

#mSample1 ngay sau khi đòng lệnh thay đổi giá trị từ “My Default

Value” thành “New Caption” được thực hiện Cửa số Watch trình

27

Trang 36

bày giá trị của txtMyTextBox là Nul vì câu lệnh gán chưa được thực

hiện

Hình 1-12 Cửa sổ Watch trình bày trạng thái của biểu thức như một

thủ tục sự kiện được thực hiện

Cửa số Local thể hiện tất cả các biến trong khi chương trình được thực hiện ở chế độ ngắt (break mode) Khi bạn ngưng thực hiện chương trình tại điểm ngắt, cửa sổ Local chứa một đối tượng 3e Bạn có thể mở rộng liên tiếp đối tượng Me và các thành phần

để tìm các giá trị của tất cả các thuộc tính và các biến, Điều này có thể giúp ích cho bạn nếu bạn có yêu cầu chỉ tiết về mọi mặt giúp bạn hiểu rõ chương trình được thực hiện như thế nào

Cửa sổ Immediate có thể là công cụ thích hợp nhất để phát triển chương trình và bẫy lỗi Từ cửa sổ này bạn có thể chạy bất kỳ hàm hay chương trình con nào Bạn cũng có thể đánh giá các biểu thức và các cách khác nhau để viết hàm Trước khi các biểu thức Watch có hiệu lực, cửa sổ Immediate có một chỗ thuận tiện để in các kết quả trung gian trong chế độ ngắt và nó vẫn có thể đáp ứng các chức năng liên quan trong hoàn cảnh đặc biệt

Hình 1-13 trình bày ba cách dùng cửa sổ Immediate Cuộc thảo luận đầu tiên của chúng ta về các thủ tục mô tả các chức năng này, nhưng nó không trình bày kết quả của chúng vào cửa sổ Immediate Gd MyFirstCalculator dé goi thi tuc cé cùng tên Khi bạn nhấn Enter trong cửa sổ Immediate, nó chạy thủ tục và in kết, 28

Trang 37

Chuong 1: GIGI THIEU VE VBA

quả là 3 trong cửa sổ này Vấn để này cũng đúng đối với thủ tục CallSecondCalculator Trong trường hợp này, kết quả là 4 Mẫu cuối cùng trong ví dụ là cách giải thích để đưa các đối số cho hàm MySecondCaleculator - ban phải gõ đúng tên, chừa một khoảng trống, và phân cách các tham số bằng dấu phẩy Mẫu này là tới hạn bởi vì nó trình bày cách sử dụng các tham số đã truyền cho thủ tục hoặc hàm để tính một giá trị trả về

2§Micteseft Vitual Ea - ChapLel [deakj ^-x 2s

HỘ Ki V@w set Gebug Bun Joos Addins window Help

Sub CaliSecondCalculator (}

MySecondCalculater 1, 3 End Sub

a Sub NySecondCelculater (First, Second) Dam Result

Result © Firec + Second ‡

Debug Print Result

4

MyFarstCalcuietor

3 CnilSecondCaiculator

‘ HySecondtalculator 2,3

5

?bace 09/11/1998

Hình 1-13 Cửa sổ Immediale trình bày cách chạy các thủ tục và các

hàm có sẵn

Bạn cũng có thể sử dụng cửa số Immediate để chạy các hàm

có sẵn hay các hàm khách hàng Với một hàm, bạn phải chỉ ra lệnh

in để trả về kết quả của hàm Bạn có thể sử dụng từ khóa Prim hoặc dấu chấm hỏi “?” theo sau là tên hàm va ký hiệu trả về đầu dòng Mẫu cuối cùng trong cửa sổ Immediate chỉ ra cách gọi hàm Date có sẵn

29

Trang 38

Trình Duyệt Đối Tượng

Trình duyệt đối tượng (Object Browser) trình bày trong Hinh 1-14 là công cụ mạnh để nghiên cứu về các mô hình đối tượng Nó đặc biệt quan trọng đối với những người phát triển Aeccess 2000, bởi

vì nó có nhiều mô hình đối tượng mới Ví dụ Access 2000 giới thiệu một ngôn ngữ phát triển truy xuất dữ liệu mới: ActiveX Data Object (ADO), với ngôn ngữ này thì Data Access Object (DAO) trở thành lỗi thời Tối thiểu có ba kiểu đối tượng làm cơ sở bổ sung cho Access

Trang 39

@ Chương 1: GIGI THIEU VE VBA

danh sách thả xuống ở đỉnh cia Object Browser Diéu nay lam thay đổi các nội dung của danh sách Classes va danh sách Members trong trình duyệt Hình 1-14 trinh bay lép Recordset da chon trong danh sách các Class và một danh sách các thuộc tính, phương pháp

và sự kiện xuất hiện trong danh sách Membecrs Chọn một thành

phan va click nút ? để xem hướng dẫn chỉ tiết về chủ dé dé Object Browser còn có thể tìm kiếm các lớp và các thành phần bằng công

cụ tìm kiếm của nó Dùng hộp danh sách thả xuống thứ hai để chỉ định tiêu chuẩn tìm kiếm Điều này, đôi khi trả về các tập hợp kết quả trong một vài thư viện khác nhau Object Browser cũng cho phép bạn kiểm tra từng kết quả riêng biệt

JET, CÁC KIỂU DỮ LIỆU VÀ KHAI BÁO

Trong Access bạn phải chỉ ra các kiểu đữ liệu ở nhiều nơi, dua các biến vào trong các thủ tục và các bảng lưu trữ dữ liệu trong một thiết bị lưu trữ Phần sau sẽ trình bày một số vấn để phát triển đi đôi với kiểu dữ liệu từ Jet4 và cách sử dụng biến trong thủ tục Jet

Access 2000 cung cấp sẵn hai phương tiện cơ sở dữ liệu Trước đây Access đã được gắn liên với phương tiện cơ sở dữ liệu Jet Access 2000 gidi thiệu cơ sở dữ liệu tương thích với SQL Server 7, khả năng tương thích với SQL Server được bàn đến trong Chương

12 Phần này thảo luận về những đổi mới của Jet 4 tác động vào việc thiết kế ứng dụng trên Access 2000 Sự đổi mới này có thể làm ảnh hưởng đến kích thước của ñle cơ sở dữ liệu và record khóa Bạn làm việc với kiểu dữ liệu của field đã chọn nào (gồm cdc field Memo, Hyperlink (siêu liên kết) và khóa tự động tăng) và cách liên kết với nguồn dữ liệu bên ngoài

Access 2000 lưu trữ tất cả nội dung văn bản và đữ liệu kiểu Memo vao dang Unicode Điều này thay thế cho dạng tập hợp ký tự nhiều byte (MBCS = Multi Byte Character Set) được dùng trong các

31

Trang 40

phiên bản trước đây của Access cho các ngôn ngữ Nhật, Trung Quốc

và các ngôn ngữ khác đã chọn Unicode là một phần trong chuẩn ISO 10646, chuẩn này cung cấp cách mã hóa số cho tất cả các ngôn ngữ Dạng thức mới này yêu cầu 2 byte thay vì 1 byte như trước đây

để miêu tả một ký tự Điều này có thể làm tăng gần gấp đôi kích thước của các cơ sở dữ liệu do các fñield ký tự cơ sở gây ra Để đến

bù sự gia tăng này đJet tự động nén và xả nén loại đữ liệu này khi cần thiết Nó nén fñield memo có chiều dài khoảng 4000 ký tự hoặc

ít hơn Trong một fñield, có thể nén một số dòng nhưng không phải

là tất cả các dòng dav biệt là field dữ liệu kiểu memo Ca Access va ADO tự động nén các ký tự dạng Unicode nhưng DAO không cung cấp việc nén dữ liệu kiểu chuỗi Những người viết chương trình trong Jet SQL có thể st dung ménh dé WITH COMPRESSION cho các bang chỉ định

Để thêm dạng thức mới cho các kiểu dữ liệu ký tự, kích thước trang có thể tăng gấp đôi lên đến 4KB Điều này có thể làm giảm

sự xảy ra đồng thời những xung đột trang khoá Jet ghi dia chi nay bằng cách khóa dòng đơn Bạn có thể giảm tối thiểu các vấn dé xảy

ra đồng thời bằng cách khóa các record riêng rẽ thay thế cho cả các trang Access 2000 cho phép các người sử dụng cập nhật hai record trên cùng trang xảy ra đồng thời

GHI CHÚ: Kích thước trang mới tăng thêm kích thước cơ sở dữ

liệu tối đa từ 1.07 GB đến 2.14 GB

Việc khóa dòng đơn là tùy chọn mặc định toàn bộ, nhưng các người sử dụng và các người phát triển có thể dự phòng để khóa trang truyền thống Các fñeld memo và các chỉ mục không bao giờ

hỗ trợ việc khóa dòng đơn ADO qua truy cập dữ liệu hoặc Jet SQL cho phép rút tùy chọn để khóa ở mức trang Các form Access qua truy cập dữ liệu và DAO luôn luôn qua khóa dòng đơn

Dùng khóa các dòng đơn để giảm thiểu các xung đột đồng thời, nhưng phải trả một khoản phụ phí cài đặt và di chuyển các khóa record Mức độ phụ phí này tùy thuộc vào kích thước record

Ngày đăng: 26/03/2015, 15:38

HÌNH ẢNH LIÊN QUAN

Hình  1-3:  Sử  dụng  wizard  cla  Command  Button  ban  cé  thé  tao  toan - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 1-3: Sử dụng wizard cla Command Button ban cé thé tao toan (Trang 19)
Hình  1-21.  Cặp  (Hi  tục  hàm  sử  dụng  các  hiểm  tra  điều  kiện  từ  đâu  đến  cuối  uòng  lặp  Do - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 1-21. Cặp (Hi tục hàm sử dụng các hiểm tra điều kiện từ đâu đến cuối uòng lặp Do (Trang 65)
Hình  1-26.  Tính  thời  gian  để  hoàn  thành  một  tác  vụ.  Thủ  tục - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 1-26. Tính thời gian để hoàn thành một tác vụ. Thủ tục (Trang 75)
Hình  2-1.  Các  đối  tượng  và  các  tập  hợp  DAO  cho  không  gian  lam  viéc  Jet - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 2-1. Các đối tượng và các tập hợp DAO cho không gian lam viéc Jet (Trang 97)
Hình  2-3.  Bạn  dùng  hộp  thoai  References  để  thêm  các  thư  viện  ADO  vào  một  trình  ứng  dụng - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 2-3. Bạn dùng hộp thoai References để thêm các thư viện ADO vào một trình ứng dụng (Trang 115)
Hình  2-9.  Các  cửa  sổ  VBE  Code  va  immediate  trinh  bay.ma  Idi  tt’  cdc - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 2-9. Các cửa sổ VBE Code va immediate trinh bay.ma Idi tt’ cdc (Trang 163)
Hình  2-10.  Thư  ......... - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 2-10. Thư (Trang 166)
Hình  3-5.  Một  hộp  thoại  Table  Wizard  trinh  bay  su  dé  tim  mối  liên  kết - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 3-5. Một hộp thoại Table Wizard trinh bay su dé tim mối liên kết (Trang 209)
Hình  3-7.  Khung  nhìn  Design  của  bảng  Persons  vdi  field  kiu  lookup - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 3-7. Khung nhìn Design của bảng Persons vdi field kiu lookup (Trang 215)
Hình  3-10.  Wizard  của  Input  Mask  véi  chọn  lựa  các  mặt  nạ  nhập  liệu - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 3-10. Wizard của Input Mask véi chọn lựa các mặt nạ nhập liệu (Trang 221)
Hình  3-12.  Các  cửa  sổ chính  va  Indexes  trinh  bày  bằng  Order  Details - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 3-12. Các cửa sổ chính va Indexes trinh bày bằng Order Details (Trang 226)
Hình  4-2.  Hóp  - - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 4-2. Hóp - (Trang 272)
Hình  14-6  hién  thi  một  số  sản  phẩm  đầu  tiên  thỏa  các  tiêu  chuẩn - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 14-6 hién thi một số sản phẩm đầu tiên thỏa các tiêu chuẩn (Trang 296)
Hình  4-30  dưới  đây  trình  bày  khung  nhìn  Design  của  query  trong  một  Access  Project - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 4-30 dưới đây trình bày khung nhìn Design của query trong một Access Project (Trang 341)
Hình  5-14  dưới  đây  trình  bày  hai  form,  cho  phép  người  dùng - Microsoft Access 2000  Lập trình ứng dụng cơ sở dữ liệu. Tập 1
nh 5-14 dưới đây trình bày hai form, cho phép người dùng (Trang 369)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN