Twitter Delicious Facebook Digg Stumbleupon Favorites More

Thứ Năm

Chương 5: ĐỐI TƯỢNG VÀ BIẾN ĐỐI TƯỢNG

I.  Đối tượng và tập hợp:
II. Biến đối tượng:
III. Sử dụng các biến đối tượng:
I.  Đối tượng và tập hợp
Các nguồn cung cấp đối tượng trong MS Access:
         MS Access: đối tượng hiển thị dữ liệu
         MS DAO: đối tượng truy nhập dữ liệu
         Visual Basic: đối tượng đem lại sự linh động trong lập trình
     Tập hợp: là các đối tượng có cùng kiểu
     Tham chiếu tới các đối tượng:
          Các đối tượng riêng biệt:   tên_đối_tượng
         Các đối tượng thuộc về tập hợp:
             C1: Tên_tập_hợp!tên_đối_tượng
             C2: Tên_tập_hợp(tên_đối_tượng)
C3:  Tên_tập_hợp(chỉ số)
  Tập thuộc tính:
     Xác lập giá trị cho thuộc tính:
           Tên_đối_tượng.tên_thuộc_tính = giá trị
     Lấy giá trị của thuộc tính:
           Tên_biến = tên_đối_tượng.tên_thuộc_tính
II. Biến đối tượng
Biến đối tượng: biến biểu thị một đối tượng cụ thể thuộc vào một kiểu đối tượng
     Kiểu đối tượng: phần dữ liệu, các phương thức
    Khai báo:
        Cú pháp:   Dim  tên_biến   AS  tên_kiểu_đối_tượng
Gán các biến đối tượng:
        Cú pháp:   SET  tên_biến = dạng biểu thị
    Biểu thị các thành phần đối tượng:
        Giữa các đối tượng:  !
        Thuộc tính, phương thức:  .
In tên các điều khiển có trong Form Mật khẩu
Sub   Dkhien_Matkhau()
             Dim   Frm   As   Form
            Dim  n  As  Integer,  i  As  Integer
             DoCmd.OpenForm   ”Matkhau"
            Set   Frm = Forms(”Matkhau")
             n = Frm.Count
            For   i = 0   To   n - 1
            MsgBox   Frm(i).Name
            Next   i
End Sub
Liệt kê các bảng có trong CSDL hiện tại
SUB  Inbang()
             Dim   db   As    Database
             Dim    t     As    TableDef
             Set db = CurrentDb()
            For  Each    t    In    db.TableDefs
                 MsgBox    t.Name
            Next    t
ENDSUB
III. Sử dụng các biến đối tượng
1.  Biến đối tượng Database: 
        Khai báo:
            DIM   Tên_biến_DB   AS  Database
      Gán biến đối tượng:
SET Tên_biến_DB=DBEngine.Workspace(0).OpenDatabase(tập                                                                                 tin CSDL)
Ví dụ: Khai báo một biến Db làm việc với CSDL hiện hành
      C1:  DIM   Db  AS  Database
             SET   Db= DBEngine.Workspace(0).Database(0)
      C2:  DIM   Db  AS  Database
             SET   Db= CurrentDB()

2.  Biến đối tượng Recordset: Lưu trữ tập các bản ghi.
      Tạo đối tượng Recordset: Dùng phương thức OpenDatabase của đối tượng Database
      Khai báo:   DIM   tên_biến_RS   AS    Recordset
Ví dụ: Dim   Rs   As   Recordset
             Tham chiếu vào một đối tượng cụ thể:
 SET  tên_biến_RS=tên_biến_DB.OpenRecordSet (“nguồn dl”,                                                                                                 loại)
Nguồn dữ liệu: Tên của một bảng, truy vấn, câu lệnh SQL.
     
Loại dùng 1 trong 3 hằng sau:
            DB_OPEN_TABLE: Tham chiếu đến 1 bảng, dữ liệu có thể thay đổi được
            DB_OPEN_DYNASET: Tham chiếu đến bảng, query, dliệu có thể thay đổi được
            DB_OPEN_SNAPSHOT: Tham chiếu đến 1 bản sao của dliệu, không thay đổi dữ liệu được
Ví dụ:
Dim   Db   As   Database
Dim   Rs   As   Recordset
Set   Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE)
Tham chiếu đến các trường dữ liệu của biến RecordSet:
                Tên_biến_RS!tên_trường
    hoặc:    Tên_biến_RS.fields(“tên_trường”)
Ví dụ: Truy xuất đến trường mã môn học trong bảng Môn học
                        Rs!MaMH
Hoặc   Rs.fields(“MaMH”)
Tham chiếu đến các phương thức, thuộc tính của biến RecordSet:
            Tên_biến_RS.tên_phương_thức/ tên_thuộc_tính
Các phương thức di chuyển:
            MOVEFIRST: Đến bản ghi đầu tiên trong biến Recordset
            MOVEPREVIOUS
            MOVENEXT
            MOVELAST
            MOVE(n): Đến bản ghi n trong biến Recordset
Ví dụ: Rs.MoveNext
Phương thức đóng : CLOSE
            Tên_biến_RS.CLOSE
