31
1 (a) MCơ sdliu GioithieuVBA (bước 1) Hình 8.4 – Bài tp thc hành 1 Nhng phím tt - Ct, Sao chép, và Dán Ctrl + X, Ctrl + C, và Ctrl + V là nhng phím tt để ct, sao chép và dán, mt cách tương ng, và áp dng chung cho nhng ng dng Windows. Nhng phím tt sdnhkhi chúng ta nhng ký tX, C, và V nm cnh nhau phía dưới bên trái ca bàn phím. Bài thc hành 1 To mt hp Combo và thtc liên kết VBA Đối tượng: To mt hp combo để định vmt bn ghi, to mt thtc VBA để đồng bhp combo vi bn ghi hin ti. Sdng Hình 8.4. Bước 1: Mcơ sdliu GioithieuVBA ¾ Khi động Access. Mcơ sdliu GioithieuVBA trong thư mc Exploring Access như trong Hình 8.4a. ¾ Nếu cn thiết, kích nút Forms. Chn (kích) Bieu mau Sinhvien ban dau. Kéo xung thc đơn Edit và kích lnh Copy (hoc kích nút Copy trên thanh công cDatabase). Biu mu được sao chép ti clipboard. ¾ Kéo xung thc đơn Edit ln thhai và kích lnh Paste (hoc kính nút Paste trên công cDatabase) để hin thhp thoi Paste As. Gõ Bieu mau Sinhvien hoan thien n enter.

VBA. Thao Tac Voi Form

Embed Size (px)

Citation preview

Page 1: VBA. Thao Tac Voi Form

1

(a) Mở Cơ sở dữ liệu GioithieuVBA (bước 1) Hình 8.4 – Bài tập thực hành 1

Những phím tắt - Cắt, Sao chép, và Dán Ctrl + X, Ctrl + C, và Ctrl + V là những phím tắt để cắt, sao chép và dán, một cáchtương ứng, và áp dụng chung cho những ứng dụng Windows. Những phím tắt sẽ dễnhớ khi chúng ta những ký tự X, C, và V nằm cạnh nhau ở phía dưới bên trái của bànphím.

Bài thực hành 1 Tạo một hộp Combo và thủ tục liên kết VBA Đối tượng: Tạo một hộp combo để định vị một bản ghi, tạo một thủ tục VBA để đồng bộ hộp combo với bản ghi hiện tại. Sử dụng Hình 8.4. Bước 1: Mở cơ sở dữ liệu GioithieuVBA Khởi động Access. Mở cơ sở dữ liệu GioithieuVBA trong thư mục Exploring

Access như trong Hình 8.4a. Nếu cần thiết, kích nút Forms. Chọn (kích) Bieu mau Sinhvien ban dau. Kéo

xuống thực đơn Edit và kích lệnh Copy (hoặc kích nút Copy trên thanh công cụ Database). Biểu mẫu được sao chép tới clipboard. Kéo xuống thực đơn Edit lần thứ hai và kích lệnh Paste (hoặc kính nút Paste

trên công cụ Database) để hiển thị hộp thoại Paste As. Gõ Bieu mau Sinhvien hoan thien và ấn enter.

Page 2: VBA. Thao Tac Voi Form

2

(b) Combo Box Wizard (bước 2) Hình 8.4 – Bài tập thực hành 1

Bước 2: Combo Box Wizard Mở Bieu mau Sinhvien hoan thien mới được tạo với khung nhìn Design. Mở

to cửa sổ ra. Kích công cụ Combo Box trên thanh công cụ Toolbox, sau đó kích và kéo vào

trong biểu mẫu bên cạnh điều khiển Số chứng minh thư để tạo một hộp combo và khởi động Wizard. Chọn nút tự chọn để Find a record on my form based on the value I selected

in my combo box như trong Hình 8.4b. Kích Next. Kích đúp trường Sochungminhthu để chuyển nó từ hộp liệt kê những trường được cung cấp (ở bên trái của Combo Box Wizard) sang danh sách những trường được chọn. Kích đúp trường Ten cũng để chuyển trường này. Kích Next. Bạn sẽ nhìn thấy các cột trong hộp combo như chúng sẽ xuất hiện trong biểu

mẫu. Chắc chắn rằng ta đã tích vào hộp kiểm Hide key column. Kích Next. Thay đổi nhãn của hộp combo thành Timsinhvien (đừng sử dụng khoảng trống

trong nhãn). Kích Finish để thoát khỏi Combo Box Wizard.

Page 3: VBA. Thao Tac Voi Form

3

Thay đổi kích thước và di chuyển một hộp combo và nhãn của nó Một hộp combo luôn được tạo với một nhãn gắn kèm. Chọn (kích) hộp combo, và nósẽ có cán thay dổi kích thước và cán di chuyển, nhưng nhãn của nó chỉ có một cán dichuyển. Chọn nhãn (thay vì hộp combo) và xảy ra điều ngược lại. Để di chuyển mộthộp combo và nhãn của nó, kích và kéo biên của mỗi đối tượng. Để di chuyển hộpcombo hoặc nhãn của nó, kích và kéo cán di chuyển (một hình vuông nhỏ ở phía góctrên bên trái) của dối tượng thích hợp.

(c) Di chuyển và thay đổi kích thước hộp Combo (bước 3) Hình 8.4 – Bài thực hành 1

Bước 3: Di chuyển và thay đổi kích thước hộp combo Di chuyển và thay đổi kích thước hộp combo mới được tạo sao cho phù hợp

với cách trình bày trong Hình 8.4c. Dải Properties chưa được hiển thị. Bạn sẽ có thể phải giảm kích thước của hộp combo và/hoặc tăng kích thước của nhãn. Để sắp thẳng hàng hộp combo và/hoặc nhãn của nó với những điều khiển khác

trên cùng một hàng của biểu mẫu, ấn và giữ phím Shift để chọn những điều khiển bạn muốn sắp. Kéo xuống thực đơn Format, kích Align, sau đó kích Top để sắp thẳng hàng đỉnh của tất cả những phần tử được chọn. Trỏ tới hộp combo, kích phím phải chuột để hiển thị một thực đơn tắt, sau đó

kích Properties để hiển thị hộp thoại Properties trong Hình 8.4c. Nếu cần, kích nhãn All. Viết tên của hộp combo (Combo37 trong hình của chúng tôi) vì bạn sẽ cần nó

trong bước 7. Tên điều khiển của bạn có thể khác của chúng tôi. Kích thuộc tính Row Source để chọn nó, sau đó kích nút Build (nút có ba dấu

chấm) xuất hiện khi hàng được chọn.

Page 4: VBA. Thao Tac Voi Form

4

Hộp thoại Property Bạn có thể thay đổi diện mạo và hành trạng của một điều khiển bằng hai cách. Bằngcách thay đổi chính điều khiển thực sự trên biểu mẫu hoặc bằng cách thay đổi nhữngthuộc tính phía dưới. Bất kỳ những gì bạn làm với điều khiển sẽ tự động thay đổithuộc tính liên kết, và ngược lại, bất cứ thay đổi với dải thuộc tính sẽ được ánh xạtrong diện mạo và hành trạng của điều khiển. Chúng ta tự tiếp tục tìm ra việc chuyểntới lui giữa hai kỹ thuật.

(d) Cập nhật Row Source (bước 4) Hình 8.4 – Bài thực hành 1

Bước 4: Cập nhật Row Source Bạn sẽ nhìn thấy truy vấn trong Hình 8.4d, ngoại trừ là truy vấn của bạn chưa được hoàn thiện. Kích vào trong cột thứ hai của hàng Field, ngay sau điều khiển Ten. Ấn phím cách sau đó gõ & ”, ” & Hovadem. Đặt một dấu cách sau dấu phẩy

bên trong các dấu ngoặc kép. Ấn Enter. Kích đúp biên giữa ô này và ô tiếp theo để tăng độ rộng cột để bạn có thể nhìn

thấy toàn bộ biểu thức. Ghi nhớ rằng Expr1: đã được nhập vào tự động đằng trước biểu thức. Kích vào Sort row của cùng cột, kích mũi tên xuống nếu cần, sau đó kích

Ascending để hiển thị những bản ghi theo thứ tự abc của tên. Đóng truy vấn. Kích Yes khi được hỏi có lưu những thay đổi được làm tới lệnh

SQL. Đóng dải Properties. Kích nút View để trở lại khung nhìn Form.

Page 5: VBA. Thao Tac Voi Form

5

Nối một xâu Dấu và (&), hoặc toán tử nối, chỉ ra rằng những yếu tố trong mỗi phần của một biểuthức xuất hiện liền sát yếu tố khác khi một biểu thức được hiển thị. Bạn có thể nối mộtđoạn văn và một tên trường chẳng hạn như “Tên của nhân viên là” & Ten để hiển thị“Tên của nhân viên là Toàn”, giả sử rằng Toàn là giá trị hiện tại trong trường Ten.

(e) Kiểm tra hộp Combo TimSinhvien (bước 5) Hình 8.4 – Bài thực hành 1

Bước 5: Kiểm tra hộp combo TimSinhvien Nếu cần, kích nút Navigation trên thanh trạng thái để trả về bản ghi đầu trong

bảng, Lê Thị Nga, như trong Hình 8.4e. Kích mũi tên xuống trên hộp combo bạn vừa tạo để hiển thị một danh sách

