1. Trang chủ
  2. » Công Nghệ Thông Tin

GIÁO TRÌNH ACCESS – CHƯƠNG 8: MODULES _LẬP TRÌNH pps

139 303 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chương 8: Modules - Lập Trình
Trường học Đại Học Công Nghệ Thông Tin Vạn Xuân
Chuyên ngành Lập Trình Access
Thể loại Giáo Trình
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 139
Dung lượng 455,52 KB

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

Nội dung

GIÁO TRÌNH ACCESS – CHƯƠNG 8: 2 Khi nào sử dụng tập lệnh và Visual Basic : Bạn có thể sử dụng Visual Basic thay thế cho tập lệnh khi bạn thực hiện các công việc sau :  Để cho ứng dụng

Trang 1

GIÁO TRÌNH ACCESS – CHƯƠNG 8:

2) Khi nào sử dụng tập lệnh và Visual Basic :

Bạn có thể sử dụng Visual Basic thay thế cho tập lệnh khi bạn thực hiện các công việc sau :

 Để cho ứng dụng của bạn dễ dàng bảo trì vì tập lệnh là một đối tượng hoàn toàn tách riêng lẻ với các biểu mẫu và các báo cáo sử

Trang 2

dụng nó, một ứng dụng chức đựng một số lớn các tập lệnh trong biến cố của các biểu mẫu và các báo cáo sẽ gây cho bạn khó khăn khi bảo trì Ngược lại khi bạn sử dụng Visual Basic thì các đoạn lệnh này sẽ được xây dựng ngay bên trong các biểu mẫu và các báo cáo tại đúng các biến cố đó Nếu bạn di chuyển các biểu mẫu hay các báo cáo sang một tập tin CSDL khac trong Access thì các đoạn lệnh này cũng sẽ mang theo cùng

 Tạo ra các hàm của riêng mình : Sử dụng

VB bạn có thể tạo ra các hàm của riêng mình dung để thực hiện các phép tính vượt quá khả năng của một biểu thức hay thay thế một biểu thức quá phức tạp mà bạn đạ viết bên trong ứng dụng

Trang 3

 Che đậy các thông báo lỗi : Khi có một sự

cố ngoài ý muốn xảy ra trong khi ứng dụng của bạn đang vận hành và Access sẽ hiển thị một thông báo lỗi, thông báo này sẽ làm cho người sử dụng khó hiểu đặc biệt khi họ chưa quen sử dụng Access Sử dụng VB, bạn có thể phát hiện các lỗi này khi nó xảy ra và sẽ hiển thị thông báo lỗi của riêng mình bằng tiếng Việt hay có thể buộc ứng dụng làm một việc khác

 Tạo hay sửa các đối tượng : Chúng ta thường tạo hay sửa các đối tượng bằng cách

mở đối tượng ra ở chế độ thiết kế Trong một vài trường hợp đặc biệt chúng ta phải sử dụng VB để thực hiện

 Thực hiện các hàm hệ thống : Bạn có thể sử dụng tập lệnh RunApp để có thể kích hoạt một ứng dụng khác chạy trên Windows hay

Trang 4

MS-Dos ngay bên trong ứng dụng Access nhưng bạn không thể sử dụng tập lệnh này

để làm nhiều việc khác bên ngoài Access

Sử dụng VB bạn có thể kiểm tra xem một tập tin có tồn tại trong hệ thống của bạn không, sử dụng việc trao đổi dữ liệu động (DDE-Dynamic Data Exchange) để liên lạc với các ứng dụng khác trên Windows nhu Excel

 Truy cập các bản ghi (records) : Chúng ta sử dụng VB để có thể truy cập vào từng dòng trong một bản ghi và thực hiện các hành động thêm, xóa, sửa mà không cần sử dụng công cụ truy vấn

3) Cách tạo :

Phần khai báo Hộp đối tượng

Hộp thủ tục

Trang 5

Chọn mục Modules  Nhấn nút NewHiện hộp thoại :

Câu lệnh chia thành 3 loại : Lệnh khai báo, lệnh gán và lệnh xử lý

Nút xem toàn bộ thủ tục Phần thủ tục

Nút xem thủ tục

Trang 6

 Thông thường mỗi dòng là một lệnh Nhưng ta

có thể viết nhiều lệnh trên một dòng bằng cách phân cách chúng bằng dấu “;” hay một lệnh có thể viết trên nhiều dòng bằng cách sử dụng ký