Ví dụ: Rs.Close
Phương thức đếm số bản ghi:  RECORDCOUNT
Ví dụ: Đếm số bản ghi trong bảng môn học
                        Rs.MoveLast
                        Rs.RecordCount
Thuộc phát hiện các giới hạn:
     BOF = True : trước bản ghi đầu tiên, hoặc không có bản ghi EOF = True : sau bản ghi cuối cùng, hoặc không có bản ghi       Tên_biến_RS.BOF
Ví dụ:  Rs.BOF
Ví dụ: In ra màn hình trực tiếp danh mục các môn học
SUB    InMH()
Dim   Db   As   Database
Dim   Rs   As   Recordset
Set   Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE)
DO  WHILE   (Rs.EOF = False)
            Debug.Print   Rs!MaMH, Rs!TenMH, Rs!Heso
            Rs.MoveNext
LOOP
Rs.Close
ENDSUB
III. Sử dụng các biến đối tượng:
Viết thủ tục xử lý sự kiện gắn với nút Xem để khi nhập một mã MH ® Xem: thông tin ứng với môn học hiển thị lên các Textbox của Form

Hiệu chỉnh 1 bản ghi:
        -  Chuyển đến bản ghi muốn hiệu chỉnh
        -  Dùng phương thức EDIT
        -  Tiến hành hiệu chỉnh
        -  Dùng phương thức UPDATE
Ví dụ:  Sửa Tên môn học có Mã số AV1 thành Anh Văn 1
-          Tìm bản ghi có MaMH = “AV1”
-          Gọi phương thức EDIT
-          Thay  TenMH = “Anh Văn 1”
-          Gọi phương thức UPDATE
SUB          SuaTenMH()
Dim   Db   As   Database
Dim   Rs   As   Recordset
Set   Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE)
DO  WHILE   (Rs.EOF = False)
            IF    Rs!MaMH = “AV1”   THEN              
                        Rs.EDIT
                        Rs!TenMH = “Anh Văn 1”
                        Rs.UPDATE
                        EXIT  DO
            ELSE
                        Rs.MoveNext
LOOP
Rs.Close
ENDSUB
Viết thủ tục xử lý sự kiện gắn với nút Sửa để khi Xem thông tin môn học hiển thị lên các Textbox của Form, thay đổi thông tin ® nút Sửa để lưu lại thông tin vừa sửa. 
Thêm 1 bản ghi mới:
        -  Dùng phương thức ADDNEW
        -  Nhập dữ liệu cho bản ghi này
        -  Dùng phương thức UPDATE
Ví dụ: Thêm môn học mới vào bảng MONHOC
                        MaMH :         AV2
                        TenMH :        Anh Văn 2
                        Heso :              1
SUB    ThemMH()
Dim   Db   As   Database
Dim   Rs   As   Recordset
Set   Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE)
            Rs.ADDNEW
            Rs!MaMH = “AV2”
            Rs!TenMH = “Anh Văn 2”
            Rs!Heso = 1
            Rs.UPDATE
            Rs.Close
ENDSUB
Viết thủ tục xử lý sự kiện gắn với nút Thêm để thêm vào bảng môn học với các thông tin của môn học được nhập vào các Textbox trên Form
Xoá 1 bản ghi:
        -  Chuyển đến bản ghi cần xoá
        -  Dùng phương thức DELETE
Ví dụ: Xóa từ bảng MONHOC môn học có mã “AV1”
SUB    XoaMH()
Dim   Db   As   Database , Rs   As   Recordset
Set   Rs = Db.OpenRecordset (“MONHOC”, DB_OPEN_TABLE)
DO  WHILE   (Rs.EOF = False)
            IF    Rs!MaMH = “AV1”   THEN              
                        Rs.DELETE
                        EXIT  DO
                        ELSE
                        Rs.MoveNext
LOOP
Rs.Close
ENDSUB

Viết thủ tục xử lý sự kiện gắn với nút Xóa để xóa từ bảng môn học một môn học có mã được nhập vào Textbox trên Form.

Tìm kiếm 1 bản ghi:
       Phương thức SEEK (áp dụng với loại mở nguồn dữ liệu là DB_OPEN_TABLE)
         -  Chỉ ra tên chỉ mục
         -  Tên_biến_RS.SEEK “toán tử so sánh”,”giá trị so sánh”
      Thuộc tính kiểm tra: NOMATCH
          NOMATCH=True: không tìm thấy bản ghi
     
3.  Biến đối tượng QueryDef:
     Khai báo:
        DIM  Tên_biến_QD  AS  QueryDef
     Tạo 1 query: dùng phương thức CREATEQUERYDEF của đối tượng Database
        SET  tên_biến_QD=tên_biến_DB.CREATEQUERYDEF(“tên query”)
        Tên_biến_QD.SQL=”câu lệnh SQL”
Tên_biến_DB.Tên_biến_QD.DELETE(“tên query”)
Thi hành: EXECUTE
         Tên_biến_QD.EXECUTE    
Đóng: CLOSE
        Tên_biến_QD.CLOSE
     Xoá: DELETE

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates