Mục lục.1
GIỚI THIỆU .4
GIÁO TRÌNH LÝ THUYẾT.5
TÀI LIỆU THAM KHẢO.5
HƯỚNG DẪN PHẦN LÝ THUYẾT .6
Bài 1: MÀN HÌNH LÀM VIỆC CỦA ỨNG DỤNG.6
I. Giới thiệu đối tượng Form .7
I.1. Giới thiệu về thuộc tính của đối tượng.7
I.2. Các thuộc tính thường dùng của Form.9
II. Dạng màn hình thường gặp.11
II.1. Columnar .11
II.2. Tabular .11
II.3. Datasheet .12
III. Môi trường thiết kế màn hình làm việc.12
III.1. Tạo màn hình làm việc bằng Wizard.12
III.2. Môi trường Design của Form.13
Bài 2: THIẾT KẾ CÁC DẠNG MÀN HÌNH . 15
I. Các điều khiển.16
I.1. Những thành phần của Form.17
I.2. Một số thao tác chung trên điều khiển .18
I.3. Nhóm điều khiển văn bản .20
I.4. Nhóm điều khiển chọn lựa .22
I.5. Điều khiển liên kết dữ liệu.25
II. Các bước tạo màn hình làm việc.26
II.1. Chọn nguồn dữ liệu.26
II.2. Dạng hiển thị của Form.27
II.3. Tạo các điều khiển hiển thị dữ liệu .27
II.4. Tạo những điều khiển chức năng.28
II.5. Xem kết quả thiết kế - Hiệu chỉnh thiết kế .29
III. Tạo màn hình dạng main – sub.29
III.1. Điều khiển Subform/Subreport.29
III.2. Các bước thiết kế màn hình main – sub.30
IV. Truyền dữ liệu giữa các màn hình.31Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 2/131
IV.1. Nguyên tắc chung .32
IV.2. Lấy dữ liệu của Form Sub .32
V. Thiết kế các dạng màn hình .33
V.1. Màn hình đơn.33
V.2. Màn hình main – sub .39
Bài 3: NGÔN NGỮ LẬP TRÌNH VBA . 45
I. Môi trường lập trình trong Microsoft Access .46
I.1. Cơ chế lập trình Thủ tục – Sự kiện.46
I.2. Cửa sổ viết lệnh cho các xử lý trong thủ tục của sự kiện.47
II. Những thành phần cơ bản trong ngôn ngữ VBA.49
II.1. Đặc điểm của ngôn ngữ VBA.49
II.2. Biến .50
II.3. Cấu trúc điều khiển .54
II.4. Hàm và thủ tục.59
Bài 4: HÀM VÀ BỘ LỆNH THƯỜNG DÙNG TRÊN FORM. 62
I. Hàm/Thủ tục thường dùng.63
I.1. Nhóm hàm xử lý giá trị .63
I.2. Nhóm hàm thao tác dữ liệu .70
II. Bộ lệnh DoCmd.72
II.1. GoToRecord .72
II.2. OpenForm, OpenReport, OpenQuery.73
II.3. RunCommand .74
II.4. RunSQL.74
II.5. Close .74
Bài 5: THIẾT KẾ MÀN HÌNH DI CHUYỂN, TÌM KIẾM DỮ LIỆU. 76
I. Di chuyển dữ liệu trên màn hình làm việc .77
I.1. Thao tác di chuyển dữ liệu trên Form.77
I.2. Xử lý di chuyển bằng nút lệnh.79
I.3. Xử lý lỗi khi di chuyển .81
II. Tìm kiếm thông tin.83
II.1. Sử dụng DoCmd.84
II.2. Dùng RecordsetClone .85
Bài 6: THIẾT KẾ MÀN HÌNH THAO TÁC DỮ LIỆU . 88
I. Giới thiệu về các ràng buộc trên bảng dữ liệu .89
I.1. Khoá chính .89
I.2. Khoá ngoại .89
II. Chức năng thêm mới.89
II.1. Thêm dữ liệu trên Form.89Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 3/131
II.2. Cách thức thêm mới dữ liệu .90
III. Chức năng sửa dữ liệu.92
III.1. Cơ chế sửa dữ liệu trên Form.92
III.2. Thiết kế chức năng sửa dữ liệu .92
III.3. Các bước thực hiện .93
III.4. Ví dụ .94
IV. Xử lý dữ liệu thay đổi .94
IV.1. Lưu dữ liệu trên Form xuống bảng .95
IV.2. Kiểm tra ràng buộc khi lưu .98
IV.3. Không lưu dữ liệu mới thay đổi trên Form .103
V. Thao tác xoá dữ liệu.104
V.1. Cách thức xoá mẫu tin trên Form.105
V.2. Kiểm tra ràng buộc khi xoá dữ liệu của bảng.106
VI. Chức năng mở báo cáo .109
VI.1. Tạo chức năng mở báo cáo.109
VI.2. Ví dụ .110
Bài 7: XÂY DỰNG HỆ THỐNG THỰC ĐƠN.111
I. Giới thiệu về hệ thống thực đơn .112
I.1. Thanh lệnh.112
I.2. Phân loại .112
II. Thiết kế hệ thống thực đơn.113
II.1. Thêm mới thanh lệnh .113
II.2. Thiết kế chức năng trên thanh lệnh.115
II.3. Xoá thanh lệnh .117
Bài 8: GIỚI THIỆU VỀ MACRO .118
I. Đối tượng Macro.119
I.1. Ý nghĩa .119
132 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 483 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình Chứng chỉ Tin học quốc gia trình độ B, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ng hành động sẽ thực hiện không theo thứ tự từ
trên xuống dưới. Có hai loại cấu trúc điều khiển là cấu trúc lựa chọn và cấu trúc lặp.
II.3.1. Cấu trúc lựa chọn
Như đã trình bày ở trên thì trong một đoạn lệnh, các lệnh sẽ được thực hiện lần lượt từ trên
xuống dưới cho đến lệnh cuối cùng, nghĩa là tất cả những lệnh trong đoạn lệnh được thực thi
ít nhất là một lần. Tuy nhiên, khi xử lý cho những trường hợp khác nhau của cùng một sự kiện
ta có thể lựa chọn lệnh nào sẽ được thực hiện theo một điều kiện nào đó.
Để chọn lệnh thực thi theo điều kiện, ngôn ngữ lập trình cung cấp cho ta một cấu trúc gọi là
cấu trúc lựa chọn. Trong VBA, ta có hai cách viết cấu trúc lựa chọn tuỳ theo trường hợp cụ
thể.
Cú pháp If
Cú pháp này thường được sử dụng trong trường hợp ta phải chọn một trong hai trường hợp để
thực thi câu lệnh.
Cú pháp của If có dạng như sau:
If Then
End If
Trong cách viết trên, chính là yếu tố quyết định để được thực thi hay
không. Các từ If Then End If là những từ khoá của VBA.
là một hay nhiều biểu thức so sánh, kết quả của phép so sánh phải trả về một
trong hai giá trị là True hay False, ở đây True có nghĩa là khác không và False là bằng không.
Nhiều biểu thức điều kiện có thể được nối với nhau thông qua phép toán And hay Or, lưu ý là
phải nhóm các biểu thức khi có nhiều phép toán khác nhau. Ví dụ:
If ( And ) Or Then
End If
Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 55/131
ở đây có thể là một lệnh, hay một nhóm các lệnh, có thể là một câu lệnh If khác.
Những lệnh này chỉ được thực thi khi giá trị trả về của biểu thức điều kiện là True. Như vậy ta
thấy rằng khi chương trình thực thi đến khối lệnh của cấu trúc If thì những lệnh trong If được
thực thi hay không tuỳ vào kết quả của biểu thức điều kiện trong câu lệnh If.
Cú pháp If còn có một cách viết khác như sau:
If Then
Else
End If
Ở cú pháp này, ta thấy If có hai vùng lệnh: vùng thứ nhất từ If cho đến Else và vùng thứ hai
từ sau Else cho đến End If, Else là từ khoá của VBA. Khi chương trình thực thi đến đoạn lệnh
của If thì chỉ có đúng một vùng lệnh được thi hành.
Nếu giá trị của biểu thức điều kiện là True thì vùng lệnh thứ nhất được thực hiện, sau
khi thực hiện xong thì chương trình tiếp tục thực hiện các lệnh sau End If nếu có.
Nếu biểu thức điều kiện có giá trị là False thì vùng lệnh thứ hai được thực hiện, sau đó
thực hiện tiếp những lệnh sau End If nếu có.
Như vậy, tại một thời điểm chỉ có một vùng lệnh của cấu trúc được thực hiện cho dù giá trị
của điều kiện là đúng hay sai.
Ngoài ra, ta còn có thể kết hợp nhiều biểu thức điều kiện vào cấu trúc If, cấu trúc có nhiều
trường hợp để chọn lựa, cú pháp như sau:
If Then
ElseIf then
...
ElseIf then
Else
End If
Cú pháp Select Case
Trong trường hợp cần chọn lựa xử lý từ một biểu thức mà giá trị của nó có nhiều hơn hai kết
quả thì cấu trúc Select Case sẽ là giải pháp hợp lý hơn.
Xét trường hợp sau: giả sử ta có một biến X có giá trị thay đổi từ 1 đến 9 tuỳ theo thời điểm.
Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 56/131
Chương trình yêu cầu chuyển giá trị số lưu trong X thành dạng chuỗi tương ứng và lưu vào
biến chuỗi Y, chẳng hạn như nếu X là số 1 giá trị của Y sẽ là “một”.
Thể hiện bài toán này bằng cú pháp If như sau:
If X = 1 Then
Y = “một”
ElseIf X = 2 then
Y = “hai”
ElseIf X = 3 then
Y = “ba”
...
End If
Với cú pháp If như trên, ta thấy biểu thức điều kiện lập lại là X = 1, X = 2, tức là cùng một
biểu thức nhưng so sánh với nhiều giá trị khác nhau. Điều này làm cho cú pháp If trở nên dài
và trùng lắp các câu lệnh kiểm tra.
Do đó, người ta sử dụng cấu trúc chọn của Select Case sẽ tránh được những khuyết điểm
của If, cú pháp có dạng như sau:
Select Case
Case tập_giá_trị_1
[Khối lệnh 1]
Case tập_giá_trị_2
[Khối lệnh 2]
Case Else
[Khối lệnh n]
End Select
Tập giá trị có thể là:
Một tập các giá trị rời rạc: Case 1, 3, 5, 7, 8, 10, 12
Tập các giá trị liên tục: Case 5 To 10
Biểu thức so sánh: Case Is >= 8, Case Is < 0 hay Case Is <= a + b
Kết hợp các kiểu trên: Case 5,7, 10 To 25, 45 To 55
Trong cấu trúc Select Case trên ta thấy xuất hiện nhiều khối lệnh, tại một thời điểm chỉ có
một khối lệnh được thực hiện. Khối lệnh sẽ được thi hành là khối lệnh nằm trong vùng của
câu lệnh Case mà tập giá trị của nó có chứa giá trị của Biểu thức giá trị ở câu lệnh Select
Case.
Ta có thể viết lại bài toán đổi số trong X vào chuỗi Y bằng cú pháp của Select Case như sau:
Select Case X
Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 57/131
Case 1
Y = “một”
Case 2
Y = “hai”
...
Case Else
Y = “chín”
End Select
Ta nên sử dụng cấu trúc Select Case cho những biểu thức trả về nhiều giá trị rời rạc. Không
nên dùng cho các biểu thức trả về giá trị đúng/sai. Lấy ví dụ: tính số ngày trong một tháng,
đổi tên một thứ trong tuần của tiếng Việt sang tiếng Anh,
II.3.2. Cấu trúc lặp
Về nguyên tắc thì khi chương trình thực hiện một khối lệnh thì các lệnh trong khối sẽ được thi
hành đúng một lần, nếu không dùng cấu trúc rẽ nhánh. Tuy nhiên, đôi khi ta cần thi hành
một hay một số lệnh nhiều lần tại một thời điểm thì mới xử lý được những yêu cầu của bài
toán.
Do đó, bất kỳ ngôn ngữ nào cũng cung cấp một cú pháp để ta có thể thi hành các câu lệnh
với số lần lặp theo điều kiện cho trước. Với VBA thì ta có nhiều cú pháp lặp khác nhau, ở đây
ta sẽ tìm hiểu hai dạng thường dùng là For và Do While.
Cú pháp lặp dùng For
Vòng lặp For được tạo với cú pháp như sau:
For Biến chạy = Giá trị đầu To Giá trị cuối [Step Bước nhảy]
[Exit For]
[Khối lệnh lặp 2]
Next [Biến chạy]
Trong cú pháp trên ta sẽ có khối lệnh lặp nằm trong vùng của từ khoá For cho đến từ khoá
Next. Khối lệnh này sẽ được lặp với số lần xác định bởi Giá trị đầu và Giá trị cuối.
Để vòng lặp này thực thi ta cần một thành phần quan trọng đó là Biến chạy. Biến chạy chính
là điều kiện để bắt đầu và kết thúc số lần lặp của khối lệnh.
Giá trị đầu của Biến chạy có thể là một con số âm hay dương. Trong quá trình thực hiện
vòng lặp, giá trị của biến chạy có thể tăng lên hay giảm xuống bằng cách cộng với giá trị của
Bước nhảy. Bước nhảy có thể là một con số lớn hơn 0 hay nhỏ hơn 0.
Từ khoá To trong cú pháp chính là biểu thức điều kiện xác định thời điểm dừng của vòng lặp
bằng cách so sánh giá trị của Biến chạy với Giá trị cuối, phép toán của biểu thức điều kiện
Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 58/131
là phép so sánh lớn hơn hay nhỏ hơn tuỳ thuộc vào Bước nhảy:
Nếu bước nhảy lớn hơn 0 thì phép toán của biểu thức điều kiện dừng là phép so sánh
lớn hơn, khi đó biểu thức điều kiện dừng có dạng: Biến chạy > Giá trị cuối. Có nghĩa là
vòng lặp này sẽ dừng nếu giá trị của biến chạy lớn hơn Giá trị cuối.
Nếu bước nhảy nhỏ hơn 0 thì phép toán của biểu thức điều kiện dừng là phép so sánh
nhỏ hơn, khi đó biểu thức điều kiện dừng có dạng: Biến chạy < Giá trị cuối. Có nghĩa
là vòng lặp sẽ dừng nếu giá trị của biến chạy nhỏ hơn Giá trị cuối.
Khi chương trình gặp đoạn lệnh For, trước tiên chương trình sẽ gán giá trị cho Biến chạy bằng
Giá trị đầu. Sau đó, chương trình sẽ kiểm tra biểu thức điều kiện dừng:
Nếu giá trị của biểu thức là False thì chương trình sẽ bỏ qua các lệnh bên trong For và
Next, đồng thời thực hiện tiếp những lệnh bên dưới Next nếu có.
Nếu giá trị của biểu thức điều kiện dừng là True thì các lệnh bên dưới For sẽ được
thực hiện.
Sau khi thực hiện các lệnh bên trong For chương trình sẽ gặp từ khoá Next, khi này chương
trình sẽ làm thao tác là:
Gán giá trị cho biến chạy bằng cách cộng dồn giá trị của nó với giá trị của Bước nhảy.
Kiểm tra điều kiện dừng với giá trị mới của Biến chạy, cách xử lý tương tự như trên.
Câu lệnh Exit For có thể sử dụng hoặc không. Khi gặp câu lệnh này chương trình sẽ bỏ qua
tất cả những lệnh phía sau nó và thực hiện tiếp những câu lệnh dưới từ khoá Next. Exti For
thường được sử dụng để thoát khỏi vòng lặp, bỏ qua điều kiện dừng, sau khi đã đạt được kết
quả cần tìm nhằm tăng tốc độ xử lý cho chương trình.
Ví dụ:
Tính tổng các số chẵn nhỏ hơn 100:
Dim i As Integer, Tong As Integer
Tong = 0
For i = 2 To 98 Step 2
Tong = Tong + i
Next i
Cấu trúc lặp Do While
Do While cũng dùng để xây dựng vòng lặp cho các xử lý nhưng ở đây nó có sự khác biệt cơ
bản so với For và có một số trường hợp ta không thể sử dụng For để tạo cấu trúc lặp.
Đối với cú pháp For bạn cần phải xác định được giá trị đầu và giá trị cuối, và quan trọng nhất
là giá trị cuối, đó là giá trị xác định thời điểm dừng của vòng lặp. Nghĩa là ta chỉ có thể viết
cấu trúc For khi đã biết được thời điểm dừng của vòng lặp, khi đó ta sẽ biết chắc là các lệnh
trong vòng lặp thực hiện tối đa là bao nhiêu lần. Ngoài ra, Giá trị cuối của For chỉ được xác
định duy nhất trong lần chạy đầu tiên của vòng lặp, từ đó cho đến lúc kết thúc vòng lặp thì
giá trị này là không đổi, ta có thể thay đổi giá trị nhưng đối với For thì nó vẫn lấy giá trị cũ.
Tuy nhiên, trong một số bài toán thì số lần lặp của các câu lệnh không thể biết trước được, ví
Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 59/131
dụ ta muốn tìm một số mà tổng từ 1 đế số đó nhỏ hơn 10000. Ở đây ta chỉ biết được điều
kiện dừng là tổng nhỏ hơn 10000 nhưng số lần tính tổng để tìm con số cuối cùng là không thể
biết trước được và ta không thể xác định giá trị cuối là bao nhiêu cho hợp lý nhất.
Do đó, trong những trường hợp không xác định được số lần lặp của vòng lặp, người ta sẽ sử
dụng cấu trúc Do While để giải quyết bài toán, cú pháp của Do While như sau:
Do While
[ Exit Do ]
[ Khối lệnh lặp 2 ]
Loop
Điều kiện ở đây sẽ là một biểu thức so sánh với kết quả trả về là True hay False, đôi khi ta
cũng có thể sử dụng một hằng số để lập liên tục. Giá trị của biểu thức điều kiện có thể thay
đổi theo các câu lệnh lặp bên trong.
Khối lệnh lặp sẽ được thực hiện trong khi mà Điều kiện còn trả về giá trị True, cách thực thi
và kiểm tra điều kiện cũng giống như For.
Ta cũng có thể thoát khỏi vòng lặp mà không cần quan tâm đến giá trị của điều kiện bằng
câu lệnh Exit Do.
Cú pháp Do While có thể xây dựng tất cả các vòng lặp khi viết chương trình, nó có thể thay
thế cho For. Nhưng ngược lại For không thể thay thế được Do While trong những vòng lặp
không xác định.
II.4. Hàm và thủ tục
II.4.1. Hàm và thủ tục
Trong ngôn ngữ lập trình thì đơn vị nhỏ nhất gọi là lệnh, tập hợp nhiều lệnh gọi là khối lệnh.
Một chương trình thì có thể có nhiều khối lệnh cùng thực hiện một chức năng xử lý, nhằm dễ
dàng trong việc quản lý các khối lệnh ta dùng một đơn vị lớn hơn gọi là hàm hay thủ tục.
Việc nhóm các lệnh thành Hàm và Thủ tục giúp chương trình dễ đọc, dễ sửa. Ngoài ra, ta có
thể dễ dàng sử dụng lại những lệnh giống nhau ở những vị trí khác nhau mà không phải viết
lại toàn bộ những lệnh cần dùng.
Hàm và Thủ tục giống nhau về sử dụng, chúng dùng để chứa một nhóm các lệnh tạo ra kết
quả xử lý và các lệnh đó luôn được thực thi cùng nhau. Tuy nhiên, chúng có một điểm khác
biệt cơ bản và cần thiết.
Thủ tục dùng để chứa một số lệnh, khi cần sử dụng các lệnh ta chỉ cần chỉ định thủ tục chứa
lệnh cần dùng. Thủ tục mà ta thường sử dụng nhất đó chính là xử lý các điều khiển. Mỗi xử lý
trong sự kiện của điều khiển sẽ dựa trên một thủ tục ứng với sự kiện phát sinh, các lệnh trong
thủ tục sẽ được thực thi khi điều khiển phát sinh sự kiện.
Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 60/131
Còn Hàm là một trường hợp đặc biệt của thủ tục. Nó ngoài khả năng chứa các lệnh cần gom
nhóm và gọi lại khi cần, hàm còn có thể trả về thông tin sau khi các lệnh trong hàm thực thi
xong. Có nghĩa là sau khi thực thi các lệnh của hàm ta có thể nhận về giá trị của các xử lý có
trong hàm.
II.4.2. Cú pháp
Để tạo ra các hàm hay thủ tục ta sử dụng cú pháp có dạng sau:
Cú pháp tạo thủ tục
Sub TenThuTuc(ThamSo1, ThamSo2, )
Các lệnh có trong thủ tục
End Sub
Cú pháp tạo hàm
Function TenHam(ThamSo1, ThamSo2, ) As KieuDuLieuTraVe
Các lệnh có trong hàm
TenHam = Giá trị trả về
End Function
Một Thủ tục sẽ bắt bằng từ khoá Sub và kết thúc là End Sub, còn Hàm thì bắt đầu là
Function và kết thúc là End Function.
Trong cú pháp trên, có một thành phần quan trọng đó là các Tham số trong dấu ngoặc tròn.
Hai dấu ngoặc tròn bắt buộc phải có, còn tham số thì có hay không cũng được. Các tham số
được khai báo giống như khai báo biến, nhưng không có từ khoá Dim, có dạng như sau:
TenThamSo As KieuDuLieu.
Tham số của hàm/thủ tục là nơi chuyển thông tin từ bên ngoài vào cho các lệnh xử lý bên
trong của hàm/thủ tục. Thao tác truyền thông tin từ bên ngoài vào hàm/thủ tục thông qua
tham số gọi là truyền giá trị cho tham số.
Bằng cách sử dụng tham số ta có thể tạo ra một hàm/thủ tục có nhiều ý nghĩa sử dụng bằng
cách thay đổi giá trị truyền cho tham số tại một thời điểm nhất định.
Đối với hàm thì ta còn có thành phần As KieuDuLieuTraVe, KieuDuLieuTraVe là một trong
những kiểu dữ liệu của VBA, dùng để chỉ định kiểu giá trị sẽ được trả ra bên ngoài sau khi
thực thi các lệnh có trong hàm. Để trả giá trị ra bên ngoài thì trong hàm ta cần phải có câu
lệnh TenHam = Giá trị trả về. Giá trị trả về phải cùng kiểu với kiểu dữ liệu đã khai báo ở
trong phần tạo hàm.
Nội dung của Hàm/Thủ tục có thể chứa bất kỳ lệnh, nhóm lệnh, cấu trúc điều khiển, theo
đúng cú pháp của VBA.
Cấu trúc Hàm/Thủ tục có thể được khai báo ở bất kỳ vị trí nào trong cửa sổ viết lệnh, nhưng
không được lồng vào vùng lệnh của những hàm/thủ tục khác.
Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 61/131
II.4.3. Sử dụng
Sau khi đã nhóm các thành thành Hàm/Thủ tục, ta có thể dễ dàng sử dụng các lệnh bằng
cách gọi thực thi hàm/thủ tục tương ứng.
Để gọi thực thi một thủ tục ta chỉ cần viết tên của thủ tục tại vị trí cần thực hiện nhóm lệnh
mà thủ tục lưu trữ.
Nếu thủ tục có sử dụng tham số, ta phải truyền giá trị cho tất cả các tham số đã được khai
báo khi tạo thủ tục. Giá trị truyền cho tham số của thủ tục có thể là một biến chứa giá trị hay
là một hằng số cụ thể. Mỗi giá trị các nhau bởi dấu phẩy (,) theo đúng thứ tự khai báo tham
số.
Khi gọi thực thi thủ tục ta sẽ bỏ hai dấu ngoặc tròn, giá trị truyền cho tham số đầu tiên của
thủ tục sẽ cách tên thủ tục bởi một dấu khoảng trắng.
Ví dụ:
Nếu ta có một khai báo cho thủ tục như sau
Sub ThongTin (strHoTen As String)
...
End Sub
Để sử dụng các lệnh bên trong thủ tục trên khi cần ta sẽ gọi thực thi thủ tục đó tại vị trí cần
sử dụng như sau:
ThongTin “Chứng Chỉ Lập Trình Microsoft Access”
Hàm luôn trả về một giá trị nên ta cần phải có thao tác nhận giá trị trả về của hàm để xứ lý.
Ngoài ra, khi gọi hàm luôn có cặp dấu ngoặc tròn phía sau tên hàm, nếu hàm có tham số thì
giá trị của chúng nằm trong dấu ngoặc tròn.
Ví dụ:
Nếu ta có một hàm tính tổng hai số như sau:
Function TinhTong(So1 As Integer, So2 As Integer) As Integer
TinhTong = So1 + So2
End Function
Khi gọi thực thi hàm ta cần khai báo một biến để lưu giá trị mà hàm tính toán được, các câu
lệnh sau:
Dim intKq as Integer
intKq = TinhTong(4, 5)
Sau khi thực hiện 2 câu lệnh trên, giá trị của intKq sẽ là 9
Hàm/Thủ tục có thể được gọi ở bất kỳ nhóm lệnh nào, thông thường nó được gọi trong một
hàm hay thủ tục xử lý tính toán khác.
Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 62/131
Bài 4
HÀM VÀ BỘ LỆNH THƯỜNG DÙNG
TRÊN FORM
Tóm tắt
Lý thuyết 4 tiết - Thực hành 0 tiết
Mục tiêu Các mục chính Bài tập bắt
buộc
Bài tập làm
thêm
Bài học này giúp học viên
biết những hàm/ thủ tục do
ngôn ngữ VBA cung cấp
nhằm hỗ trợ người lập trình
trong việc xây dựng ứng
dụng. Học viên sẽ có một
cái nhìn tổng quan những
chức năng của màn hình
thông qua bộ lệnh DoCmd.
Sau khi kết thúc bài học,
học viên có thể:
9 Biết và sử dụng những
hàm và thủ tục của
VBA khi cần thiết.
9 Làm quen những lệnh
quan trọng khi xây
dựng màn hình làm
việc bằng Microsoft
Access: bộ lệnh
DoCmd.
I. Hàm/Thủ tục thường dùng
II. Bộ lệnh DoCmd
Không có
Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 63/131
I. Hàm/Thủ tục thường dùng
Ngôn ngữ VBA ngoài những thành phần đã giới thiệu trong bài trước, nó còn hỗ trợ một số
hàm thư viện giúp người lập trình rất nhiều trong việc viết Code. Hàm/ thủ tục của VBA có thể
chia thành hai nhóm lớn: nhóm hàm xử lý tính toán trên kiểu dữ liệu và nhóm hàm xử lý dữ
liệu.
I.1. Nhóm hàm xử lý giá trị
Nhóm hàm xử lý giá trị chủ yếu xử lý trên những kiểu dữ liệu cơ bản như số, chuỗi, ngày giờ,
I.1.1. Hàm thông báo: MsgBox
Đây là một hàm thường được sử dụng nhiều nhất khi viết chương trình, khi hàm này được gọi
nó sẽ hiện một cửa sổ thông báo với nội dung có thể thay đổi tuỳ theo yêu cầu.
MsgBox có thể được sử dụng như là một thủ tục hay một hàm. Nếu là thủ tục, MsgBox chỉ
đơn giản là cung cấp thông tin cho người dùng. Nếu là hàm, MsgBox mang ý nghĩa vừa cung
cấp thông tin vừa nhận lại giá trị hồi đáp của người dùng.
Sử dụng MsgBox như là một thủ tục theo cú pháp sau:
MsgBox “Nội dung thông báo”, Bộ nút + Biểu tượng, “Tiêu đề”
Ví dụ:
Nếu ta có một câu lệnh như sau
MsgBox “Xin chao cac ban”, vbOKOnly + vbInformation, “Su dung”
Khi chương trình thực thi câu lệnh trên, ta sẽ thấy trên màn hình xuất hiện cửa sổ có dạng
như hình sau:
Trong hình trên, hình xuất hiện bên trái câu “Xin chao cac ban” chính là biểu tượng của cửa
sổ thông báo, hình dạng của biểu tượng sẽ được xác định thông qua một giá trị hằng số,
trong ví dụ trên là vbInformation. Ta có một số hằng số ứng với các biểu tượng như sau:
vbInformation
vbQuestion
vbCritical
Hình dạng của các biểu tượng có thể khác tuỳ vào hệ điều hành bạn đang sử dụng.
Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 64/131
Nút OK bên dưới chính là bộ nút của hộp thoại. MsgBox có nhiều bộ nút khác nhau tuỳ theo
nhu cầu sử dụng và để chọn bộ nút ta sẽ chỉ định một trong những hằng số sau:
vbOKOnly
vbYesNo
vbYesNoCancel
vbOKCancel
Giá trị của bộ nút và biểu tượng có thể kế hợp với nhau thông qua phép toán +, như trong ví
dụ
Nội dung của tiêu đề sẽ hiển thị ở vùng trên cùng của hộp thoại thông báo, trong ví dụ trên
tiêu đề sẽ có dạng
Trong cú pháp trên của MsgBox, ta có thể bỏ qua việc truyền giá trị cho tham số thứ 2 và thứ
3. Khi đó, hộp thoại sẽ tự động lấy giá trị mặc định cho tham số thứ hai là vbOKOnly và tham
số thứ là ba là chuỗi “Microsoft Access”.
Sử dụng MsgBox như là một hàm:
Khi dùng MsgBox ở dạng hàm ta cần chú ý một điểm quan trọng là nhận giá trị trả về của nó.
Giá trị trả về của MsgBox sẽ phụ thuộc vào bộ nút của hộp thoại, hộp thoại phải có ít nhất
hai nút để người dùng có thể chọn lựa.
Tuỳ vào bộ nút sử dụng, kết quả trả về của MsgBox có thể là một trong những giá trị sau:
vbYes, vbNo, VbOK, vbCancel.
Sử dụng MsgBox để thông báo và nhận kết quả trả lời từ người sử dụng ta cần thực hiện một
số lệnh sau:
Khai báo một biến để nhận kết quả trả lời của người sử dụng.
Gọi thực thi hàm MsgBox với những tham số cần thiết và gán giá trị trả về cho biến đã
khai báo ở trên.
Thực hiện thao tác xử lý tuỳ theo giá trị của biến kết quả.
Cú pháp như sau:
Dim intKq as Integer
intKq = MsgBox(“Ban se chon Yes hay No?”, vbYesNo + vbQuestion, “Su dung ham”)
If intKq = vbYes then
MsgBox “Ban da chon nut Yes”
Else
MsgBox “Ban da chon nut No”
End if
I.1.2. Len, Left, Mid, Right
Đây là những hàm xử lý chuỗi thường dùng trong quá trình xây dựng ứng dụng. Các hàm này
Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 65/131
sẽ nhận vào một chuỗi và trả về kết quả xử lý chuỗi tương ứng.
Len
Hàm này cho biết số ký tự có trong một chuỗi, giá trị trả về là một con số nguyên lớn hơn hay
bằng 0.
Cú pháp:
Len(Chuoi As String) As Long
Ví dụ:
Dim lngKq As Long
lngKq = Len(“ABCDEF”)
Trong ví dụ trên, giá trị của biến lngKq sau khi thực hiện câu lệnh Len là 6.
Left
Hàm này dùng để lấy số ký tự từ bên trái của một chuỗi, giá trị trả về là chuỗi gồm những ký
tự lấy được.
Cú pháp:
Left(Chuoi As String, SoKyTu As Long) As String
Ví dụ:
Dim strKq As String
strKq = Left(“ABCDEF”, 4)
Trong ví dụ trên, giá trị của biến strKq sau khi thực hiện câu lệnh Left là chuỗi “ABCD”.
Right
Hàm này dùng để lấy số ký tự từ bên phải của một chuỗi, giá trị trả về là chuỗi gồm những ký
tự lấy được.
Cú pháp:
Right(Chuoi As String, SoKyTu As Long) As String
Ví dụ:
Dim strKq As String
strKq = Right(“ABCDEF”, 4)
Trong ví dụ trên, giá trị của biến strKq sau khi thực hiện câu lệnh Right là chuỗi “CDEF”.
Mid
Hàm này có thể thay thế cho hàm Left và Right, dùng để lấy số ký tự từ một vị trí bất kỳ có
trong chuỗi, vị trí đầu tiên của chuỗi bắt đầu từ 1, giá trị trả về là chuỗi gồm những ký tự lấy
được.
Cú pháp:
Tài liệu hướng dẫn giảng dạy
Chứng chỉ B Tin Học Quốc Gia Trang 66/131
Mid(Chuoi As String, ViTri As Long, SoKyTu As Long) As String
ViTri trong cú pháp trên sẽ là một con số biến thiên từ 1 đến chiều dài của chuỗi ký ký truyền
vào cho Mid.
Ví dụ:
Dim strKq As String
strKq = Mid(“ABCDEF”, 3, 3)
Trong ví dụ trên, giá trị của biến strKq sau khi thực hiện câu lệnh Mid là chuỗi “CDE”.
Ngoài ra, ta có thể bỏ qua tham số thứ 3, SoKyTu, khi đó hàm Mid sẽ lấy những ký tự từ ViTri
cho đến hết chuỗi. Với cách sử dụng này thì kết quả của hàm Mid giống với hàm Right.
Ví dụ:
Dim s
Các file đính kèm theo tài liệu này:
- giao_trinh_chung_chi_tin_hoc_quoc_gia_trinh_do_b.pdf