tự nối câu lệnh”_’ở cuối mỗi dòng

 Thủ tục là một dãy các câu lệnh để thực hiện một nhiệm vụ hay tính toán một giá trị nào đó

 Một tập hợp các lệnh khai báo, các thủ tục được lưu trữ chung trong một đơn vị gọi là bộ

mã lệnh hay Modules Có hai loại bộ mã lệnh :

Bộ mã lệnh chuẩn (Standard Modules) và bộ

mã lệnh lớp (Class modules) Mỗi thủ tục trong Modules có khả năng là một hàm, thủ tục biến

cố hay một chương trình con

Bộ mã lệnh chuẩn :

Trang 7

 Thủ tục trong bộ mã lệnh chuẩn là chương trình con hay hàm

 Thủ tục trong bộ mã lệnh chuẩn không gắn liền với bất kỳ một đối tượng nào

 Thủ tục trong bộ mã lệnh chuẩn được gọi bởi thủ tục của bộ mã lệnh bất kỳ nào trong tập tin CSDL

 Để tạo một bộ mã lệnh chuẩn, trong cửa sổ CSDL, ta chọn loại đối tượng Modules nhắp nút New Khi xuất hiện cửa sổ Modules ta gõ lệnh khai báo trong phần khai báo và tạo các chương trình con hay hàm rồi đóng cửa sổ

Hộp thủ tục chứa tên thủ tục

Trang 8

modules Khi hộp thoại yêu cầu chọn lựa lưu hay không xuất hiện, ta chọn đồng ý và đặt tên cho bộ mã lệnh chuẩnClick OK

Bộ mã lệnh lớp :

 Bộ mã lệnh lớp là chương trình con, hàm hay thủ tục biến cố

 Thủ tục trong bộ mã lệnh lớp có thể gọi các thủ tục trong bộ mã lệnh chuẩn

Chứa tên thủ tục

Tên

các đối

tượng

Trang 9

 Ta có thể tạo bộ mã lệnh lớp tồn tại độc lập với đối tượng biểu mẫu, báo cáo

 Thủ tục biện cố được tự động gọi khi xẩy ra một biến cố như nhắp chuột, rê chuột, gõ phím,…

 Để tạo một thủ tục biến cố, trong cửa sổ mã lệnh, bên hộp đối tượng ta chọn đối tượng, còn

bên hộp thủ tục ta chọn biến cố

II LỆNH KHAI BÁO

1) Khái niệm :

 Ta có thể dùng các lệnh khai báo (Declaration statements) để đặt tên và định nghĩa thủ tục (Procedures), biến (Variables), mảng (Array) và hằng (Constants), loại dữ liệu

do người dùng định nghĩa Tầm ảnh hưởng của biến phụ thuộc vào vị trí khai báo biến

Trang 10

Database : so sánh chuỗi ký tự dựa vào đặc

điểm riêng của bộ mã ký tự của từng địa

phương

Trang 11

 Ý Nghĩa : Khai báo tên và loại dữ liệu hay

loại đối tượng của biến

Trang 12

Chieu : Qui định số chiều và số phần tử ở

mỗi chiều của biến mảng

Chiều có dạng : [choSothap To] chiSoCao [,[chisoThap to] choSoCAo]

New : Dùng cho biến loại đối tượng New là

tạo một đối tượng mới và khởi gán biến tham chiếu đến đối tượng vừa tạo Một biến được khai báo New thì không cần dùng lệnh set để tham chiếu cho biến

Loaidulieu : Loại dữ liệu của biến Là một

trong các loại Byte, Boolean, Integer, Long, Curremcy, Single, Double, Date, String, String *Length, Object, Variant, loại do người dùng định nghĩa hay một loại đối tượng

Ví dụ :

Dim myInt As integer

Dim X as New WorkSheet

Trang 13

Dim NgayLe (1 to 20 ) As Date

 Vị trí : Lệnh nằm trong thủ tục hay trong phần

khai báo của modules

 Giải thích :

Public : Hằng được dùng trong thủ tục của bất

kỳ Modules nào

Private : Hằng chỉ được dùng trong thủ tục

của modules chứa lệnh Const

TenHang : Tên hằng

LoaiDulieu : Là một trong các kiểu dữ liệu

e) Lệnh Type

Trang 14

 Ý Nghĩa : Dùng để khai báo một loại dữ liệu

Tenloai : Tên loại dữ liệu cấu trúc

Chieu : Qui định số chiều và số phần tử ở mỗi chiều của biến mảng

Loaidulieu : Loại dữ liệu củ biến

