Bài giảng cơ sở dữ liệu
09/04/12Design: Nguyen Hien Du11. Bộ máy (Engine) cơ sở dữ liệu là gì?Chức năng cơ bản của CSDL được cung cấp bởi một bộ máy CSDL, là hệ thống chương trình quản lý cách thức chứa và trả về dữ liệu. Bộ máy CSDL ở đây là Microsofts Jet. Jet là một hệ thống con được nhiều ứng dụng của Microsoft sử dụng.Cơ sở dữ liệuCơ sở dữ liệuChú ý : trước khi lập trình phải khai báo thư viện DAO như sau: Tools/References/Microsof DAO 3.6 Object Library/ok 09/04/12Design: Nguyen Hien Du22. Sơ đồ quan hệ của các đối tượngDBEngineWorkspacesDatabasesTableDefs QueryDefs RecordsetsFields Indexes Fields Parameters FieldsFields 09/04/12Design: Nguyen Hien Du33. Các đối tượng phục vụ việc xử lý đối tượngĐối tượng kiểu Database: dùng để thao tác với một cơ sở dữ liệuĐối tượng kiểu Tabledef: Dùng để tạo, xoá, sửa cấu trúc của bảngĐối tượng kiểu QueryDef: Dùng để tạo, xoá, sửa cấu trúc của truy vấnĐối tượng kiểu Recorset: Dùng để xử lý các bản ghi của CSDL 09/04/12Design: Nguyen Hien Du44.Các chức năng xử lýKhi sử dụng đối tượng kết hợp với phương thức và thuộc tính ta có thể xử lý một số công việc sau:Sắp xếp các bản ghi theo một trật tự nhất định nào đó.Lấy ra những bản ghi thoả mãn một số điều kiện nào đóDò tìm các bản ghi mà ta cầnThêm, xoá và sửa các bản ghi 09/04/12Design: Nguyen Hien Du5Biến Kiểu DATABaSE1. Làm việc với một cơ sở dữ liệu cần:1. Làm việc với một cơ sở dữ liệu cần:+ Khai báo một biến kiểu Database+ Khai báo một biến kiểu Database+ Cho biến này tham chiếu đến một CSDL cụ + Cho biến này tham chiếu đến một CSDL cụ thể nào đó trong một vùng làm việc nào đóthể nào đó trong một vùng làm việc nào đó2. Để kết nối với CSDL hiện hành có 2 cách2. Để kết nối với CSDL hiện hành có 2 cáchCách 1:Cách 1: (Dùng hàm CurrentDB) (Dùng hàm CurrentDB)Khai báo biến DB kiểu DatabaseKhai báo biến DB kiểu Database 09/04/12Design: Nguyen Hien Du6Dim DB as DatabaseDim DB as Database Thắt chặt mối quan hệ giữa biến DB và CSDL hiện Thắt chặt mối quan hệ giữa biến DB và CSDL hiện hành.hành.Set DB=CurrentDB()Set DB=CurrentDB()Cách 2:Cách 2:Dim DB as DatabaseDim DB as DatabaseSet DB= Set DB= DBEngine.Workspace(0).Databases(0)DBEngine.Workspace(0).Databases(0) 09/04/12Design: Nguyen Hien Du73. Làm việc với một CSDL khácTại một thời điểm có thể đồng thời làm việc với nhiều CSDL khác nhau. Như vậy có thể đồng thời cùng xử lý bảng, truy vấn. Tuy nhiên chỉ cho phép sử dụng biểu mẫu, Macro, Report, Modul của CSDL hiện tại.Cách làm việcDim DB as DatabaseDim Ws as WorkspaceSet Ws=DBEngine.Workspace(0)Set DB=Ws.Opendatabase(<Tên CSDL>) 09/04/12Design: Nguyen Hien Du8Để đóng một đối tượng ta dùng phương thức CloseDB.CloseVí dụ:Dim db As Databasea = Dir("Ketoanmt.MDB")If a = "" Then MsgBox "Ketoanmt.MDB not found" Exit SubEnd Ifa = VBA.CurDir$() & "\" & aSet db = Workspaces(0).OpenDatabase(a)MsgBox "ketoanmt.MDB is now open"db.Close 09/04/12Design: Nguyen Hien Du9Biến kiểu RecorSetĐể xử lý dữ liệu của bảng, truy vấn ta dùng biến khai báo kiểu RecordsetCó 3 loại RecordsetKiểu Recordset Số bản ghi Dữ liệuLoại Table Có thể thay đổi Có thể thay đổiLoại Dynaset Có thể thay đổi Có thể thay đổiLoại Snapshot Không thay đổi Không thay đổi 09/04/12Design: Nguyen Hien Du10a. Recordset loại Table: Chỉ áp dụng cho bảng của CSDL hiện tại, có thể thêm, xoá, sửa, sắp xếp tìm kiếm theo phương thức Seekb. Recordset loại Dynaset: Có thể áp dụng trên bảng, truy vấn. Có thể thay đổi dữ liệu (thêm, xoá, sửa) và tìm kiếm theo phương thức Findc. Recordset loại Snapshot: Có thể áp dụng trên bảng và truy vấn nhưng chỉ cho xem dữ liệu [...]...09/04/12 Design: Nguyen Hien Du 1 1. Bộ máy (Engine) cơ sở dữ liệu là gì? Chức năng cơ bản của CSDL được cung cấp bởi một bộ máy CSDL, là hệ thống chương trình quản lý cách thức chứa và trả về dữ liệu. Bộ máy CSDL ở đây là Microsofts Jet. Jet là một hệ thống con được nhiều ứng dụng của Microsoft sử dụng. Cơ sở dữ liệu Cơ sở dữ liệu Chú ý : trước khi lập trình phải khai báo thư viện DAO... thấy 6. Nhân biết vị trí bản ghi đầu, cuối EOF = True: đà ở bản ghi cuối BOF=True : đà ở bản ghi đầu tiên 09/04/12 Design: Nguyen Hien Du 5 BiÕn KiĨu DATABaSE 1. Lµm viƯc víi mét cơ sở dữ liệu cần: 1. Làm việc với một cơ sở dữ liệu cần: + Khai báo một biến kiểu Database + Khai báo một biến kiểu Database + Cho biến này tham chiếu đến một CSDL cụ + Cho biến này tham chiếu đến một CSDL cụ thể nào đó trong... ®é réng cđa trêng Lu ý: ®èi víi kiĨu number hoặc date không đặt độ rộng cho trường, chỉ ¸p dơng cho kiĨu text 09/04/12 Design: Nguyen Hien Du 16 2. Tham chiếu đến các trường của Recordset Để lấy dữ liệu của các trường hoặc thay đổi giá trị của các trường cần tham chiếu đến các trường của Recordset. a. Dùng tên trường Có thể dùng 3 cách viÕt sau: Bien_Rec!tªn trêng Bien_Rec(“Tªn trêng”) Bien_Rec.Fields(“Tªn... tiÕp MoveLast: VỊ b¶n ghi cuối cùng 2. Phương thức thêm, xoá, sửa ADD: Thêm mới bản ghi UPDATE: Cập nhật (Ghi lại) Bản ghi EDIT: Sửa bản ghi DELETE: Xãa b¶n ghi 09/04/12 Design: Nguyen Hien Du 27 Các kiểu dữ liệu của trường: dbBoolean dbByte dbChar dbCurrency dbDate dbDouble dbInteger dbLong dbLongBinaryLong Binary (OLE Object) dbMemo dbNumeric, dbSingle, dbText ………… 09/04/12 Design: Nguyen Hien Du 26 3.... Recordset loại Table: Chỉ áp dụng cho bảng của CSDL hiện tại, có thể thêm, xoá, sửa, sắp xếp tìm kiếm theo phư ơng thức Seek b. Recordset loại Dynaset: Có thể áp dụng trên bảng, truy vấn. Có thể thay đổi dữ liệu (thêm, xoá, sửa) và tìm kiếm theo phương thức Find c. Recordset loại Snapshot: Có thể áp dụng trên bảng và truy vấn nhưng chỉ cho xem d÷ liƯu 09/04/12 Design: Nguyen Hien Du 15 Hoăc có thể viết Dim... VÝ dô 2: Set db = ws.CreateDatabase("NewDB.mdb", dbLangGeneral & ";pwd=Password” , dbEncrypt) 09/04/12 Design: Nguyen Hien Du 11 1. Phương thức Openrecordset() là phương thức cơ bản để tạo một biến Recordset Cách viết: Set Bien_R=Bien_O.OpenRecordset(Nguồn,loại) - Bien_O: là một biến đối tượng kiểu database, Tabledef, hoặc Querydef - Nguồn: là chuỗi ký tự biểu thị tên bảng, . Jet là một hệ thống con được nhiều ứng dụng của Microsoft sử dụng .Cơ sở dữ liệuCơ sở dữ liệuChú ý : trước khi lập trình phải khai báo thư viện DAO như sau:. Nguyen Hien Du5Biến Kiểu DATABaSE1. Làm việc với một cơ sở dữ liệu cần:1. Làm việc với một cơ sở dữ liệu cần:+ Khai báo một biến kiểu Database+ Khai báo