ở trên nếu bạn chon Run thì thủ tục Tong được chạy trước và như vậy 2 thủ tục còn lại bị bỏ (không hợp với ý ta), do đó bạn kích v ào thủ tục cần chạy trước (ở đây là thủ tục GOI). Sau khi kích vào thu tục GOI ta có:
Để chạy bạn kích luôn v ào RUN.
Bạn cũng có thể xoá thủ tục bằng việc chọn thủ tục đó v à chọn Delete, còn muốn sửa một thủ tục hãy chọn thủ tục đó và chọn Edit. Ngoài ra bạn muốn xem một thủ tục chạy có hợp ý muốn của bạn hay không bằng cách chon thủ tục đó v à chọn Step Into, sau khi thực hiện một công đoạn, máy sẽ dừng, bạn phải chọn RUN trên thanh Menu và chọn Continue để máy thực hiện tuần tự cho đến hết các lệnh của thủ tục đó.
8.3.2 Đặt các thuộc tính cho điều khiển
Mỗi điều khiển, ví dụ nh ư Nút lệnh (Command Button), Hộp văn bản (Text Box), Nh ãn (Label), v.v..đều có các thuộc tính của nó. Thế thuộc tính l à gì? Hiểu nôm na là “tập hợn các tính chất thuộc điều khiển đó, gọi l à thuộc tính”, ví dụ thuộc tính của Text Box l à: Màu nền xanh, màu chữ đỏ, độ cao 500 điểm ảnh, độ rộng 1000, font chữ vnTime, cỡ chữ 20, lề tr ên 30, lề trái 50, v.v... Ta nên nhớ một điều là:
Mỗi điều khiển đều có một danh sách các thuộc tính, danh sác h này nằm ở trong một cửa
sổ, gọi là cửa sổ thuộc tính (Properties Window)
Khi một điều khiển đã được đặt lên Form, nếu chọn nó (kích vào nó) thì cửa sổ thuộc tính
hiện ra (hay nếu chưa thấy nó, bạn chọn View v à chọn Properties Window)
Thuộc tính được phân chia thành các nhóm: Format (đ ịnh dạng), Data (dữ liệu), Event
(thủ tục đáp ứng sự kiện), Other (nhóm khác) v à All (chứa tất cả các thuộc tính)
Ví dụ hình sau:
Hình trên cho ta biết:
Nút lệnh có tiêu đề là “Mở tệp” đã được chọn (nhận biết qua việc xuất hiện 8 ô vuông ở 4 góc và ở giữa bốn cạnh). Hình vuông to nhất ở góc trên bên trái dùng để di chuyển điều khiển, khi bạn đ ưa trỏ chuột vào hình vuông này, bạn ấn và giữ phím chuột đồng thời kéo, điều khiển sẽ di chuyển theo h ướng kéo của bạn.
Hình bên phải là cửa sổ thuộc tính của nút lệnh có ti êu đề là “Mở tệp”. Cửa sổ này đang hiện nhóm thuộc tính thuộc nhóm Format. Muốn chọn một thuộc tính n ào đó để gán cho nút lệnh này, bạn kích vào ô bên phải ứng với dòng có thuộc tính cần chọn, gõ thuộc tính vào, hoặc tìm thuộc tính đã có sắn (tuỳ theo giao diện t ìm thuộc tính đó).
Nếu bạn kích vào Form, ta có:
Là thuộc tính của Form ứng với nhóm Event. Thao tác về nhóm Event như đã nói ở các phần
trên.
Giả sử ta đặt một nút lệnh lên Form, bình thường trên bề mặt nút lệnh có chữ Command0, nếu tạo nút thứ 2 sẽ có Command1 v.v.. Nếu muốn thay đổi chữ đó h ãy mở cửa sổ Properties, chọn Caption và gõ tiêu đề mới vào. Có nhiều thuộc tính khác nữa nh ư: Name, Font v.v.. Tính chất Name rất quan trọng, nó mang tên của nút lệnh và vì vậy tên thủ tục đáp ứng sự kiện của nó cũng mang t ên này. Nếu bạn chọn nút lệnh, chọn nhóm Other, chọn Name và gõ tên là “MoBang” (hay 1 tên nào đó tuỳ bạn) vào, thì thủ tục đáp ứng sự kiện l à:
Private Sub MoBang_Click()
DoCmd.Opentable “So_luong”
End Sub
Lệnh DoCmd.OpenTable “So_luong”, có 3 phần:
Lớp DoCmd (đây là đối tượng thuộc lớp lệnh)
OpenTable (Mở bảng)
“So-Luong” (tên cụ thể của bảng)
Nghĩa của lệnh là mở bảng (OpenTable) có tên “So _luong” thu ộc lớp DoCmd.
8.4 Các phép toán, hàm, bi ến, biểu thức.
8.4.1 Các phép toán.
a. Các phép toán số học
Mod | : Chia lấy phần dư | |
- : Trừ | : Chia nguyên | |
* : Nhân | ^ | : Luỹ thừa |
/ : Chia |
Có thể bạn quan tâm!
- Tự Động Hoá Ứng Dụng Bằng Macro
- Tổ Chức Và Hoạt Động Của Chương Trình Trong Access
- Quản trị cơ sở dữ liệu Access - Đại học Kinh doanh và Công nghệ Hà Nội - 14
- Quản trị cơ sở dữ liệu Access - Đại học Kinh doanh và Công nghệ Hà Nội - 16
- Quản trị cơ sở dữ liệu Access - Đại học Kinh doanh và Công nghệ Hà Nội - 17
Xem toàn bộ 145 trang tài liệu này.
b. các phép toán so sánh:
>= : Lớn hơn hoặc bằng
<= : Nhỏ hơn hoặc bằng
<> : khác
= : Bằng
< : Nhỏ hơn
> : Lớn hơn
c. các phép toán Logic: AND, OR, NOT
Các phép toán so sánh t ạo nên biểu thức logic cho kết quả True(-1) hoặc False(0)
Y | X And Y | X Or Y | Not (x) | |
-1 | -1 | -1 | -1 | 0 |
-1 | 0 | -1 | -1 | 0 |
0 | 0 | -1 | -1 | -1 |
0 | 0 | 0 | 0 | -1 |
d. Phép ghép chuỗi ký tự
Muốn ghép 2 chuỗi ký tự ta sử sụng phép toán & hoặc dấu +
Ví dụ:
Sub GhepVanBan() Dim ho As String*7
Dim dem As String*7 Dim ten As String*7 Dim name As String *23 ho=”Hoang” dem=”Xuan” ten=”Thao”
name=ho & “ “ & dem & “ “ & ten
MsgBox( “Ho và ten: “ & name) End Sub
Chú ý:
Khai báo: Dim ho As String*7 có nghĩa biến ho là văn bản (String) có độ dài không quá 7 ký tự.
Giữa Họ, đệm và tên phải có một dấu trống (hay c òn gọi là dấu cách) cho dễ đọc, do đó ta phải ghép với 1 dấu cách: & “ “ & (v ì dấu cách cũng là ký tự)
8.4.2 Biểu thức (Expression)
Các biến, hằng, hàm nối với nhau bởi phép toán đ ược gọi là biểu thức, biểu thức cũng có thể chỉ là 1 biến, 1 hằng, 1 hàm. Điều quan trọng là bạn phải viết biểu thức đúng quy định (đúng phép toán đã quy định, đúng tên biến, đúng tên hằng, đúng cách viết hằng v.v..). Ví dụ:
Biểu thức chỉ chứa hằng: (234+678)/13
Biểu thức số chỉ chứa biến: (a+b+c)*(a+b)
Biểu thức số vừa chứa biến và hằng: (a+b)/7
Biểu thức văn bản: “Tin hoc” & “Văn phong”
Biểu thức logic:(5>13) Or (3<9)
...
Nếu bạn viết biểu thức nh ư sau:
12 x 45 (Sai vì phép nhân phải là dấu *)
(Sai vì
phép chia phải là dấu /, v.v..
8.4.3 Các hàm thường sử dụng.
Với các hàm, bạn cũng phải viết đúng theo quy định của Access, ví dụ Sin (x), Cos(x), Sqr(x),
v.v..các hàm như đã trình bày ở chương 5.
8.4.4 Biến
a. Khai báo biến
Biến phải khai báo để ch ương trình xác định:
Tên của biến là gì? vì chương trình sẽ làm việc với tên đó.
Kiểu của biến là gì? (nguyên, thực, logic, văn bản, v.v..) v ì chương trình phải “xếp chỗ” cho các biến “lưu trú”, nghĩa là chương trình phải huy động ô nhớ phù hợp với kiểu của biến, ví dụ nếu biến nguy ên thì ô nhớ “bé”, số thực thì ô nhớ “to”, v.v..Việc khai báo là để xếp chỗ ở của biến (ô nhớ) cho hợp lý, tránh l ãng phí (thừa không gian “lưu trú” hoặc không đủ chỗ để “l ưu trú”)
Dạng khai báo biến như sau:
Dim <Tên biến > [As<kiểu>]
<Tên biến >: Bạn tự đặt theo luật sau: l à một chuỗi các chữ cái, chữ số, dấu gạch chân, độ dài tên không quá 40 ký t ự, không được trùng với các từ khoá có trong Access và đặc biệt ký tự đầu phải là chữ cái..
[As<kiểu>]: Nếu phần này không ghi thì coi nh ư biến đó ngầm định có các kiểu: Kiểu số, chuỗi, Date/Time, Null (rỗng). Khi sử dụng biến đó tuỳ ngữ cảnh m à xác định kiểu sau. Còn nếu ghi phần này thì kiểu có thể là: Nguyên, thực, văn bản, v.v..
Ví dụ về khai báo biến:
Dim i As Interger (i là biến nguyên ngắn) Dim k As Long (k là biến nguyên dài) Dim x As Single (x là biến thực ngắn) Dim y As Double (y là bi ến thực dài) v.v..
Số nguyên ngắn là số nguyên được dùng 2 Byte để lưu nó, bạn đã biết 2 Byte là 16 Bit, dành 1 Bit để biểu diễn dấu của số (số âm hoặc số d ương), còn lại 15 bit. Nếu tất cả 15 bit đều ghi số 1 thì số hệ 2 lớn nhất chứa trong 2 Byte đó là:
111111111111111=214+213+...+21+20 =32.767 (hệ 10). Nghĩa là lớn nhất không quá 32.767. Còn số nguyên dài (Long) lưu trong 4 Byte. V ới cách tính đó thì số nguyên dài là: 1111111111111111111111111111111=2 30+229+228+...+21+20=2.147.483.647. Tương t ự số
thực ngắn (Single) 4 Byte, số thực d ài (Double) 8 Byte, 1 ký t ự 1 Byte, v.v..
Ngoài biến ứng với dữ liệu (Integer, Single,v.v..) c òn có biến ứng với đối tượng như:
CommandButton, TextBox, Label, Database, v.v..Khai báo c ũng như vậy, ví dụ:
Dim M As TextBox Dim Db As Database V.v..
8.5 Một số lệnh về lập trình:
Khi lập trình trong Access, 1 câu l ệnh chỉ được viết trên 1 dòng, nếu muốn viết nhiều câu lệnh
trên 1 dòng ta phải dùng dấu hai chấm (:) để ngăn cách.
Ví dụ: a=4: b=7: s=a+b
Các câu ghi chú, có ý ngh ĩa giải thích rõ chức năng từng hằng, biến, biểu thức, câu lệnh, v.v.. Câu ghi chú phải bắt đầu bằng REM hoặc dấu nháy đ ơn (‘),ví dụv:
Rem Doan ma sau là de vao du lieu
8.5.1 Vào ra dữ liệu
a. Lệnh Inputbox $
Chức năng: Cho phép nhập giá trị kiểu văn bản v ào bộ nhớ từ bàn phím
Cú pháp:
Inputbox$(<Thông báo >[ , [<Tiêu đề >][,<Giá trị ngầm định >]])
Ví dụ: Nhập tên của một khách hàng vào biến Kh
Dim Kh As String *20
Kh=InputBox$( “Tên khách hàng”)
b. Lệnh Inputbox
Chức năng: Cho phép nhập giá trị kiểu Varial v ào từ bàn phím
Cú pháp:
InputBox(<Thông báo >[ , [<Tiêu đề >][,<Giá trị ngầm định >]])
Ví dụ: Nhập số chứng từ của một hoá đ ơn vào biến Sct
Dim Sct
Sct=InputBox( “Số chứng từ”)
c. Lệnh MsgBox
Chức năng: Hiện chuỗi văn bản (thông báo) ra hộp thoại.
Cú pháp:
MsgBox(<Nội dung >[ ,< kiểu>[ ,< Ti êu đề>]])
Ví dụ:
MsgBox (“Hello Thao”
Ví dụ 2: Nhập và tính tổng hai số và in kết quả ra hộp thoại
Sub Tong()
Dim a As Interger, b As Interger
a=InputBox( “vào a=”) b= InputBox( “vào b=”)
Msgbox “Kết quả là:” & Str(a+b)
End Sub
8.5.2 Lệnh gán
Như đã nói qua ở phần đầu lập trình, lệnh gán có dạng:
<Biến>=<Biểu thức >
Ví dụ: s=s+i
Ở đây không phải là “phương trình” hay là “một đẳng thức” để bạn t ùy ý biến đổi. Mà cách viết (s=s+i) phải hiểu là: Lấy nội dung của ô có “t ên s”, cộng với nội dung có “t ên i”, kết quả để ở ô có tên s. Nói đến xử lý dữ liệu thì trước hết phải hiểu là dữ liệu đang nằm ở ô nhớ n ào trong bộ nhớ, việc tương tác 2 ô (hoặc trên 2 ô) sẽ sinh ra kết quả (tổng, tích, th ương, v.v..), kết quả đó cũng phải để ở một ô nhớ xác định. Ô nhớ đó có thể l à một trong các ô chứa toán hạng, hoặc ngoài ô chứa toán hạng:
s=a+b+c (ô nhớ tổng (s) không trùng với ô chứa số hạng)
i=i+1 (ô nhớ tổng (i) trùng với ô toán hạng i.
Ví dụ hai lệnh sau:
s=2 s=s+s
Ban đầu s bằng 2, sau đó lấy nội dung của ô s (l à 2) cộng với nội dung ô s (cũng là 2) kết quả là 4, số 4 này lại để trong ô s. Vậy sau khi thực hiện hai lệnh đó kết quả cuối c ùng trong ô s là 4.
8.5.3 Lệnh rẽ nhánh IF …THEN…END IF
Dạng 1:
If <Biểu thức điều kiện > Then
<Nhóm lệnh >
End If
Hoạt động của lệnh này như sau:
Nếu<Biểu thức điều kiện > đúng th ì thực hiện <Nhóm lệnh >
Nếu<Biểu thức điều kiện > sai th ì bỏ qua lệnh If.
Ví dụ:
Sub XemTuoi()
Dim tuoi As Integer
tuoi=InputBox(“ Vao tuoi cua ban?”)
If tuoi>60 Then
MsgBox( “Chắc bạn nghỉ hưu rồi?”
End If End Sub
Khi chạy chương trình:
Nếu bạn gõ vào 65 (lơn hơn 60) và Enter th ì máy sẽ in ra câu: “Chắc bạn nghỉ h ưu
rồi”.
Còn nếu bạn gõ vào 25 (nhỏ hơn 60) và Enter thì máy không đưa ra gì cả.
Dạng 2:
If <Biểu thức điều kiện > Then
<Nhóm lệnh 1>
Else
<Nhóm lệnh 2>
End If
Hoạt động:
Nếu <Biểu thức điều kiện > đúng thì thực hiện <Nhóm lệnh 1> bỏ <Nhóm lệnh 2> Nếu <Biểu thức điều kiện > sai thì thực hiện <Nhóm lệnh 2> bỏ <Nhóm lệnh 1> Ví dụ 1: Ta sửa lại thủ tục XemTuoi ()để gặp tr ường hợp nào máy cũng trả lời®: Sub XemTuoi()
Dim tuoi As Integer
tuoi=InputBox(“ Vao tuoi cua ban?”)
If tuoi>60 Then
MsgBox( “Chắc bạn nghỉ hưu rồi?”
Else
MsgBox( “Bạn chưa đến tuổi nghỉ hưu!”
End If
End Sub
Ví dụ 2: Lập trình giải phương trình bậc hai: ax2+bx+c=0
Để tính nghiệm phương trình bậc hai này, bạn phải cho máy biết ba giá trị cụ thể ứng với a, b,
c (ở đây kiểu 3 biến ấy l à thực, rõ ràng bạn phải dùng lện InputBox). Nhờ giá trị cụ thể 3 biến
đó bạn tính được Delta, sau đó bạn phải xem xét nếu (If) Delta không âm thì có 2 nghi ệm, nếu
âm thì vô nghiệm. Trình tự đó (giải thuật) được liệt kê như sau:
Sub GPTB2()
Dim a As Double, b As Double, c As Double, Delta As Double Dim x1 As Double, x2 As Double
a= InputBox(“vao a=”) b= InputBox(“vao b=”) c= InputBox(“vao c=”) Delta= b*b – 4*a*c
If Delta>0 Then
x1=(-b+Sqr(Delta))/(2*a) x2=(-b-Sqr(Delta))/(2*a) MsgBox (“x1=” & Str(x1) MsgBox (“x2=” & Str(x2))
Else
MsgBox (“Pt vo nghiem”)
End If
End Sub
8.5.4 Lệnh chọn Select Case
Không phải lúc nào cũng “không thế này thì thế kia” (2 nhánh) mà có những trường hợp bạn phải chọn 1 trong nhiều nhánh, ví dụ: Giả sử bằng tốt nghiệp của bạn có 3 loại: Trung b ình, Khá và Giỏi. Nếu khá thì được thưởng 100.000đ, nếu giỏi được thưởng 200.000đ, còn trung bình thì không được thưởng. Để biết bằng của bạn thuộc loại n ào và được thưởng bao nhiêu “máy suy luận” như sau:
Nếu bằng của bạn thuộc loại trung bình thì “Không được thưởng” (xong)
Còn không phải trung bình thì:
Nếu loại khá thì thưởng 100.000đ (xong)
Còn không phải khá thì:
Thưởng 200.000đ (Xong)
Rõ ràng bạn chỉ chọn 1 trong 3 nhánh đó. C òn nếu không phải cả hai nhánh đầu th ì chắc là giỏi (chẳng lẽ không có loại nào?)
Tuy đơn giản như vậy nhưng “đối với máy” thì cũng phải rõ ràng (chứ không phải “nhìn” là
biết được). Chương trình như sau:
Sub XetThuong()
Dim Loai As Integer
Loai=InputBox( “Vào lo ại: Trung bình gõ vào số1, Khá số2, Giỏi số3”)
Select Loai Case 1
MsgBox( “Bạn không được thưởng”)
Case 2
MsgBox( “Bạn được thưởng 100.000đ”)
Case Else
MsgBox( “Bạn được thưởng 200.000đ”)
End Select End Sub
Khi chạy chương trình, nếu bạn gõ vào số 3 thì máy sẽ in dòng:” Bạn được thưởng 200.000đ”. Nhưng nếu bạn không may gõ nhầm số 6 (gõ nhầm là bình thường mà!) thì máy vẫn thưởng
bạn 200.000đ, mặc dù không có loại nào là loại 6 cả. Để an toàn bạn sửa lại đoan mã trên như sau:
Sub XetThuong()
Dim Loai As Integer
Loai=InputBox( “Vào lo ại: Trung bình gõ vào số1, Khá số2, Giỏi số3”)
Select Loai Case 1
MsgBox( “Bạn không được thưởng”)
Case 2
MsgBox( “Bạn được thưởng 100.000đ”)
Case 3
MsgBox( “Bạn được thưởng 200.000đ”)
Case Else
MsgBox( “Bạn gõ nhầm loại bằng rồi!”)
End Select End Sub
Cú pháp tổng quát của lệnh Select nh ư sau:
Select Case <Biểu thức nguyên >
Case <Giá trị 1>
<Nhóm lệnh 1>
Case <Giá trị 2>
<Nhóm lệnh 2>
………..
Case <Giá trị n >
<Nhóm lệnh n >
[Case Else
<Nhóm lệnh n +1>]
End Select
Nếu <Giá trị i > bằng i th ì thực hiện <Nhóm lệnh i > v à kết thúc lệnh Select Case.
Còn nếu không có 1 trường hợp nào đúng thì hực hiện <Nhóm lệnh n +1> v à cũng kết thúc
luôn lệnh Select Case hoặc ra khỏi Select Case nếu không d ùng lệnh Case Else..
Ví dụ: Tạo một thủ tục lập kế hoạch công tác trong tuần, đặt v ào nút lệnh Command () trên
Form. Khi chạy chương trình và kích hoạt nút lệnh thủ tục được thực hiện:
Private Sub command0_Click()
Dim Thu As Integer
Thu = InputBox( “Bạn cho biết thứ? ”)
Select Case Thu
Case 2
Case 3
Case 4
MsgBox ( “Họp giao ban”) MsgBox ( “Đi xuống phân xưởng”)
MsgBox ( “Đi lên tổng công ty”)
Case 5 Or 6
MsgBox ( “Họp các phân xưởng”)
Case Else
MsgBox ( “Nghỉ”)
End Select