Ví dụ : Type diem

Trang 16

Private : Phạm vi ảnh hưởng : trong

Modules chứa lệnh

Public : Phạm vi ảnh hưởng : trong tất cả

modules của tập tin CSDL

Static : Biến cục bộ sẽ được bảo lưu giá trị DanhsachThamSo : Gồm các tham số cách

nhau bởi dấu phẩy

Ví dụ 1: Tính cạnh huyền của một tam giác Sub TinhCanhHuyen(ByVal canhA As

Double, ByVal canhB As Double)

Dim CanhHuyen As double CanhHuyen =(CanhA^2 + CanhB^2) ^ 0.5

Msgbox Csrt (canhHuyen), vbOkOnly,

“Tinh Canh Huyen”

End Sub

Ví dụ 2 :

Trang 18

Sub TruyenThamChieu(ByRef ThamSoint As Integer)

For Each Sotien In SotienArray

tongtien = tongtien + Sotien Next Sotien

MsgBox tongtien, vbOKOnly, "Tong

so tien"

End Sub

Ví dụ 4 :

Trang 19

Sub soNgayDasong(ByVal Ngaysinh As Date, Optional ByVal ngayhientai As Variant)

Dim soNgay As Integer

If IsMissing(ngayhientai) Then

ngayhientai = Date End If

soNgay = ngayhientai - Ngaysinh MsgBox soNgay, vbOKOnly, "So ngay da song "

End Sub Chú ý : Để chạy thử các thủ tục trên, ta vào cửa

sổ Debug và gõ

TinhCanhHuyen 4,5

MainSub

TinhTong 1,2,3,4,5

Trang 20

SoNgayDaSong #12/5/1980# hay

SoNgayDaSong #12/5/1980#, #04/03/2001#

g) Lệnh Function :

 Ý Nghĩa : Dùng để khai báo tên hàm, tham số,

và loại dữ liệu trả về của hàm

 Cú pháp :

[private | Public ][Static] Function

tenHam([danhsachThamso]) [as loaiDulieu]

Trang 21

Ví dụ 1: Tính cạnh huyền của một tam giác Function TinhCanhHuyen(ByVal canhA As Double, ByVal canhB As Double) As Double

Dim CanhHuyen As double CanhHuyen =(CanhA^2 + CanhB^2) ^ 0.5

TinhCanhHuyen =CanhHuyen

End Function

Ví dụ 2 :

Function tinhTong(ParamArray SotienArray() As Variant) As Double

Dim tongtien As Variant, Sotien As Variant

For Each Sotien In SotienArray

tongtien = tongtien + Sotien Next Sotien

TinhTong = tongtien

Trang 22

End Function

Ví dụ 4 :

Function soNgayDasong(ByVal Ngaysinh

As Date, Optional ByVal ngayhientai As Variant) As Integer

Dim soNgay As Integer

If IsMissing(ngayhientai) Then

ngayhientai = Date End If

soNgay = ngayhientai – Ngaysinh soNgaydasong = songay

End Function Chú ý : Để chạy thử các thủ tục trên, ta vào cửa

sổ Debug và gõ

? TinhCanhHuyen (4,5)

? TinhTong (1,2,3,4,5)

Trang 24

 Ý Nghĩa : Khai báo chỉ số biến thấp của

Dim mangSoNguyen(5) As Single

Dim chiso As Integer

For chiso = 1 To 5

mangSoNguyen(chiso) = Rnd()

Next chiso

End Sub

Trang 25

End Sub

Trang 26

III LỆNH GÁN (ASIGNMENT STATEMENTS) 1) Khái niệm :

Dùng để gán giá trị cho một biến hay một hằng Lệnh gán được sử dụng trong thân của thủ tục

Trang 27

TenBien : Tênbiến khai báo trong lệnh Dim

hay trong tham số của thủ tục

TenThanhPhan : tên thành phần trong lệnh

Type

Thuoctinh : Aùp dụng khi tenbien1 là đối

tượng

TenDoiTuong : Tên đối tượng

TenHam : tên hàm khai báo trong lệnh

Dim hocsinhVar As hocsinhtype

Dim myDB As Database

'Gan gia tri vao tenBien.TenThanhPhan

Trang 28

lenhgan = 5

End Function

b) Lệnh Set :

 Ý nghĩa : Gán đối tượng cho một biến thuộc

loại đối tượng tương ứng

Trang 29

Dim myDB as database

Dim mySet As recordset

Set myDb = CurrentDB

Set mySet =

