Object và Collection

Một phần của tài liệu Giáo trình access 2 – trung tâm tin học đh sư phạm kỹ thuật TP HCM (Trang 89)

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 tượng bình thường như một đối tượng.

<Tên biến>.<Thuộc tính> hoặc <Tên biến>.<Phương thức>

d) CÚ PHÁP GIẢI PHĨNG BIẾN ĐỐI TƯỢNG

Sau khi đã làm việc xong với một biến đối tượng, ta giải phĩng tài nguyên vùng nhớ hệ thống bằng cách gán từ khĩa Nothing cho biến đối tượng.

Set <Tên biến> = Nothing

e) CÁC THUỘC TÍNH ĐẶC BIỆT CHỈĐỊNH ĐẾN CÁC ĐỐI TƯỢNG

Visual Basic for Applications cung cấp các thuộc tính đặc biệt dùng để chỉ định đến các đối tượng trong mơ hình đối tượng của Access.

Tên thuộc tính Chỉ định

ActiveControl Điều khiển đang nhận sự tập trung trên đối tượng màn hình, Form, Report

RecordsetClone Bộ mẫu tin dữliệu nguồn bên dưới của Form ActiveForm Form đang nhận sự tập trung

ActiveReport Report đang nhận sựtập trung Form Form con chứa trong một Form Report Report con chứa trong một Report

Me Đối tượng Form hoặc báo cáo nơi chứa đoạn mã lệnh hiện tại đang thực hiện

Parent Đối tượng cha của đối tượng hiện tại

4.2.8. CÚ PHÁP LỆNH WITH a) Ý NGHĨA a) Ý NGHĨA

Khi ta khơng muốn lặp đi lặp lại nhiều lần tên biến đối tượng hoặc tên đối tượng trong các câu lệnh thì ta cĩ thể dùng phát biểu With.

b) CÚ PHÁP

With <Đối tượng>

.<Thuộc tính>

.<Phương thức>

End With

c) THÍ DỤ : Đoạn lệnh sau đây

Me.Caption = "Quan ly khach hang" Me.AllowAdditions = False

Me.AllowDeletions = False Me.AllowEdits = True Cĩ thể viết lại theo cấu trúc With là:

With Me

.Caption = "Quan ly khach hang" .AllowAdditions = False

.AllowDeletions = False .AllowEdits = True End With

4.3. MỘT SỐ THUỘC TÍNH, PHƯƠNG THỨC, BIẾN CỐ CỦA MỘT SỐ ĐỐI TƯỢNG THƯỜNG DÙNG

- Visible: Ẩn hoặc hiện form khi mở form ra. Cĩ 2 giá trị là True (hiện) hoặc False (ẩn).

Thí dụ: Muốn ẩn Form hiện hành

Me.Visible = False ‘Ẩn Form hiện hành

- AllowDeletions: Cho (True) hoặc khơng cho (False) xĩa dữ liệu trên Form Thí dụ:

Me.AllowDeletions = False ‘Khơng cho phép xĩa dữ liệu trên Form - AllowAdditions: Cho (True) hoặc khơng cho (False) thêm dữ liệu trên Form

Thí dụ:

Me.Additions = True ‘Cho phép thêm dữ liệu trên Form - AllowEdits: Cho (True) hoặc khơng cho (False) sửa dữ liệu trên Form

Thí dụ:

Me.AllowEdits = False ‘Khơng cho phép sửa dữ liệu trên Form - NavigationButtons: hiện (True) hoặc ẩn (False) thanh chứa các nút di chuyển

mẫu tin của Form

Thí dụ:

Me.NavigationButtons = False ‘Ẩn thanh chứa các nút di chuyển mẫu tin. - BookMark: Di chuyển mẫu tin hiện hành của form đến vị trí cĩ BookMark nào

đĩ. (BookMark là số hiệu đánh dấu của từng mẫu tin trên bộ mẫu tin)

Thí dụ:

Me.BookMark = Rs.BookMark ‘Di chuyển mẫu tin hiện hành của Form đến mẫu tin mà con trỏ mẫu tin Recordset đang trỏ tới (Rs là biến cĩ kiểu Recordset)

- CurrentRecord: Trả về một số cĩ kiểu Long cho biết mẫu tin hiện hành của

Form được chỉ định nào đĩ (Form này đang hiển thị ở chế độ Form View) là mẫu tin thứ mấy. Thuộc tính này read only nên chỉ cho phép người lập trình tham khảo chứ khơng cho phép thay đổi.

- AllowFilters: Cho phép (True) hoặc khơng cho phép (False) lọc các mẫu tin

