3.3.1. CẤU TRÚC LỆNH GÁN
- Cú pháp: <tên biến>=<biểu thức>
Trong đĩ: <biểu thức> cĩ thể là hằng, biến, hàm hoặc biểu thức thực sự
- Ý nghĩa: lệnh thực hiện lấy giá trị của biểu thức làm nội dung cho biến cĩ tên
được chỉ định trong cú pháp. - Ví dụ:
a=3 ‘ biểu thức trong lệnh này là một hằng số nguyên. b=a ‘ biểu thức trong lệnh này là một tên biến khác. c=sqr(4) ‘ biểu thức trong lệnh này là hàm căn bậc 2. d=a+b+c ‘biểu thức trong lệnh này là một biểu thức số học.
3.3.2. CẤU TRÚC ĐIỀU KHIỂN IF…END IF a) CẤU TRÚC IF KHUYẾT DẠNG MỘT LỆNH a) CẤU TRÚC IF KHUYẾT DẠNG MỘT LỆNH
- Cú pháp:
If <Điều kiện> Then <lệnh>
- Ý nghĩa: Nếu <Điều kiện> là đúng thì thực hiện <lệnh>, ngược lại khơng làm
gì cả.
- Ví dụ:Hàm TimMax cĩ chức năng tìm giá trị lớn nhất của 2 giá trị chứa trong tham số A, B.
Hình 3.24: Sử dụng If thiếu để tìm số lớn nhất
b) CẤU TRÚC IF KHUYẾT DẠNG NHIỀU LỆNH
- Cú pháp:
If <Điều kiện> Then
<Khối lệnh>
End If
- Cú pháp:
If <Điều kiện> Then <lệnh 1> Else <lệnh 2>
- Ý nghĩa: Nếu <Điều kiện> là Đúng thì thực hiện <lệnh 1>, ngược lại, nếu
<Điều kiện> là Sai thì thực hiện <lệnh 2>.
- Thí dụ: Đoạn chương trình cĩ chức năng tìm số lớn nhất trong 2 số nguyên A và B.
If A>B then Max=A Else Max=B
d) CẤU TRÚC IF ĐỦ DẠNG MỘT LỆNH
- Cú pháp:
If <Điều kiện> Then
<Khối lệnh 1>
Else
<Khối lệnh 2>
End If
Trong đĩ <Khối lệnh 1>, <Khối lệnh 2> cĩ thể là một lệnh hoặc nhiều lệnh.
- Ý nghĩa: Nếu <Điều kiện> là đúng thì thực hiện <Khối lệnh 1>, ngược lại, nếu
<Điều kiện> là Sai thì thực hiện <Khối lệnh 2>
- Thí dụ:Đoạn chương trình cĩ chức năng tìm giá trị lớn nhất và giá trị nhỏ nhất trong 2 số A và B. If A>B then Max=A Min=B Else Max=B Min=A
End If
e) CẤU TRÚC IF DẠNG PHỨC TẠP NHIỀU TRƯỜNG HỢP
- Cú pháp:
If <Điều kiện 1> Then
<Khối lệnh 1>
ElseIf <Điều kiện 2> Then
<Khối lệnh 2> …
....
ElseIf <Điều kiện n> Then
<Khối lệnh n>
[Else
<Khối lệnh n+1>]
End If
- Ý nghĩa: Nếu <Điều kiện 1> là đúng thì thực hiện <Khối lệnh 1>, nếu <Điều kiện 2> là đúng thì thực hiện <Khối lệnh 2>,…, nếu <Điều kiện n> là đúng thì thực hiện <Khối lệnh n>, nếu khơng cĩ điều kiện nào là đúng cả thì thực hiện
<Khối lệnh n+1> nếu cĩ.
- Thí dụ: đoạn chương trình biện luận để tìm nghiệm phương trình bậc ở dạng tổng quát ax2 +bx+c=0, (a<>0)
Delta=b^2-4*a*c If Delta<0 then
Msgbox “Phương trình vơ nghiệm” ElseIf Delta=0 then
Msgbox “Phương trình cĩ nghiệm kép x1=x2=” & -c/(2*a) Else
x1=(-b+Sqr(delta))/(2*a) x2=(-b-Sqr(delta))/(2*a)
Msgbox “Phương trình cĩ 2 nghiệm phân biệt x1=” & x1 & “ x2=” & x2 End If
3.3.3. CẤU TRÚC CHỌN LỰA a) CÚ PHÁP a) CÚ PHÁP
End Select b) Ý NGHĨA:
Nếu <Biểu thức kiểm tra> cĩ giá trị là <Giá trị 1> thì thực hiện <Nhĩm lệnh 1>, nếu <Biểu thức kiểm tra> cĩ giá trị là <Giá trị 2> thì thực hiện <Nhĩm lệnh 2>, … , Nếu <Biểu thức kiểm tra> cĩ giá trị là <Giá trị n> thì thực hiện <Nhĩm lệnh n> , cịn nếu <Biểu thức kiểm tra> cĩ giá trị khác với các giá trị đã liệt kê thì thực hiện <Nhĩm lệnh n+1> nếu cĩ.
c) THÍ DỤ:
Thủ tục con tìm thứ của một ngày bất kỳ
Public Sub InThuCuaNgay()
Dim Thu As String
Ngay = InputBox("Nhap mot ngay bat ky", "Nhap lieu") Select Case Weekday(Ngay)
Case 1
Thu = "Chu Nhat" Case 2
Thu = "Thu Hai" Case 3
Thu = "Thu Ba" Case 4
Thu = "Thu Tu" Case 5
Thu = "Thu Nam" Case 6
Thu = "Thu Sau" Case 7
Thu = "Thu Bay" End Select
MsgBox Ngay & " la ngay " & Thu, vbInformation, "Ket qua" Debug.Print Ngay & " la ngay " & Thu
End Sub
Khi chạy chương trình
Hình 3.25: Hộp thoại yêu cầu nhập ngày cần tìm thứ của nĩ
Bấm OK sẽ xuất hiện Hình 3.26: Kết quả hiển thị trên MsgBox 3.3.4. CẤU TRÚC VỊNG LẶP a) CẤU TRÚC DO…LOOP Dùng với While Dạng 1: - Cú pháp:
Do While <Điều kiện lặp>
<Khối lệnh>
Loop
- Ý nghĩa: Kiểm tra <Điều kiện lặp> trước. Nếu <Điều kiện lặp> là Đúng thì thực hiện <Khối lệnh> và cứ lặp như thế cho đến khi nào điều kiện lặp là Sai thì dừng vịng lặp.
Dạng 2:
<Khối lệnh>
Wend
- Ý nghĩa: Kiểm tra <Điều kiện lặp>. Nếu <Điều kiện lặp> là Đúng thì thực
hiện <Khối lệnh>. Nếu <Điều kiện lặp> là Sai thì thốt khỏi vịng lặp.
Dùng với Until Dạng 1:
- Cú pháp:
Do Until <Điều kiện lặp>
<Khối lệnh>
Loop
- Ý nghĩa: Kiểm tra <Điều kiện lặp> trước. Nếu <Điều kiện lặp> là Sai thì thực hiện <Khối lệnh>. Khi nào <Điều kiện> là Đúng thì dùng vịng lặp.
Dạng 2:
- Cú pháp: Do
<Khối lệnh>
Loop Until <Điều kiện lặp>
- Ý nghĩa: Thực hiện <Khối lệnh> trước, sau đĩ mới kiểm tra <Điều kiện lặp>. Nếu <Điều kiện lặp> là Sai thì quay về tiếp tục thực hiện lại <Khối lệnh>. Khi nào <Điều kiện lặp> là Đúng thì dừng vịng lặp.
Thí dụ: Viết thủ tục hàm tính tổng của N số tự nhiên
Hình 3.27: Tính tổng N số tự nhiên dùng Do While…Loop
Dùng Do…Loop While
Hình 3.28: Tính tổng N số tự nhiên dùng Do…Loop While
Hình 3.30: Tính tổng N số tự nhiên dùng Do…Loop Until
Dùng While …Wend
Hình 3.31: Tính tổng N số tự nhiên dùng While…Wend
Lưu ý:
Trong cấu trúc này muốn thốt ra khỏi vịng lặp cĩ cấu trúc Do mà khơng cần kiểm tra <điều kiện lặp> thì ta cĩ thê dùng lệnh Exit Do.
b) CẤU TRÚC FOR…NEXT
- Cú pháp:
For <Biến đếm> = <Giá trị đầu> To <Giá Trị cuối> Step <Bước nhảy>
<Khối lệnh>
Next <Biến đếm>
- Trong đĩ:
Nếu khơng khai báo Step thì mặc nhiên <Bước nhảy> là 1. - Ý nghĩa:
+ Bước 1: <Biến đếm> được gán giá trị bằng <Giá trịđầu>.
+ Bước 2: Kiểm tra <Biến đếm> cĩ nhỏ hơn hay bằng giá trị cuối hay khơng (trường hợp bước nhảy mang giá trị dương, cịn bước nhảy mang giá trị âm thì kiểm tra ngược lại).
+ Bước 3: Nếu kết quả kiểm tra là Đúng thì thực hiện <Khối lệnh> > Nếu kết quả kiểm tra là Sai thì dừng vịng lặp.
+ Bước 4: Nhảy giá trị của <Biến đếm> lên thêm một <Bước nhảy>. Quay lại Bước 2.
- Thí dụ:
1/ Viết thủ tục con để tính tổng N số tự nhiên dùng vịng lặp For…Next
Hình 3.32: Tính tổng N số tự nhiên dùng For…Next (For tăng)
InputBox(<Câu thơng báo>[, <Tiêu đề>][, <Giá trị mặc định>])
Chức năng:
Hàm sẽ hiển thị một hộp thoại nhập liệu. Giá trị nhập vào hàm qua hộp thoại sẽ được dùng để gán cho biến.
Thí dụ:
Lệnh sau đây:
a = InputBox(“Nhập vào giá trị cho a: “, “Nhap lieu”,9)
sẽ hiển thị hộp thoại sau:
Hình 3.34: Hộp thoại yêu cầu nhập số a
và giá trị nhập qua hộp thoại sẽ được gán cho biến a.
3.4.2. HÀM XUẤT DỮ LIỆU (MSGBOX) Cú pháp: Cú pháp:
MsgBox (<Câu thơng báo>[, <Loại hộp thoại>][, <Tiêu đề>])
Nếu khơng khai báo “Tiêu đề” thì mặc nhiên lấy tiêu đề hộp thoại là Microsoft Access.
Loại hộp thoại = <Số các nút> +< Biểu tượng hộp thoại> +<Nút mặc định>
Số các nút Biểu tượng Nút mặc định
0 vbOKOnly 0 Khơng cĩ 0 vbDefaultButton1
1 vbOKCancel 16 vbCritical 256 vbDefaultButton2
3 vbYesNoCancel 48 vbExclamation
4 vbYesNo 64 vbInformation
5 vbRetryCancel
Với bảng trên khi sử dụng ta cĩ thể sử dụng giá trị số hoặc tên hằng bên cạnh mà VB đã định nghĩa sẵn.
Chức năng:
Xuất hiện hộp thoại thơng báo và nhận kết quả trả về tùy theo người sử dụng bấm vào nút nào trên hộp thơng báo.
Bảng giá trị của nút trả về khi người dùng click chọn. Giá trị Tên hàng Nút click chọn
1 vbOk Ok 2 vbCancel Cancel 3 vbAbort Abort 4 vbRetry Retry 5 vbIgnore Ignore 6 vbYes Yes 7 vbNo No Thí dụ:
MsgBox( "Ban muon tiep tuc khong?", 3 + 32 + 256, "Thong bao")
Hình 3.35: Hộp thoại yêu cầu người dùng xác nhận cĩ muốn tiếp tục khơng.
Hoặc
MsgBox ("Ban muon tiep tuc khong?", vbYesNoCancel + vbQuestion + vbDefaultButton2, "Thong bao")
Chú ý:
• Ta cĩ thể sử dụng Msgbox dưới dạng thủ tục bằng cách khơng sử dụng cặp dấu mĩc trịn để bao các tham số của Msgbox.
• Msgbox được sử dụng ở dạng thủ tục khi muốn xuất hiện một hộp thoại chứa nội dung thơng báo nào đĩ xem xong người sử dụng click chuột vào nút Ok để kết thúc chứ khơng cĩ ý định lấy giá trị của nút mà người dùng click chọn ta sử dụng.
Bài 4. LÀM VIỆC VỚI ĐỐI TƯỢNG TRONG ACCESS
4.1. OBJECT VÀ COLLECTION 4.1.1. KHÁI NIỆM VỀ OBJECT 4.1.1. KHÁI NIỆM VỀ OBJECT
a) KHÁI NIỆM
Object cịn gọi là đối tượng cơ sở dữ liệu nĩ bao gồm các thành phần tồn tại bên trong cơ sở dữ liệu như Table, Form, Query, Report, Module, các Control trên Form hoặc Report. Đối tượng trong Access cũng giống như đối tượng cĩ trong thế giới thực như con người, con vật, cái bàn, cái ghế,…Mỗi đối tượng đều cĩ đặc tính riêng và cách cư xử riêng. Thí dụ con người cĩ những đặc tính như tên, tuổi, chiều cao, cân nặng,…Với cùng đối tượng người, ta phân biệt người này với người khác thơng qua đặc tính riêng của họ. Các đối tượng trong Access cũng vậy, mỗi đối tượng cĩ một cái
tên để phân biệt với các đối tượng khác, cĩ nhiều đặc điểm riêng gọi là các thuộc tính, cĩ nhiều hoạt động gọi là các phương thức và cĩ những phản ứng với tác động
lên nĩ gọi là các sự kiện hay biến cố của đối tượng đĩ.
b) THUỘC TÍNH, BIẾN CỐ VÀ PHƯƠNG THỨC CỦA ĐỐI TƯỢNG
- Tập thuộc tính (Properties): Là tập hợp các đặc điểm để hình thành ra đối tượng. Thơng thường, các đối tượng cĩ một vài thuộc tính giống nhau và cĩ một số thuộc tính riêng biệt chỉ cĩ trong một số đối tượng. ví dụ: Form và TextBox đều cĩ thuộc tính Width (chiều rộng), nhưng chỉ ở Form mới cĩ thuộc tính Record Source cịn TextBox chỉ cĩ thuộc tính Control Source. Khi người dùng tạo ra một đối tượng trong Access thì tập hợp các thuộc tính của đối tượng do Access đã định nghĩa sẵn. Mỗi thuộc tính của đối tượng mới tạo ra Access cũng đã gán một giá trị mặc định để khởi tạo ra đối tượng đĩ. Trong quá trình điều khiển đối tượng trong Access người lập trình cĩ thể tham khảo và hoặc thay đổi giá trị tập thuộc tính của đối tượng. Trong VB thuộc tính của đối tượng cĩ biểu tượng là .
- Tập phương thức (Methods): Là tập hợp các hành động mà đối tượng đĩ cĩ
khả năng thực hiện được. ví dụ đối tượng cĩ khả năng di chuyển (Move), làm tươi lại đối tượng (Requery),… Các đối tượng khác nhau sẽ cĩ các phương thức khác nhau. Khi người dùng tạo ra một đối tượng tập hợp phương thức của đối tượng do Access đã định nghĩa sẵn và được người lập trình gọi phương thức của đối tượng thi hành khi cần thiết. Trong VB phương thức cĩ biểu tượng là . - Tập biến cố (Events): Là tập hợp sự kiện xảy ra trên một đối tượng (chủ yếu do
Collection), tập hợp các Control (Controls Collection).
Hình 4.1: Mơ hình đối tượng Cơ sở dữ liệu
a) FORMS COLLECTION
Tập hợp các Form bao gồm các Form hiện hành đang được mở trong tập tin CSDL. Sử dụng tập hợp các Form ta cĩ thể thực hiện các hành động làm thay đổi thuộc tính của Form như tiêu đề, màu sắc,… trên Form đang mở.
Thí dụ: Thay đổi tiêu đề của các Form đang mở bằng cách chèn thêm tên người sử
dụng hiện hành. Application Controls Reports Modules Screen DoCmd Forms Controls Ý nghĩa Đối tượng và tập hợp Đối tượng
Hình 4.2: Đoạn lệnh thay đổi tiêu đề Form
b) REPORTS COLLECTION
Tương tự như tập hợp các Form. Tập hợp các Report bao gồm các Report đang được mở trong tập tin CSDL. Sử dụng tập hợp các Report ta cũng cĩ thể thay đổi thuộc tính của các Report đang mở.
c) MODULES COLLECTION
Tập hợp cá Module đang mở bao gồm các Module chung và các Module của Form hoặc Report.
d) CONTROLS COLLECTION
Tập hợp các Control (điều khiển) cĩ trên Form, SubForm, Report hoặc Section đang mở.
4.2. CÚ PHÁP CHỈ ĐỊNH ĐẾN MỘT OBJECT VÀ CONTROL 4.2.1. CÚ PHÁP CHỈ ĐỊNH ĐẾN MỘT FORM 4.2.1. CÚ PHÁP CHỈ ĐỊNH ĐẾN MỘT FORM
a) CÚ PHÁP
Forms!<Tên Form> b) THÍ DỤ
Muốn chỉ định tới Form F_Hoadon ta viết như sau:
Forms!F_Hoadon
4.2.2. CÚ PHÁP CHỈ ĐỊNH ĐẾN SUBFORM a) CÚ PHÁP a) CÚ PHÁP
Forms!<Tên Main Form>!<Tên vùng nhúng Sub Form>.Form
b) THÍ DỤ
Muốn chỉ định đến SubForm cĩ tên vùng nhúng là CTHoaDon và tên MainForm là F_Hoadon, ta viết như sau:
Forms!F_Hoadon!CTHoaDon.Form
4.2.3. CÚ PHÁP CHỈ ĐỊNH ĐẾN MỘT REPORT a) CÚ PHÁP a) CÚ PHÁP
Reports!<Tên Report> b) THÍ DỤ
Muốn chỉ định đến Report tên R_HoaDon, ta viết như sau:
b) THÍ DỤ
+ Muốn chỉ định tới điều khiển là TextBox SOHD nằm trên Form tên
F_HoaDon, ta viết như sau:
Forms!F_HoaDon!SOHD
+ Muốn chỉ định tới điều khiển là TextBox MASP nằm trên Report tên
R_SanPham, ta viết như sau:
Reports!R_SanPham!MASP
+ Muốn chỉ định tới điều khiển là TextBox MAKH nằm trên SubForm cĩ tên vùng nhúng là HoaDon và tên MainForm là F_KhachHang, ta viết như sau:
Forms!F_Khachhang!HoaDon.Form!MAKH.
Chú ý: Ta cĩ thể sử dụng từ Me để thay thế cho đường dẫn đến form hoặc report chứa module mà ta đang lập trình. Khi đĩ cú pháp chỉ định đến control nằm trên form hoặc report đĩ sẽ là: Me.<tên control>
Ví dụ: Giả sử ta đang lập trình trên module của form F_Hoadon thì: • Me sẽ thay thế cho đường dẫn Forms!F_Hoadon
• Me.SoHD thay thế cho đường dẫn Forms!F_Hoadon!SoHD
4.2.5. CÁCH THAY ĐỔI THUỘC TÍNH CỦA ĐỐI TƯỢNG.
Để tham khảo hoặc thay đổi thuộc tính của đối tượng ta cĩ thể sử dụng một trong hai cách sau:
Cách 1: Áp dụng để thay đổi thuộc tính ngay khi khởi tạo ra đối tượng. • Vào hộp thoại thuộc tính của đối tượng
• Khai báo lại giá trị cho các thuộc tính của đối tượng để làm cho đối tượng phù hợp với bĩi cảnh chương trình.
Cách 2: Thay đổi bằng lệnh. Cách này được áp dụng để thay đổi thuộc tính của đối tượng khi đối tượng đang mở.
Cú pháp:
<Đường dẫn đến đối tượng>.<Tên thuộc tính>=<Giá trị mới>
• THÍ DỤ
Muốn làm mờ đối tượng CommandButton (nút lệnh) tên cmdLuu trên Form cĩ tên là F_ChiTietHoaDon, ta viết như sau:
Fomrs!F_ChiTietHoaDon!cmdLuu.Enabled = False
4.2.6. CÁCH GỌI PHƯƠNG THỨC CỦA MỘT OBJECT THI HÀNH
• CÚ PHÁP
<Đường dẫn đến đối tượng>.<Tên phương thức> [<Danh sách tham số>]
• THÍ DỤ
Muốn tính tốn lại các điều khiển tính tốn trên Form F_CapNhatHangHoa, ta sử dụng phương thức Recalc như sau:
Forms!F_CapNhatHangHoa.Recalc
Để di chuyển một TextBox MANSX trong Form F_DMNSX đến vị trí gĩc trên bên trái là 50,50 và cĩ độ rộng 400, chiều cao 200, ta viết lệnh như sau:
form hoặc report đĩ sẽ là: Me.<tên control>.
Ví dụ: giả sử ta đang lập trình trong module của form F_Hoadon thì:
o Me sẽ thay thế cho đường dẫn Forms!F_Hoadon
o Me.Sohd sẽ thay thế cho đường dẫn Forms!F_Hoadon!Sohd
4.2.7. MƠ TẢ VÀ GÁN BIẾN ĐỐI TƯỢNG a) Ý NGHĨA a) Ý NGHĨA
Biến đối tượng là biến dùng để chỉ định đến một loại đối tượng như cơ sở dữ liệu, bộ mẫu tin (Recordset), Form, Control.
b) CÚ PHÁP KHAI BÁO BIẾN ĐỐI TƯỢNG Dim <Tên biến> As <Kiểu dữ liệu đối tượng>
Set <Tên biến> = <Tên điều khiển>
c) CÚ PHÁP SỬ DỤNG BIẾN ĐỐI TƯỢNG
Sau khi khai báo và gán giá trị khởi tạo cho biến đối tượng, ta sử dụng biến đối