myDb.OpenRecordSet(“NhanVien”)

Trang 30

End Sub

IV LỆNH XỬ LÝ

1) Cấu trúc điều khiển

a) Cấu trúc If … Then một dòng

 Ý nghĩa : Điều kiện có giá trị True thì thi hành

câu lệnh, ngược lại chuyển điều khiển đến lệnh

kế tiếp

 Cú pháp :

If dieukien Then caulenh

Vị trí : Lệnh được dùng trong thủ tục sau các

lệnh khai báo

 Giải thích :

Dieukien : là một biểu thức luận lý

CauLenh : câu lệnh gán hay xử lý

Ví dụ :

Trang 31

If hocsinhVar.Hsma = 5 Then

hocsinhVar.lMa =2

b) Cấu trúc If … Then nhiều dòng

 Ý nghĩa : dieukien có giá trị True thì thi hành

cacLenh, ngược lại chuyển điều khiển đến lệnh sau lệnh End If

Dieukien : Là biểu thức luận lý

Caclenh : Câu lệnh gán hay xủ lý

c) Cấu trúc If … Then … Else

Trang 32

 Ý nghĩa : dieukien có giá trị True thì thi hành

cacLenh1, ngược lại thi hành caclenh2

 Ý nghĩa : dieukien thứ N đúng thì thực hiện

caclenhN, Ngược lại chuyển điều khiển đến caclenhElse

 Cú pháp :

If dieukien1 Then

Trang 33

DieukienN : Là một biểu thức luận lý

CaclenhN, caclenhElse : Các lệnh gán hay xủ

Ví dụ :

Trang 34

 Ý nghĩa : Chuyển điều khiển đến Case mà giá

trị BieuThucchon bằng, nằm trong hay <, <=,

>, >=, =, <> giá trị biểu thức

 Cú pháp :

Select Case bieuthucchon

Trang 35

Case {bieuthuc | Bieuthuc To bieuThuc |

Trang 36

Case “CDTHA”

hocsinhPar.Hocphi = 800000

Case “CDTHB”

hocsinhPar.hocphi =700000 Case “CDTHC”

chuyển điều khiển đến

Điều kiện sai thì thực hiện các lệnh, ngược lại không thực hiện các lệnh mà chuyển điều khiển đến các

Trang 38

Exit Do : thoát khỏi vòng lặp

Trang 40

 Vị trí : Lệnh được dùng trong thủ tục sau các lệnh khai báo

c) Câu lệnh For … Next

 Ý nghĩa : Thi hành các lệnh khi biến đếm còn

nằm giữa giaTriXuatPhat và giaTriDich Sau

Trang 41

khi thi hành các lệnh biến đếm tăng thêm một giá trị bằng bước nhẩy

 Cú pháp :

For bienDem = giaTriXuatPhat To

giaTriDich [Step buocNhay]

BienDem : Là một biến có kiểu dữ liệu là

Integer hay Long

GiaTriXuatPhat, GiaTriDich : Một biểu

thức có kiểu là Integer hay Long

Trang 42

BuocNhay : Là số âm hay dương dùng để

tăng hay giảm biến đếm

Exit For : thoát khỏi vòng lặp

Ví dụ : Trong thủ tục vào mảng có đoạn lệnh : For chiso = 1 To soluongHocsinh

HocsinhMang(Chiso).HsMa =

hocsinhSet!hsMa

Next chiso

d) Câu lệnh For Each

 Ý nghĩa : Khi phần tử còn là phần tử của

Trang 43

For Each sotien In sotienArray

Tongtien = tongtien +sotien

Next soTien

e) Câu lệnh With

 Ý nghĩa : Cho phép ghi các lệnh liên quan đến

đối tượng mà không cần ghi tên đối tượng

 Cú pháp :

With doituong

Trang 44

DoiTuong : Biến thuộc loại đối tượng hay

loại dữ liệu định nghĩa bằng lệnh Type

Ví dụ : Trong thủ tục vào mảng có đoạn lệnh : For chiso = 1 To soluongHocsinh

With HocsinhMang(chiso) HsMa = hocsinhSet!hsMa

.HsMa = hocsinhSet.Hoten

End With

Next chiso

f) Câu lệnh Call

Trang 45

 Ý nghĩa : Chuyển con trỏ thi hành lệnh đến

lệnh đầu tiên của thủ tục

 Cú pháp :

[Call ] tenThuTuc

[danhsachThamSo]

tendoiTuong { ! | } {tenDoiTuong | phuongphap}…

 Vị trí : Lệnh được dùng trong thủ tục sau các