trên Form. Mặc nhiên là cho phép lọc.

Thí dụ:

Me.AllowFilters = False ‘Khơng cho phép lọc các mẫu tin trên Form - Filter: cho phép xác định điều kiện lọc cho Form hoặc Report. Điều kiện lọc là

một biểu thức đặt trong dấu nháy đơi.

- FilterOn: tiến hành lọc (True) theo điều kiện được khai báo trong thuộc tính Filter hoặc Bỏ lọc (False).

Ví dụ: Trong form F_HosoNV trên đĩ cĩ 2 nút lệnh cmdLoc và cmdBoloc. Nếu

bấm vào nút Lọc thì xuất hiện hộp thoại yêu cầu nhập vào tên nhân viên cần lọc. Sau khi nhập tên nhân viên và bấm OK thì tiến hành lọc những mẫu tin của form F_HosoNV chỉ cho hiển thị những nhân viên cĩ tên được nhập từ bàn phím mà thơi. Nếu bấm vào nút Bỏ Lọc thì hiện đầy đủ các mẫu tin như ban đầu.

Hình 4.6: Form F_CHITIETHOADON khi chưa lọc

dk = InputBox("Nhap vao ten nhan vien can loc:") Me.Filter = "ten='" & dk & "'"

Me.AllowFilters = True Me.FilterOn = True End Sub

b) PHƯƠNG THỨC

- Undo: dùng quay về trạng thái ban đầu cho Form khi nĩ đang được sửa đổi. Thí dụ:

Me.Undo ‘Dùng phục hồi trạng thái cũ của Form hiện hành khi nĩ đang hiệu chỉnh.

- Requery: ta sử dụng phương thức này để cập nhật lại dữ liệu mới nhất mà Form

cĩ được. Phương thức này thực hiện một trong các việc sau:

+ Trả về query nguồn cho Form.

+ Hiển thị dữ liệu mới nhất của Table nguồn khi ta Thêm, Xĩa hoặc Sửa mẫu

tin trên đĩ.

+ Cập nhật lại sự thay đổi mẫu tin khi ta ta áp dụng phương thức Lọc dữ liệu

trên Form.

Thí dụ:

Me.Requery ‘Dùng làm tươi dữ liệu lại cho Form

- Recalc: cập nhật tức thời tồn bộ các điều khiển tính tốn trên Form Thí dụ:

Me.Recalc

c) BIẾN CỐ

- On Open (Cancel As Integer): biến cố xảy ra khi cửa sổ form được mở ra.

Tham số Cancel cĩ giá trị là True hoặc False. Mặc nhiên là False. Nếu là True cĩ tác dụng hủy bỏ biến cố.

- On Load: biến cố xảy ra khi dữ liệu được nạp lên form.

- On Unload (Cancel As Integer): biến cố xảy ra khi nguồn dữ liệu trên form bị

đĩng lại. Tham số Cancel cĩ giá trị là True hoặc False. Mặc nhiên là False. Nếu là True cĩ tác dụng hủy bỏ biến cố.

- On Close: biến cố xảy ra khi cửa sổ form bị đĩng lại. Thứ tự các biến cố xảy ra:

Các biến cố lần luợt xảy ra khi mở form:

Các biến cố lần luợt xảy ra khi đĩng form:

4.3.2. TEXTBOX a) THUỘC TÍNH

- Name: dùng đặt tên cho TextBox. Ta chỉ đặt tên cho TextBox khi Form ở chế độ Design View. Trong quá trình đối tượng đang mở ta khơng được phép sử dụng lệnh để đổi tên đối tượng.

- Control Source: khai báo nguồn dữ liệu cho TextBox. Nếu thay đổi bằng lệnh

thì giá trị thay đổi phải đặt trong cặp dấu nháy đơi.

Thí dụ: Trên Form một form ta co textbox mang tên txtthang. Để gán cho txtbox này hiển thị tháng hiện hành ta sử dụng lệnh

Me.txtthang.RecordSource=”=Month(Date())”

- Visible: Hiện (True) hoặc ẩn (False) TextBox. Mặc nhiên là True. Thí dụ:

Me.txtKETQUA.Visible = False ‘Làm ẩn TextBox txtKETQUA - Enabled: làm mờ (False) hoặc sáng lại bình thường (True) Mặc nhiên là True.

Ví dụ:

Me.txtTongTriGia.Enabled = False ‘Làm mờ TextBox txtTongTriGia

- Locked: Cho phép (False) hoặc khơng cho phép (True) sửa đổi dữ liệu trên TextBox. Mặc nhiên là False.