những sinh viên theo thứ tự abc. (Nếu bạn không nhìn thấy danh sách sinh viên, ấn Esc để bỏ qua ảnh hưởng của bất kỳ thao tác nào, sau đó trở lại khung nhìn Design để lặp lại những bước trước. Chọn (kích) Hoa, Nguyễn Thị từ danh sách những tên trong hộp combo, Biểu

mẫu được cập nhật để hiển thị thông tin cho sinh viên này. Kích mũi tên xuống lần thứ hai và chọn Ngọ, Lê Đình từ hộp combo. Biểu mẫu lại được cập nhật. Kích nút navigation để trở về sinh viên đầu tiên. Biểu mẫu hiển thị bản ghi của

Lê Thị Nga, nhưng hộp combo thì không cập nhật; v.d., nó sẽ tiếp tục hiển thị Ngọ, Lê Đình. Kích nút View để trở về khung nhìn Design.

Page 6: VBA. Thao Tac Voi Form

6

Tại sao sử dụng VBA? Hộp combo cho phép bạn chọn một tên từ một danh sách abc sau đó cập nhật nhậtbiểu mẫu để hiển thị dữ liệu của bản ghi tương ứng. Tất cả điều này đã được hoànthiện mà không sử dụng VBA. Vấn đề là hộp combo không cập nhật tự động khinhững bản ghi được chọn bằng những nút navigation. Cách duy nhất để sửa vấn đềnày là viết một thủ tục VBA.

(f) Tạo một thủ tục sự kiện (bước 6) Hình 8.4 – Bài thực hành 1

Bước 6: Tạo một Thủ tục sự kiện Trỏ tới bộ lọc bản ghi (Hình chữ nhật nhỏ ở phía trên bên trái của biểu mẫu),

kích phím phải chuột để hiển thị một thực đơn tắt, sau đó kích Properties để hiển thị dải thuộc tính Form. Kích nhãn Event. Kích sự kiện On Current, sau đó kích nút Build để hiển thị

hộp thoại Choose Builder như trong Hình 8.4f. Kích (chọn) Code Builder, sau đó kích OK. Một cửa sổ VBA sẽ mở chứa

những môđun của Bieu mau Sinhvien hoan thien. Nếu cần, mở to cửa sổ VBA và/hoặc kích nút Procedure View bên trên thanh

trang thái. Trỏ chèn đã được đặt tự động trong thủ tục sự kiện vừa được tạo. Bạn sẽ nhìn thấy một thông điệp bắt đầu bằng Private Sub Form_Current()

tương ứng với sự kiện On Current. Bạn cũng sẽ nhìn thấy dòng kết thúc End Sub, nhưng không có mã xuất hiện ở giữa những dòng lệnh Sub và End Sub.

Page 7: VBA. Thao Tac Voi Form

7

Tạo một thủ tục sự kiện Có hai cách cơ bản để tạo một thủ tục sự kiện. Có thể tạo từ khung nhìn Design, nhưtrong bài tập này, bằng cách kích phải vào hộp bộ chọn biểu mẫu để hiển thị nhữngthuộc tính biểu mẫu, kích nhãn Event để chọn sự kiện mong muốn, sau đó kích nútBuild và chọn Code Builder. Bạn cũng có thể tạo một thủ tục sự kiện trực tiếp trongcửa sổ Module. Trong mỗi cách, câu lệnh đầu và cuối của thủ tục được tự động tạocho bạn

(g) Hoàn thiện thủ tục sự kiện On Current (bước 7) Hình 8.4 – Bài thực hành 1

Bước 7: Hoàn thiện Thủ tục sự kiện On Current Trỏ chèn sẽ nằm trên một dòng trắng, giữa những dòng lệnh Sub và End Sub.

Nếu không kích vào dòng trắng. Ấn phím Tab để thụt vào. Sự thụt vào làm mã lệnh của bạn dễ đọc hơn, nhưng không phải là một yêu cầu về cú pháp. Gõ Combo37 (sử dụng số của hộp combo như đã đặt trong bước 5). Nếu bạn

không nhớ tên của hộp combo, kích nút trên thanh tác vụ để trở về cửa sổ Form, kích vào hộp combo và kích nhãn All. Xem tên tại thuộc tính Name. Ấn phím cách sau khi bạn đã nhập vào tên của hộp combo của bạn, gõ một

dấu bằng, và ấn phím cách lần thứ hai. Gõ So (vài chữ đầu tiên trong tên của điều khiển Sochungminhthu). Kéo xuống thực đơn Edit và kích Complete Word (hoặc ấn Ctrl+Space) để

hiển thị tất cả những đối tượng, thuộc tính và phương thức bắt đầu bằng những chữ này. Sochungminhthu đã được chọn như trong Hình 8.4g. Ấn phím cách để sao

chép mục được chọn và hoàn thiện dòng lệnh Kích nút Save trên thanh công cụ Visual Basic. Đóng cửa sổ VBA.

Page 8: VBA. Thao Tac Voi Form

8

Phương thức Set Focus Lý tưởng là khi kích nút Thêm bản ghi sẽ đặt bạn vào trường Số chứng minh thư, bạnkhông phải kích vào trường này để bắt đầu nhập dữ liệu. Mở biểu mẫu Sinh viên trongkhung nhìn Design, kích phải vào nút Thêm bản ghi và hiển thị hộp thoại Properties.Kích nhãn Event, kích thuộc tính On Click, sau đó kích nút Build. Chèn dòng lệnhSochungminhthu.SetFocus ngay sau dòng lệnh DoCmd. Chuyển đến khung nhìnForm, sau đó kích nút Thêm. Bạn sẽ được đặt vào trường Số chứng minh thư.

(h) Thêm bản ghi của bạn (bước 8) Hình 8.4 – Bài thực hành 1

Bước 8: Thêm bản ghi của bạn Nếu cần, kích nút của biểu mẫu Access trên thanh tác vụ. Đóng dải thuộc tính.

Kích nút View để trở về khung nhìn Form. Bạn sẽ nhìn thấy biểu mẫu Thông tin Sinh viên. Kích nút navigation để

chuyển tới bản ghi tiếp theo. Dữ liệu trong biểu mẫu được cập nhật. Kích nút navigation để trở về bản ghi đầu tiên. Một lần nữa dữ liệu trong biểu

mẫu được cập nhật, như là tên trong hộp combo. Kích vào nút Thêm bản ghi của biểu mẫu. Bạn sẽ nhìn thấy một biểu mẫu

trắng như trong Hình 8.4h. Kích vào hộp văn bản Sochungminhthu và nhập số chúng minh thư của bạn.

Tiếp tục nhập dữ liệu cá nhân của bạn. Đóng biểu mẫu khi bạn đã nhập xong dữ liệu. Thoát khỏi Access nếu bạn

không muốn tiếp tục với bài tập tiếp theo lúc này.

Page 9: VBA. Thao Tac Voi Form

9

Khung nhìn Procedure và khung nhìn môđun đầy đủ Cách thủ tục có thể được hiển thị riêng lẻ, hoặc nhiều thủ tục có thể được xem đồngthời. Kích nút Procedure View để hiển thị một thủ tục hoặc kích nút Module View đểhiển thị nhiều thủ tục. Trong mỗi cách, bạn có thể ấn Ctrl+PgDn và Ctrl+PgUp để dichuyển giữa những thủ tục trong cửa sổ Module.

(a) Tạo thủ tục sự kiện KeyDown (bước 1) Hình 8.6 – Bài thực hành 2

Bài thực hành 2 Làm thuận tiện việc vào dữ liệu Đối tượng: Tạo những phím tắt làm thuận tiện việc vào dữ liệu. Sử dụng Hình 8.6 để minh hoạ cho bài tập. Bước 1: Tạo Thủ tục sự kiện KeyDown Mở cơ sở dữ liệu GioithieuVBA từ bài tập trước. Kích nút Form sau đó mở

Bieu mau Sinhvien hoan thien trong khung nhìn Design. Kéo xuống thực đơn View và kích Code (hoặc kích nút Code) trên thanh công

cụ Database. Nếu bạn đang trong khung nhìn Full Module, kích vào thủ tục bất kỳ, sau đó kích nút Procedure view bên trên thanh trạng thái. Kích mũi tên xuống trong hộp liệt kê Event và chọn Form. Kích mũi tên xuống trong hộp liệt kê Procedure để hiển thị danh sách những

sự kiện của biểu mẫu. Kích KeyDown để tạo một thủ tục cho sự kiện này.

Page 10: VBA. Thao Tac Voi Form

10

Đỏ, xanh lá cây và xanh da trời Visual Basic của các ứng dụng sử dụng các màu khác nhau trong những kiểu dònglệnh khác nhau (hoặc một phần của các dòng lệnh đó). Bất kì dòng lệnh nào chứa mộtlỗi cú pháp sẽ có hiện màu đỏ. Lời chú thích có màu xanh lá cây. Các từ khoá, như làSub và End Sub, có màu xanh da trời.

(b) Sửa lỗi biên dịch (Bước 2) Hình 8.6 – Bài thực hành 2

Bước 2: Sửa lỗi biên dịch Những dòng lệnh đầu đề Procedure và End Sub của thủ tục sự kiện KeyDown được tạo tự động như trong Hình 8.6b. Trỏ chèn được đặt vào dòng trắng giữa hai dòng lệnh này. Gõ một dấu nháy đơn (để viết một lời chú thích), sau đó nhập nhập đoạn văn

bản chú thích như trong hình. Ấn enter khi bạn đã hoàn thiện lời chú thích. Dòng chuyển sang mầu xanh lá cây để chỉ ra rằng nó là một lời chú thích. Ấn phím Tab để thụt vào dòng thứ nhất của mã lệnh, sau đó nhập vào dòng

lệnh đúng như trong hình. Ấn enter bạn sẽ nhìn thấy thông điệp lỗi bởi vì chúng ta tạo một lỗi (cố ý) trong dòng lệnh If để minh hoạ điều xảy ra khi bạn mắc một lỗi. Kích OK nếu bạn biết lí do của lỗi hoặc kích Help để hiển thị một màn hình

mô tả lỗi, đóng cửa sổ Help. Bây giờ quay trở về dòng lệnh VBA, gõ dấu cách ở cuối của dòng và thêm từ

khóa Then vào cuối dòng để sửa lỗi. Ấn enter để hoàn thiện dòng lệnh. Thông điệp lỗi sẽ không xuất hiện.

Page 11: VBA. Thao Tac Voi Form

11

Công cụ hoàn thiện từ Bạn biết rằng biểu mẫu của bạn chứa một điều khiển tham chiếu đến số điện thoạitrường đại học, nhưng bạn không chắc chắn về chính tả. Công cụ Complete Word cóthể trợ giúp. Nhập kí tự đầu tiên, sau đó nhấn Ctrl+Space ( hoặc kéo xuống thực đơnEdit và kích Complete Word). VBA sẽ hoàn thiện từ cho bạn, nếu bạn đã nhập đủ sốkí tự cần thiết để nhận dạng, hoặc nó sẽ hiển thị tất cả những đối tượng, thuộc tính, vàphương thức bắt đầu bằng kí tự bạn đã nhập. Sử dụng mũi tên xuống để cuộn suốtdanh sách cho đến khi bạn tìm thấy mục thoả mãn, sau đó nhấn phím cách để hoànthiện đầu vào.

(c) Hoàn thiện thủ tục sự kiện KeyDown (Bước 3) Hình 8.6 – Bài thực hành 2

Bước 3: Hoàn thiện Thủ tục sự kiện KeyDown Đóng cửa sổ Project Explorer và hoàn thiện thủ tục KeyDown như trong Hình

8.6c. Sử dụng sự hiểu biết của bạn về những lệnh Cut, Copy, và Paste để thuận tiện cho việc nhập mã lệnh. Ví dụ, bạn có thể sao chép dòng lệnh If đầu tiên, sau đó sửa chữa mã cho phù

hợp, thay vì gõ nó từ đầu. Chọn những dòng lệnh để cắt hoặc sao chép tới clipboard, sau đó dán chúng vào chỗ khác trong môđun. Nếu kết quả khác với điều bạn mong đợi hoặc định sẵn, kích lệnh Undo để

ngay lập tức quay ngược lại câu lệnh trước đó. Chắc chắn rằng mã lệnh của bạn giống với mã trong Hình 8.6c. Sự thụt vào

không phải là một yêu cầu cú pháp của VBA, nhưng được sử dụng để làm những dòng lệnh của bạn dễ đọc hơn. Kích nút Save để lưu lại môđun.

Page 12: VBA. Thao Tac Voi Form

12

Sử dụng dải thuộc tính Tất cả những đối tượng trên một biểu mẫu có dải thuộc tính của riêng nó. Điều nàycho phép bạn thay đổi diện mạo và hành trạng của một điều khiển bằng hai cách -bằng cách thay đổi điều khiển thông qua ứng dụng của một lệnh thực đơn hoặc nútthanh công cụ, hoặc bằng cách thay đổi dải thuộc tính phía dưới. Bất kỳ những gì bạnlàm với điều khiển sẽ thay đổi thuộc tính liên kết, và ngược lại, bất cứ thay đổi với dảithuộc tính được ánh xạ trong diện mạo và hành trạng của điều khiển.

(d) Thiết lập thuộc tính Key Preview (Bước 4) Hình 8.6 – Bài thực hành 2

Bước 4: Thiết lập Thuộc tính Key Preview Thuộc tính Key Preview của biểu mẫu phải được đặt là Yes để hoàn thiện phím

tắt. Kích nút thanh tác vụ để trở về Bieu mau Sinhvien hoan thien. Trỏ tới hộp bộ chọn biểu mẫu (hình vuông nhỏ ở phía trên bên trái của biểu

mẫu). Kích phím phải chuột để hiển thị một thực đơn cảm ngữ cảnh với những câu lệnh của toàn bộ biểu mẫu. Kích Properties để hiển thị hộp thoại Form Properties. Kích nhãn Event và

cuộn cho đến khi bạn thấy thuộc tính Key Preview. Thay đổi thuộc tính thành Yes như trong Hình 8.6d. Đóng hộp thoại Form Properties. Lưu lại biểu mẫu, bây giờ nó chứa thủ tục

mới cho phím tắt. Thủ tục này nên được kiểm tra ngay sau khi hoàn thiện. Kích nút View trên thanh công cụ Form Design để trở về khung nhìn Form.

Page 13: VBA. Thao Tac Voi Form

13

Thay đổi trật tự Tab Phím Tab cung cấp một lối tắt trong biểu mẫu cuối cùng để di chuyển từ một trườngtới trường tiếp theo; do vậy bạn ấn phím Tab để di chuyển tới trường tiếp theo vàShift+Tab để và quay lại trường phía trước. Trật tự những trường được chọn tươngứng với với tuần tự những điều khiển được nhập vào trong biểu mẫu, và không cầntương ứng với sự xuất hiện vật lý của biểu mẫu thực. Để khôi phục lại tuần tự trái quaphải, trên xuống dưới, kéo thực đơn View, kích Tab Order, sau đó chọn AutoOrder.

(e) Kiểm tra Thủ tục (Bước 5) Hình 8.6 – Bài thực hành 2

Bước 5: Kiểm tra Thủ tục Kích nút navigation để chuyển tới bản ghi đầu tiên trong bảng như trong Hình

8.6e. Ấn Ctrl+1 để Thành phố, Tỉnh thể hiện Hà Nội, theo như lối tắt bạn vừa tạo. Dữ liệu tự động thay đổi và bạn được đặt tự động trên trường Điện thoại

trường. Bộ chọn bản ghi chuyển thành một cái bút chì để chỉ ra rằng dữ liệu đã được sửa, nhưng chưa được lưu lại. Nếu lối tắt không làm việc, trở lại bước 4 và kiểm tra xem thuộc tính Key

Preview đã được đặt là Yes chưa. Nếu lối tắt tiếp tục không làm việc, trở về mô đun của biểu mẫu và kiểm tra những dòng lệnh VBA. Ấn Ctrl+2 để đổi thành phố thành Vinh. Dữ liệu sẽ tự động thay đổi, sau đó

bạn sẽ được đặt vào trường Số điện thoại trường. Kích nút View để trở về khung nhìn Design của biểu mẫu.

Page 14: VBA. Thao Tac Voi Form

14

(f) Tạo nút lệnh Lối tắt (Bước 6) Hình 8.6 – Bài thực hành 2

Tại sao sử dụng VBA? Hộp combo cho phép bạn chọn một tên từ một danh sách abc sau đó cập nhật nhậtbiểu mẫu để hiển thị dữ liệu của bản ghi tương ứng. Tất cả điều này đã được hoànthiện mà không sử dụng VBA. Vấn đề là hộp combo không cập nhật tự động khinhững bản ghi được chọn bằng những nút navigation. Cách duy nhất để sửa vấn đềnày là viết một thủ tục VBA.

Bước 6: Tạo Nút lệnh Lối tắt Kích và kéo công cụ Command Button trên thanh công cụ Toolbox để tạo

một nút lệnh mới như trong Hình 8.6f. Command Button Wizard tự động khởi động. Tuy nhiên lúc này bạn muốn tự tạo thủ tục sự kiện Click cho nút này. Kích nút Cancel ngay khi bạn nhìn thấy Wizard. Kích chuột phải nút lệnh mới được tạo và hiển thị dải thuộc tính của nó. Kích nhãn All. Thay đổi thuộc tính Name thành NutLoitat. Thay đổi thuộc tính Caption thành

&Lối tắt. Kích nhãn Event. Kích thuộc tính On Click, kích nút Build, kích Code

Builder, sau đó kích OK để hiển thị cửa sổ Module.

Page 15: VBA. Thao Tac Voi Form

15

Phím tăng tốc và thuộc tính Caption Thuộc tính Caption cho phép bạn tạo một phím tắt cho một nút lệnh. Kích phải nútlệnh trong khung nhìn Form Design để hiển thị hộp thoại Properties của nút lệnh. Kíchnhãn All, sau đó sửa thuộc tính Caption để nó bao gồm một dấu và (&) ngay đằngtrước chữ cái sẽ được sử dụng trong lối tắt (v.d., &Trợ giúp nếu bạn có một nút Trợgiúp). Đóng hộp thoại sau đó chuyển tới khung nhìn Form. Nút lệnh sẽ bao chứa mộtchữ cái gạch chân (v.d. Trợ giúp) và có thể được kích hoạt cùng với phím All (v.d.Alt+T) như một phím tắt hoặc phím tăng tốc.

(g) Tạo thủ tục OnClick (Bước 7) Hình 8.6 - Bài tập thực hành 2

Bước 7: Tạo thủ tục sự kiện OnClick Bạn nên được đặt trên dòng trắng trong thủ tục, như trong Hình 8.6g. Ấn phím

Tab để thụt vào, sau đó nhập mã VBA chính xác như trong hình. Ghi nhớ sau những điều sau: • Một tip (hiểu như “Quick Info”) xuất hiện ngay khi bạn gõ dấu ngoặc trái

sau hàm MsgBox. Tip hiển thị cú pháp của hàm và danh sách các tham số của nó.

• Sự thụt vào không phải là một yêu cầu cú pháp của VBA, nhưng được sử dụng để làm mã VBA dễ đọc hơn.

Hoàn thiện dòng lệnh chính xác như trong hình, trừ việc thay thế tên của bạn cho Your name. Kích nút Save. Đóng cửa sổ Module. Thay đổi kích thước và sắp xếp nút lệnh mới. Lưu lại biểu mẫu. Kích nút

View.

Page 16: VBA. Thao Tac Voi Form

16

Hàm Msgbox Hàm Msgbox có ba tham số - văn bản của thông điệp được hiển thị, số lượng nút cùngkiểu của thông điệp, và văn bản xuất hiện trên thanh tiêu đề. Thông điệp tự được chiathành nhiều xâu kí tự, nối tiếp từ dòng này đến dòng khác. Ký hiệu và nối kết hai xâuký tự để hiển thị một thông điệp duy nhất. Ký tự gạch dưới chỉ ra rằng dòng lệnh đượctiếp tục ở dòng tiếp theo.

(h) Kiểm tra nút Lối tắt (Bước 8) Hình 8.6 – Bài thực hành 2

Bước 8: Kiểm tra nút Lối tắt Kích nút Lối tắt. Bạn cũng có thể sử dụng phím tắt Alt+L, được chỉ ra bằng

chữ cái gạch chân trong tên nút được thiết lập thông qua thuộc tính Caption của nút. Bạn sẽ nhìn thấy hộp thông điệp được hiển thị trong Hình 8.6h. Tên của bạn sẽ

xuất hiện trên thanh tiêu đề của hộp thoại thay cho Tên bạn. Kích OK để đóng hộp thông điệp. Thử những phím tắt khác đã được xây dựng trong biểu mẫu. Ấn Ctrl+1 và

Ctrl+2 để chuyển qua chuyển lại giữa Hà Nội và Vinh, một cách tương ứng. Ấn Alt+D để đóng biểu mẫu. Không phải tất cả mọi người đều thích sử dụng phím tắt hơn chuột, nhưng tuy nhiên bạn đã tạo những lối tắt rất thuận tiện. Thoát khỏi Access nếu bạn không muốn tiếp tục với bài tập tiếp theo lúc này.

Page 17: VBA. Thao Tac Voi Form

17

Tạo những nút lệnh cùng một dạng Một biểu mẫu được làm lôi cuốn hơn nếu tất cả những nút lệnh của nó có những thuộctính tương đồng. Chuyển tới khung nhìn Design, sau đó ấn và giữ phím Shift trong khibạn chọn mỗi nút lệnh. Kéo xuống thực đơn Format, kích Size, sau đó chọn nhữngtham số mong muốn cho tất cả những nút chẳng hạn như rộng nhất và cao nhất. (Bạnphải thi hành một lệnh cho mỗi tham số). Rời khỏi những nút được chọn, kéo xuốngthực đơn Format, chọn lệnh Align, sau đó chọn tham số mong muốn. Kéo xuống thựcđơn Format một lần cuối, chọn mục Horizontal Spacing, sau đó chọn khoảng cáchmong muốn (ví dụ, cùng một dạng) cho những nút lệnh.

Page 18: VBA. Thao Tac Voi Form

18

(a) Ép thông điệp lỗi (Bước 1) Hình 8.8 – Bài thực hành 3

Danh sách tệp được mở gần đây nhất Cách dễ nhất để mở một cơ sở dữ liệu được sử dụng gần đây là chọn nó từ hộp thoạiMicrosoft Access xuất hiện khi Access được khởi động lúc đầu. Kiểm tra xem cơ sởdữ liệu của bạn có xuất hiện trong danh sách bốn cơ sở dữ liệu được mở gần đây nhấtkhông, nếu có, đơn giản là kích đúp cơ sở dữ liệu để mở nó. Danh sách những cơ sởdữ liệu được mở gần đây nhất cũng có thể được tìm ở cuối của thực đơn File.

Bài tập thực hành 3 Bẫy lỗi Đối tượng: Tạo một thủ tục sự kiện để thay thế những thông điệp ứng dụng đặc thù cho những thông điệp lỗi Access chuẩn. Sử dụng Hình 8.8 làm minh họa. Bước 1: Ép Thông điệp lỗi Mở cơ sở dữ liệu GioithieuVBA. Nếu cần, kích nút Forms, sau đó mở Bieu

mau Sinhvien hoan thien với khung nhìn Form. Kích và kéo để chọn tên trong hộp combo TimSinhvien. Gõ XXXX (một tên

hiển nhiên sai). Ấn enter. Bạn sẽ nhìn thấy thông điệp lỗi như trong Hình 8.8a, nó có thể gây khó hiểu cho một người sử dụng không có chuyên môn. Kích OK để đóng hộp thoại. Ấn phím Esc để xoá XXXX, vì bạn không muốn

tìm sinh viên này. Chuyển tới khung nhìn Design.

Page 19: VBA. Thao Tac Voi Form

19

Máy tính tức thì Sử dụng phương thức (hành động) Print trong cửa sổ Immediate để sử dụng VBA nhưmột máy tính. Ấn Ctrl+G bất cứ lúc nào để hiển thị cửa sổ Immediate. Gõ dòng lệnhDebug.Print, theo sau là tính toán của bạn, ví dụ, Debug.Print 2+2, sau đó ấn enter.Câu trả lời được hiển thị trên dòng tiếp theo trên cửa sổ Immediate.

(b) Xác định số của lỗi (Bước 2) Hình 8.8 – Bài thực hành 3

Bước 2: Xác định Số của lỗi Kéo xuống thực đơn View và kích Code (hoặc kích nút Code trên thanh công

cụ Form Design) để hiển thị cửa sổ Module. Nếu cần thiết, kích mũi tên xuống của hộp thoại Object và chọn đối tượng Form. Kích mũi tên xuống trong hộp Procedure và kích Error để hiển thị thủ tục sự

kiện sẽ được tiến hành khi một lỗi xảy ra trong biểu mẫu. Kích nút Procedure View như trong Hình 8.8b. Chúng tôi đã tạo thủ tục này cho bạn. Nó bao gồm một dòng lệnh có thể thi

hành riêng lẻ, để in một câu văn, theo sau là số của lỗi. Những lời chú thích giải thích cách sử dụng thủ tục. Kéo xuống thực đơn View và kích Immediate window (hoặc ấn Ctrl+G) để

mở cửa sổ Immediate. Bạn sẽ nhìn thấy số 2237. Đây là số của lỗi của riêng Access để chỉ ra rằng giá trị được đưa vào trong

phần văn bản của hộp combo không giống với bất kỳ lối vào nào trong danh sách liên kết. Đóng cửa sổ Immediate.

Page 20: VBA. Thao Tac Voi Form

20

Tiếp tục một dòng lệnh VBA - Dấu & và dấu gạch dưới Một dòng lệnh VBA có thể được tiếp tục từ một dòng tới dòng tiếp theo bằng cách bỏmột dấu cách ở cuối của dòng được tiếp tục, gõ ký tự gạch dưới, sau đó tiếp tục trêndòng tiếp theo. Tuy nhiên bạn không thể ngắt một dòng ở giữa một đoạn văn (xâu kýtự). Do vậy bạn cần hoàn thiện xâu ký tự với một dấu đóng ngoặc kép, thêm một dấuvà (là toán tử gắn kết để hiển thị xâu này cùng với xâu ký tự trên dòng tiếp theo), sauđó bỏ một dấu cách theo sau là một dấu gạch dưới để chỉ ra sự tiếp tục.

(c) Bẫy lỗi đầu tiên (Bước 3) Hình 8.8 – Bài thực hành 3

Bước 3: Bẫy lỗi đầu tiên Kích vào thủ tục sự kiện ở cuối của dòng lệnh Debug, ấn phím enter hai lần,

sau đó nhập mã trong Hình 8.8c. Ghi nhớ những điều sau: • Những lời chú thích xuất hiện ở đầu thủ tục. • Dòng lệnh Case kiểm tra giá trị của một biến vào (DataErr), sau đó chuyển

tới tập dòng lệnh thích hợp tuỳ thuộc vào giá trị của biến đó. Thủ tục hiện tại chỉ kiểm tra một lỗi duy nhất, nhưng nó sẽ được mở rộng sau trong bài tập để kiểm tra thêm những lỗi khác.

• Sự thụt vào và những dòng trống trong thủ tục không phải là những yêu cầu cú pháp của bản thân VBA, nhưng được sử dụng để làm cho mã lệnh dễ đọc hơn.

• Một tip “Thông tin nhanh” xuất hiện ngay khi bạn gõ dấu ngoặc đơn bên trái của hàm MsgBox. Tip hiển thị cú pháp của hàm.

Hoàn thiện dòng lệnh chính xác như trong Hình 8.8c. Lưu lại thủ tục.

Page 21: VBA. Thao Tac Voi Form

21

Lỗi kỹ thuật đầu tiên Lỗi kỹ thuật là một lỗi trong một chương trình máy tính; việc gỡ lỗi ám chỉ một tiếntrình chỉnh sửa những lỗi chương trình. Theo ghi chú, lỗi kỹ thuật đầu tiên là một conbướm đêm bất hạnh bị nghiến chết trên một trong những rơ le của máy tính điện tửthương mại Mark II, làm cho sự vận hành của máy bị ngừng. Nguyên nhân của sự thấtbại này được khám phá bởi Grace Hopper, và cô đã nhanh chóng gắn con bướm vàosổ ghi nhớ của mình, với lời ghi nhớ, “Trường hợp thực sự đầu tiên của lỗi kỹ thuậtđược tìm thấy”.

(d) Kiểm tra Thủ tục sự kiện Error (Bước 4) Hình 8.8 – Bài thực hành 3

Bước 4: Thủ tục sự kiện Kiểm tra lỗi Kích nút thanh tác vụ để trở về Bieu mau Sinhvien hoan thien. Chuyển đến

khung nhìn Form. Kích và kéo để chọn tên trong hộp combo Timsinhvien. Gõ XXXX (một tên hiển nhiên sai). Ấn enter. Lúc này bạn sẽ thấy một thông điệp lỗi trong Hình 8.8d tương ứng với văn bản

bạn nhập vào ở bước trước. (Ghi nhớ rằng thanh tiêu đề tên hộp thoại chỉ rằng tên bạn ở đây. Chúng tôi sẽ nói cho bạn cách sửa thanh tiêu đề sau trong bài tập). Kích OK để đóng hộp thông điệp. Ấn phím Esc để xoá XXXX. Trở lại khung

nhìn Design. Kéo xuống thực đơn View và kích Code (hoặc kích nút Code trên thanh công

cụ Form Design) để hiển thị cửa sổ Module.

Page 22: VBA. Thao Tac Voi Form

22

Hàm MsgBox - Hằng và câu văn Tham số thứ ba của hàm MsgBox có thể được nhập vào là một câu văn chẳng hạn như“Ứng dụng của Trần Văn Toàn”. Tuy nhiên, tốt hơn là xác định tham số là một hằngchẳng hạn như ApplicationName, sau đó định nghĩa hằng đó ở phần Declarations.Bằng cách này, bạn có thể đổi tên của ứng dụng ở một vị trí, và thay đổi được tự độngánh xạ trong mọi dòng lệnh MsgBox tham khảo đến hằng.

(e) Đổi tên ứng dụng (Bước 5) Hình 8.8 – Bài thực hành 3

Bước 5: Thay đổi Tên ứng dụng. Kích mũi tên xuống của hộp Object và chọn (General) ở đầu của danh sách

những đối tượng. Chúng tôi đã định nghĩa hằng Visual Basic ApplicationName, và khởi tạo nó

là “Tên của bạn ở đây”. Văn bản này đã xuất hiện trong thanh tiêu đề của hộp thoại trong bước trước. Kích và kéo để chọn Tên của bạn ở đây. Nhập Vũ Văn Trung đã làm bài

tập về nhà, thay thế tên của bạn cho Vũ Văn Trung . Kéo xuống thực đơn Edit, kích lệnh Find để hiển thị hộp thoại Find. Nhập

ApplicationName trong hộp văn bản Find What. Chỉ ra tự chọn để tìm Curent module và chỉ ra All làm định hướng. Kích nút lệnh Find Next để định vị những sự kiện của hằng ApplicationName.

Bạn có thể đánh giá ý nghĩa của kỹ thuật này để tuỳ biến ứng dụng của bạn không ? Lưu lại thủ tục.

Page 23: VBA. Thao Tac Voi Form

23

Hộp Object và hộp Procedure Hộp Object ở góc trên bên trái của cửa sổ Module hiển thị những đối tượng hiện thời,chẳng hạn như một biểu mẫu hoặc một điểu khiển trên biểu mẫu. Hộp Procedure hiểnthị tên của thủ tục hiện thời của những đối tượng được chọn. Để tạo hoặc định vị giữanhững sự kiện của một biểu mẫu, kích mũi tên xuống trên hộp Object để chọn đốitượng Form, sau đó kích mũi tên xuống trên hộp Procedure để hiển thị danh sáchnhững sự kiện. Những sự kiện đã có thủ tục rồi xuất hiện bằng chữ đậm. Kích một sựkiện có chữ không đậm để tạo đầu đề thủ tục và dòng lệnh End Sub cho sự kiện đó.

(f) Hoàn thiện thủ tục sự kiện Error (Bước 6) Hình 8.8 – Bài thực hành 3

Bước 6: Hoàn thiện Thủ tục sự kiện Error Kích mũi tên xuống của hộp Object và chọn đối tượng Form. Kích mũi tên

xuống của hộp Procedure và kích thủ tục Error. Kích ngay đằng trước dòng lệnh Case Else, sau đó nhập thêm mã lệnh như

trong Hình 8.8f. Sử dụng các lệnh Copy và Paste để nhập dòng lệnh Case thứ hai. Vì vậy: • Kích và kéo để chọn dòng lệnh Case đầu tiên, kích nút Copy, kích bên trên

dòng lệnh Case Else, và kích nút Paste. • Sửa những dòng lệnh được sao chép khi cần thiết, hơn là gõ những dòng

lệnh từ đầu. Sử dụng phím Ins để bật tắt giữa chèn và thay thế. Mã lệnh của bạn giống với của chúng tôi.

Kích nút Save để lưu lại thủ tục. Kích nút thanh tác vụ để trở về Bieu mau Sinhvien hoan thien.

Page 24: VBA. Thao Tac Voi Form

24

Lắng nghe người dùng của bạn Một nguyên nhân liên tục làm hệ thống thất bại đối với người dùng cuối là nhữngthông điệp lỗi tràn ngập những thuật ngữ kĩ thuật. Hiển nhiên là một người phát triểnhoặc một sinh viên thường vượt xa so với người dùng cuối chưa có kinh nghiệm. Dovậy, bất cứ những gì bạn có thể làm để đơn giản một hệ thống sẽ gia tăng cơ hội thànhcông của hệ thống. Tìm ra chỗ họ có khúc mắc và điều họ không hiểu, sau đó hànhđộng theo.

(g) Hoàn thiện việc kiểm tra (Bước 7) Hình 8.8 - Bài thực hành 3

Bước 7: Hoàn thiện việc kiểm tra Bạn nên quay trở về khung nhìn Design của Bieu mau Sinhvien hoan thien.

Kéo xuống thực đơn View và chuyển tới khung nhìn Datasheet như trong Hình 8.8g. (Bạn cũng có thể kích mũi tên xuống bên cạnh nút View trên khung nhìn Form Design và chọn Datasheet view). Nhập 222-22-2222 là một số chứng minh thư bị lặp cho bản ghi đầu tiên. Ấn

phím mũi tên xuống (hoặc kích nút navigation tương ứng) để thử di chuyển đến bản ghi tiếp theo. Bạn sẽ nhìn nhìn thấy thông điệp lỗi trong Hình 8.8g. Thanh tiêu đề hiển thị

giá trị của tên ứng dụng được nhập vào gần đây trong bài tập. Kích OK (hoặc ấn Esc) để đóng hộp thoại. Ấn Esc (lần thứ hai) để lấy lại giá

trị ban đầu của số chứng minh thư. Đóng cửa sổ. Thoát khỏi Access nếu bạn không muốn tiếp tục với bài tập tiếp theo lúc này.

Page 25: VBA. Thao Tac Voi Form

25

Lựa chọn phù hợp kiểu dữ liệu và kích cỡ trường Thuộc tính kiểu dữ liệu quyết định dữ liệu có thể được chấp nhận vào trong trường vànhững thao tác có thể được trình diễn trên dữ liệu đó. Trường bất kỳ được định dùngtrong một tính toán nên được quy định kiểu dữ liệu số. Tuy nhiên bạn có thể tăng hiệuquả của một cơ sở dữ liệu Access bằng cách chỉ ra giá trị thích hợp cho thuộc tínhField Size của một trường số. Các kích cỡ trường Byte, Ịnteger, và Long Integer nắmgiữ các giá trị đến 256, 32,767, và 2,147,483,648, một cách tương ứng

(a) Thiết lập những thuộc tính Field (Bước 1) Hình 8.10 - Bài thực hành 4

Bài tập thực hành 4 Xác nhận dữ liệu Đối tượng: Sử dụng thuộc tính Field và Table để thực hiện những kiểu khác của xác nhận dữ liệu. Sử dụng Hình 8.10 làm minh hoạn trong bài tập. Bước 1: Thiết lập những thuộc tính trường. Mở cơ sở dữ liệu GioithieuVBA. Kích nút Tab, sau đó mở bảng Sinhvien

trong khung nhìn Design như trong Hình 8.10a. Kích cột bộ chọn trường của Gioitinh. Kích hộp Validation Rule. Gõ =”M”

Or “F” để chỉ chấp nhận những giá trị này trên đầu vào dữ liệu. Kích hộp Validation Rule. Gõ Xin hãy nhập M hoặc F là giới tính. Kích thuộc tính Required và chuyển giá trị của nó thành Yes.

Page 26: VBA. Thao Tac Voi Form

26

Điện thoại trường hoặc điện thoại nhà Bạn có thể thiết lập thuộc tính Required của một trường để bắt buộc người sử dụngnhập dữ liệu cho trường đó. Nhưng phải làm gì nếu bạn muốn người dùng nhập vàomột trong hai trường mà không phân biệt trường nào được chọn? Thiết lập thuộc tínhRequired của mỗi trường hoặc cả hai trường sẽ không hoàn thành yêu cầu của bạn. Dovậy bạn cần thực hiện kiểu xác nhận này ở mức bản ghi (thay vì mức trường) bằngcách thiết lập những thuộc tính trong cả bảng thay vì thiết lập những trường riêng biệt.

(b) Thiết lập những thuộc tính Table (Bước 2) Hình 8.10 - Bài thực hành 4

Bước 2: Thiết lập những thuộc tính của bảng Trỏ đến hộp bộ chọn ở góc trên bên trái, sau đó kích phím phải chuột và hiển

thị hộp thoại Table Properties như trong Hình 8.10b. Kích vào hộp Validation Rule và nhập [Dienthoaitruong] Is Not Null Or

[Dienthoainha] Is Not Null để bảo đảm rằng người sử dụng nhập một ít nhất một số điện thoại. (Tên trường không được chứa bất kỳ dấu cách nào và được đặt trong cặp dấu ngoặc vuông.) Ấn enter, sau đó gõ, Bạn phải nhập một số điện thoại ở nhà hoặc ở trường

(Đây là văn bản xác nhận sẽ được hiển thị trong trường hợp lỗi). Kích nút Save để lưu lại bảng. Kích No khi bạn nhìn thấy thông điệp hỏi

Những dữ liệu có sẵn có được kiểm tra lại với những luật mới không. Đóng hộp thoại Table Properties. Đóng bảng Sinhvien.

Page 27: VBA. Thao Tac Voi Form

27

Xác nhận ở mức trường và xác nhận ở mức bản ghi Xác nhận dữ liệu được thực hiện ở mức trường hoặc mức bản ghi. Nếu nó được thựchiện ở mức trường (Ví dụ, bằng việc chỉ ra những thuộc tính Required và ValidationRule của một trường đặc thù), Access kiểm tra lối vào ngay khi bạn thoát khỏi trường.Tuy nhiên nếu nó được thực hiện ở mức bản ghi, (Ví dụ, bằng việc kiểm tra một tronghai trường đã được nhập), Access đợi cho đến khi nó đã xử lí tất cả các trường trongbản ghi. Do vậy, thử di chuyển đến bản ghi tiếp theo để Access chỉ ra lỗi cho bạn.

(c) Kiểm tra những luật xác nhận (Bước 3) Hình 8.10 - Bài thực hành 4

Bước 3: Kiểm tra Những luật xác nhận Mở Bieu mau Sinhvien hoan thien trong khung nhìn Form. Nếu cần, chuyển đến Lê Thị Nga, bản ghi đầu tiên trong bảng. Kích và kéo để chọn trường giới tính, sau đó gõ X để thay thế giới tính. Ấn

enter. Bạn sẽ nhìn thấy thông điệp lỗi liên quan đến trường giới tính. Ấn Esc (hoặc kích OK) để đóng hộp thoại. Ấn Esc lần thứ hai để lấy lại giá trị

ban đầu. Kích và kéo để chọn số Điện thoại trường có sẵn, sau đó ấn phím Del để xoá số điện thoại. Ấn phím Tab để di chuyển tới trường Số điện thoại nhà. Cả hai số điện thoại sẽ là trống. Kích nút ► để di chuyển tới bản ghi tiếp theo. Bạn sẽ nhìn thấy thông điệp lỗi

trong Hình 8.20c liên quan đến những thuộc tính bảng. Ấn Esc (hoặc kích OK) để đóng hộp thoại. Ấn Esc lần thứ hai để lấy lại dữ

liệu ban đầu.

Page 28: VBA. Thao Tac Voi Form

28

Các thành phần Autolist - Trợ giúp trong việc viết mã lệnh Access hiển thị những phương thức và thuộc tính của một điều khiển ngay khi bạnnhập dấu chấm sau tên điều khiển. Gõ vài chữ cái đầu tiên để chọn phương thức hoặcthuộc tính. Ấn phím cách để chấp nhận mục được chọn và vẫn ở trên dòng đó hoặc ấnphím enter để chấp nhận mục và bắt đầu một dòng mới.

(d) Tạo thủ tục sự kiện BeforeUpdate (Bước 4) Hình 8.10 - Bài thực hành 4

Bước 4: Tạo Thủ tục sự kiện BeforeUpdate Chuyển tới khung nhìn Form Design. Kéo xuống thực đơn View và kích Code

(hoặc kích nút Code) trên thanh công cụ Form Design. Nếu cần, kích nút Procedure View để xem một thủ tục ở một thời điểm. Kích mũi tên xuống trên hộp liệt kê Object và kích Form. Kích mũi tên

xuống trên hộp liệt kê Procedure để hiển thị danh sách những sự kiện của biểu mẫu. Kích BeforeUpdate để tạo một thủ tục cho sự kiện này. Ấn phím Tab để thụt vào, sau đó nhập chính xác những dòng lệnh như trong

hình 8.10d. Ghi nhớ rằng, ngay sau khi bạn nhập “Diachiemail”, Access hiển thị những phương thức và thuộc tính của điều khiển Diachiemail. Gõ set (ba chữ cái đầu tiên trong phương thức SetFocus), xem màn hình khi

bạn nhập mỗi chữ cái. Access tự động di chuyển xuốt danh sách được hiển thị, cho đến khi nó đến phương thức SetFocus. Ấn enter. Thêm một dòng lệnh End If để hoàn thiện dòng lệnh If kiểm tra hàm MsgBox. Ấn enter, sau đó nhập một dòng lệnh End If thứ hai để hoàn thiện dòng lệnh If kiểm tra điều kiện IsNull. Lưu lại thủ tục.

Page 29: VBA. Thao Tac Voi Form

29

Trường Memo và trường văn bản Trường văn bản có thể lưu trữ đến 255 kí tự. Tuy nhiên một trường memo có thể lưutrữ đến 64,000 kí tự và được sử dụng để lưu trữ dữ liệu mô tả chạy trong một vài câucâu, một vài đoạn hoặc thậm chí một vài trang. Một thanh cuộn dọc xuất hiện trongkhung nhìn Form khi trường memo chứa nhiều dữ liệu hơn là dữ liệu có thể nhìn thấytrong một lúc. Ghi nhớ rằng cả hai trường văn bản và memo chỉ lưu trữ những kí tựđược nhập vào; tức là, không có khoảng trống dư thừa nếu dữ liệu không mở rộng đếnkích cỡ cực đại của trường .

(e) Kiểm tra thủ tục sự kiện BeforeUpdate (Bước 5) Hình 8.10 - Bài thực hành 4

Bước 5: Kiểm tra thủ tục sự kiện BeforeUpdate Kích nút thanh tác vụ của biểu mẫu Access. Chuyển tới khung nhìn Form.

Kích vào trường memo và nhập văn bản trong Hình 8.10e. Kiểm tra những trường còn lại nhưng hãy chắc chắn để địa chỉ email trống.

Kích nút navigation để chuyển đến bản ghi tiếp theo. Bạn sẽ nhìn thấy thông điệp lỗi trong Hình 8.10e. Ghi nhớ rằng lối vào trong

thanh tiêu đề tương ứng với giá trị của hằng ApplicationName bạn đã nhập vào trước đây. Kích No để hủy bỏ thao tác, đóng hộp thoại và tự động đặt trỏ chèn vào trong

hộp văn bản của địa chỉ email. Nhập một địa chỉ email chẳng hạn như [email protected], sau đó chuyển tới bản

ghi tiếp theo. Lúc này Access không hiển thị thông điệp lỗi và lưu lại bản ghi

Page 30: VBA. Thao Tac Voi Form

30

Lựa chọn sự kiện đúng Chúng ta gắn kết thông điệp nhắc người dùng sao lưu cơ sở dữ liệu với sự kiện Closecủa biểu mẫu. Nó có thể thực hiện tốt như thế không nếu thông điệp được gắn với sựkiện Click của nút lệnh Close Form ? Câu trả lời là không, bởi vì người dùng có thể bỏqua nút lệnh và đóng biểu mẫu bằng việc cách kéo xuống thực đơn File và chọn lệnhClose, như vậy không bao giờ nhìn thấy thông điệp. Chọn đối tượng và sự kiện gắnkết đúng là một trong những vấn đề tinh tế trong VBA.

(f) Tạo thủ tục sự kiện CloseForm (Bước 6) Hình 8.10 - Bài thực hành 4

Bước 6: Tạo thủ tục sự kiện CloseForm Chuyển tới khung nhìn Form Design, sau đó kích nút Code trên thanh công cụ

Form Design để hiển thị cửa sổ Module. Nếu cần thiết kích hộp Object để chọn Form, sau đó kích hộp Procedure để chọn sự kiện Close. Bạn sẽ nhìn thấy thủ tục sự kiện sẽ được hoàn thiện một phần trong Hình 8.10f. Ấn Tab để thụt dòng lệnh, sau đó nhập Call MsgBox theo sau là một dấu ngoặc đơn trái. Chức năng Quick Info hiển thị cú pháp của hàm này. Hoàn thiện thông điệp, kết thúc bằng dấu nháy đóng và dấu phẩy. Chức năng

AutoList hiển thị danh sách những tham số tương ứng. Gõ vbc, lúc này bạn có thể chọn tham số vbCritical bằng cách gõ một dấu phẩy. Gõ dấu cách theo sau bởi một dấu gạch dưới để tiếp tục dòng lệnh trên dòng

tiếp theo. Nhập ApplicationName làm tham số cuối cùng bằng một dấu đóng ngoặc đơn phải. Lưu lại môđun.

Page 31: VBA. Thao Tac Voi Form

31

Sao lưu những tệp quan trọng Vấn đề không được đặt ra nếu không có những sự cố như ổ cứng chết, các tệp bị mất,hoặc virus có thể lây nhiễm một hệ thống. Nó đã xảy ra với chúng tôi và nó sẽ xảy ravới bạn, nhưng bạn có thể chuẩn bị cho điều không thể tránh được bằng việc tạo ramột bản sao lưu thích hợp trước khi xảy ra vấn đề. Quyết định những tệp được saolưu, bao lâu thực hiện việc sao lưu một lần, và nơi lưu giữ bản sao lưu. Hãy làm điềuđó!

(g) Đóng biểu mẫu (Bước 7) Hình 8.10 - Bài thực hành 4

Bước 7: Đóng biểu mẫu Kích nút biểu mẫu Access trên thanh tác vụ. Trở về khung nhìn Form. Biểu

mẫu trông rất giống với biểu mẫu ban đầu, nhưng nó đã được tăng cường những cách thức tinh vi sau: • Hộp danh sách thả xuống đã được thêm vào để đinh vị một sinh viên đặc

thù. • Những phím nhanh đã được tạo cho các nút lệnh (Ví dụ, Alt+T để thêm

một bản ghi). • Thuộc tính SetForcus được sử dụng để định vị trỏ chèn trực tiếp vào hộp

văn bản Số chứng minh thư để thêm một bản ghi mới. • Những phím tắt Ctrl+1 và Ctrl +2 đã được tạo. • Xác nhận dữ liệu đã được tăng cường thông qua những thông điệp lỗi tùy

biến. • Ứng dụng đã được tùy biến thông qua đầu vào trên thanh tiêu đề. Kích nút Đóng biều mẫu để hiển thị hộp thoại trong Hình 8.10g. Kích OK để đóng hộp thoại, nó lần lượt đóng biều mẫu. Đóng cơ sở dữ liệu. Thoát khỏi Access. Công viêc đã được hoàn thành một

cách tốt đẹp.