lệnh khai báo

 Giải thích :

Call : Nếu sử dụng DanhsachThamSo phải

rào trong (), Ngược lại

Ví dụ :

Sub thuBangVaomang()

Dim HocsinhMang() As hocsinhType BangVaoMang HocsinhMang()

Trang 46

End Sub

Sub thuBangVaomang()

Dim HocsinhMang() As hocsinhType

Call (BangVaoMang hocsinhMang())

End Sub

Sub BangVaoMang(HocsinhMang() As hocsinhType)

Trang 47

 Vị trí : Lệnh được dùng trong thủ tục sau các

lệnh khai báo

 Giải thích :

Stop : tạm thời dừng việc xử lý lệnh ngay

lệnh stop Lệnh Stop thường dùng tại vị trí mà

ta muốn kiểm tra việc thi hành lệnh ( xem giá trị của biến) Sau khi việc thi hành lệnh dừng tại lệnh stop, ta có thể cho tiếp tục thi hành bằng cách nhấn F5

V LÀM VIỆC VỚI CÁC BIẾN, KIỂU DỮ

Trang 48

Dim strName as string

Dim Intl as Integer

2) Khai báo biến tường minh và không tường

và thong báo lỗi ngay để chúng ta sửa đổi

Để có thể chuyển qua lại hai chế độ này chúng ta

sẽ giữ lại hay bỏ đi câu lệnh : Option Explicit trong phần khai báo của các đoạn lệnh trong cửa

sổ bộ mã lệnh (Module)

Ví dụ :

Trang 49

Sử dụng chế dộ khai báo biến không tường minh

Function CanBac2(Byval dblNum As Double)

VB hiểu rằng dblTmp là một biến mới

Sử dụng chế dộ khai báo biến tường minh

Function CanBac2(Byval dblNum As Double)

as double

Dim dblTemp As Double

Dbltemp =abs(dblNum)

Trang 50

Canbac2 = Sqr(dbltmp) ‘ dbltemp bị viết sai thành dbltmp

End Function

Khi gọi thực hiện hàm này thì VB sẽ thông báo lỗi biến dbltmp chưa được định nghĩa, chính nhờ thông báo này chúng ta sẽ phát hiện ra rằng chúng ta đã tham chiếu đến tên biến sai Sau đó quay lại sửa lại tên biến thành dblTemp và biên dịch và chạy lại thì kết quả sẽ luôn luôn đúng

3) Tầm ảnh hưởng của biến

Khi khai báo một biến trong thủ tục thì chỉ có các câu lệnh bên trong thủ tục đó mới có thể đọc hay thay đổi giá trị của biến đó : tầm ảnh hưởng của biến chỉ có tính cục bộ trong thủ tục Tầm ảnh hưởng của một biến phụ thuộc vào vị trí khai báo biến Có hai cấp : thủ tục hay bô mã lệnh Chúng ta có thể kết hợp các từ khoá Public hay Private để tạo ra tầm ảnh hưởng của biến

Trang 51

Không thể khai báo biến toàn cục trong thủ tục

Cấp bộ mã

lệnh

Các biến có tính chất cục bộ ngay trong bộ mã lệnh khai báo biến

Các biến có thể sử dụng cho tất cả các bộ mã lệnh chuẩn trong ứng dụng

4) Các biến sử dụng trong thủ tục

Các biến cấp thủ tục chỉ được nhận ra ở tại thủ tục mà chúng được khai báo và được xem như biến cục bộ

Ví dụ khai báo :

Trang 52

Dim inttemp as Integer ‘Khai báo này biến chỉ tồn tại khi thủ tục đang thực hiện

Static inttemp as Integer ‘Biến tồn tại trong toàn bộ thời gian ứng dụng đang thực hiện

5) Các biến sử dụng trong bộ mã lệnh

Mặc định một cấp bộ mã lệnh thì cho phép tất cả các thủ tục trong bộ mã lệnh đó sử dụng được, nhưng không thể cho các bộ mã lệnh khác Chúng ta có thể tạo các biến cấp thủ tục trong biểu mẫu, báo cáo hay các bộ mã lệnh chuẩn bằng cách khai báo chúng với từ khóa Dim hay Private bên trong phần khai báo ở tại vị trí đầu tiên trong cửa sổ bộ mã lệnh

Ví dụ :

Option Compare Database

Ngày đăng: 08/08/2014, 09:20

TỪ KHÓA LIÊN QUAN

w