Thí dụ:

Me.txtTongTriGia.Locked = False ‘Khơng cho phép sửa đổi dữ liệu trên

TextBox txtTongTriGia

- AutoTab: tự động (True) hay khơng tự động (False) di chuyển con trỏ sang

Open Load Resize Active Current

Hình 4.13: Khi đưa con trỏ chuột vào TextBox Manv thì xuất hiện lời mách nước

b) PHƯƠNG THỨC

- SetFocus: Cho TextBox nhận sự tập trung. Hay nĩi cách khác làm cho con trỏ

chèn nhảy vào TextBox.

Thí dụ: Khi ta bấm vào nút THÊM để thêm mẫu tin mới cho Form

F_CAPNHATSANPHAM, ta muốn con trỏ nhảy ngay tới TextBox txtMASP nào đĩ để ta nhập ngay thơng tin cho cột MASP, ta dùng phương thức SetFocus.

Private Sub THEM_Click()

Me.txtMASP.SetFocus ‘Cho con trỏ chèn nhảy ngay tới TextBox txtMASP

End Sub

c) BIẾN CỐ

- GotFocus: xảy ra khi TextBox nhận được sự tập trung (con trỏ chèn nhảy vào

TextBox).

- On Change: xảy ra khi cĩ sự thay đổi dữ liệu trên TextBox

- BeforeUpdate: xảy ra trước khi dữ liệu được cập nhật xuống Control Source của TextBox.

- AfterUpdate: xảy ra sau khi dữ liệu đã được cập nhật xuống Control Source của

- LostFocus: xảy ra khi TextBox mất sự tập trung, con trỏ chèn đi ra khỏi

TextBox.

4.3.3. COMMAND BUTTON a) THUỘC TÍNH

- Name: đặt thuộc tính Name cho Command Button

- Caption: Đặt thuộc tính nhãn cho CommandButton

Thí dụ: Đoạn lệnh sau đây cĩ chức năng kiểm tra thuộc tính Caption của nút

nút lệnh cĩ tên là CmdVd nếu nhãn của nĩ đang là “Yes” thì đổi lại trở thành “No” và ngược lại nếu đang là “No” thì đổi lại trở thành “Yes”.

If Me.CmdVd.Caption=”Yes” Then Me.CmdVd.Caption=”No” Else

Me.CmdVd.Caption=”Yes” End If

- Picture: Khai báo đường dẫn đến file hình để làm nhãn cho nút lệnh thay dịng

chữ.

Thí dụ: Đặt hình lên nút. Hình là file maybay.ico nằm ở thư mục Hinh của ổ

đĩa C:

Me.cmdLoc.Picture=”C:\Hinh\maybay.ico”

- ControlTipText: tương tự TextBox

Thí dụ: Cho lời mách của nút cmdThem là “Thêm mẫu tin mới” khi mở Form

F_HOADON

Hình 4.17: Lời mách nước của nút lệnh cmdThem xuất hiện khi ta đưa con trỏ chuột vào nĩ

- Visible: tương tự như TextBox Thí dụ: Ẩn nút cmdThoat

Me.cmdThoat.Visible = False

- Enabled: tương tự như TextBox

Thí dụ: làm mờ nút cmdCong, cmdTru, cmdNhan, cmdChia

Me.cmdCong.Enabled = False Me.cmdTru.Enabled = False Me.cmdNhan.Enabled = False Me.cmdChia.Enabled = False

b) PHƯƠNG THỨC

- SetFocus: làm cho nút lệnh nhận sự tập trung

Thí dụ: Khi ta bấm vào nút cmdLuu để lưu mẫu tin thì ta muốn nút cmdThem

nhận được sự tập trung để ta cĩ thể bấm Enter là cĩ thể nhập mẫu tin mới khác.

Me.cmdThem.SetFocus

c) BIẾN CỐ

On Click: xảy ra khi ta Click chuột vào nút

Phn 1: Thiết kế Report

BÀI TP REPORT 1

1. Sử dụng table T_HOADON, T_CTHOADON, T_SANPHAM trong file Banhang.accdb để Report R_THEODOINHAPVATU cĩ dạng sau:

Yêu cầu:

Tạo một Query trung gian và tạo biến “Nhap vao thang muon theo doi:” để lọc dữ liệu theo tháng cĩ giá trị nhập từ bàn phím. Sau đĩ sử dụng query này để tạo Report

Một phần của tài liệu Giáo trình access 2 – trung tâm tin học đh sư phạm kỹ thuật TP HCM (Trang 89)

Tải bản đầy đủ (PDF)

(120 trang)