Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
1,79 MB
Nội dung
http://www.vts.edu.vn Tìm hiểểu vểề kỹỹ thuậật DAO DAO (Data Access Objects – Các đốối tượận g truỹ xuậốt dưỹ liểậu ) tậập hợập bao gốềm lợốp đốối tượận g có thểể dùng đểể lậập trình truỹ cậập xưể lý dưỹ liểậu hểậ CSDL Ởể đậỹ CSDL Access, ngốn ngưỹ lậập trình VBA http://www.vts.edu.vn Đểể naập thư viểận DAO3.6 vào làm viểậc , hãỹ thưậc hiểận sau: Bượốc 1: Mợể cưểa sốể lậập trình VBA; Bượốc 2: Choận thưậc đợn Tools | References Hốập thoaậi sau xuậốt hiểận : http://www.vts.edu.vn Lợốp đốối tượận g DAO Cậỹ phận cậốp lợốp đốối tượận g DAO đượậc thểể hiểận sau: Workspaces Databases RecordSets QueryDefs TableDefs Relations http://www.vts.edu.vn Trong đó: Workspaces – điận h nghĩa tậập hợập vùng làm viểậc Databases - điận h nghĩa tậập hợập CSDL Access cậền làm viểậc mốật dưậ án; RecordSets- điận h nghĩa tậập hợập baển ghi (Records) cậền làm viểậc ; QuerỹDefs - điận h nghĩa tậập hợập Querỹ đểể làm viểậc Querỹdefs Recordsets khaể truỹ xuậốt , xưể lý dưỹ liểậu (Data Manipulation) cuểa DAO; http://www.vts.edu.vn TableDefs - điận h nghĩa tậập hợập baển g (Table) cậền làm viểậc Đậỹ khaể điận h nghĩ dưỹ liểậu (Data-Definition Language); Relations - điận h nghĩa tậập hợập quan hểậ (Relationship) cậền làm viểậc ; - Databases seỹ bao gốềm tậốt caể CSDL đượậc mợể vùng làm viểậc hiểận taậi ; - RecordSets seỹ bao gốềm tậập hợập tậốt caể Recordset đượậc mợể CSDL hiểận taậi http://www.vts.edu.vn Ví duậ sau liểật kể tển cuểa tậốt caể Recordset sưể duận g CSDL db Dim db As DAO.Database 'các cậu lểận h tiểốp theo ợể đậỹ ' For i = To db.Recordsets.Count MsgBox db.Recordsets(i).Name Next http://www.vts.edu.vn Đểể làm viểậc tợối mốật đốối tượận g cuậ thểể, cậền phaểi tham chiểốu tưề lợốp đốối tượận g meậ cuểa Ví duậ: Đểể hiểển thiậ giá triậ cuểa trượền g (Field) hoten tậập hợập baển ghi (Recordset) rs1 làm sau: MsgBox rs1.Fields("hoten").Value ' hoăậc MsgBox rs1.Fields![hoten].Value http://www.vts.edu.vn Database đốối tượận g dùng làm viểậc vợối mốật CSDL (trong trượền g hợập nàỹ có thểể hiểểu mốật CSDL mốật tểập Access MDB) Khai báo Dim db As DAO.Database ' Gán db cho mốật CSDL cuậ thểể Set db = OpenDatabase(“C:\Baitap\qlbh.ACCDB”) 'Đăậc biểật , lểận h gán db cho CSDL hiểận taậi sau: Set db = CurrentDb http://www.vts.edu.vn Khi khống làm viểậc vợối CSDL đó, có thểể lểận h đóng đểể giaểi phóngd bốậ nhợố băền g cách: db.Close Sau lểận h nàỹ thưậc thi, tậốt caể đốối tượận g cuểa db nểốu mợể seỹ đượậc đóng laậi đểể giaểi phóng bốậ nhợố Baển thận db đượậc giaểi phóng bốậ nhợố (băền g Nothing), tậốt nhiển tểập CSDL dưỹ liểậu vậỹn nguỹển đĩa http://www.vts.edu.vn Đốối tượận g Querỹdef dùng đểể tham chiểốu tợối Querỹ có săỹn (Buil-in) CSDL Access, hoăậc có thểể lậập trình taậo Querỹ tưề cậu lểận h SQL http://www.vts.edu.vn Đểể taậo kích hoaật mốật querỹ VBA băền g cách thưậc thi cậu lểận h SQL baận làm theo hượốn g dậỹn sau: 'Khai báo mốật biểốn kiểểu Database mốật biểốn kiểểu QuerỹDef Dim db As DAO.Database Dim qr As DAO.QuerỹDef 'Ra lểận h taậo mốật Querỹ mợối , có tển rốỹn g (chiể ợể bốậ nhợố) Set qr = db.CreateQuerỹDef ( ) 'Gán chuốỹi lểận h SQL vào thuốậc tính SQL cuểa querỹ qr.SQL = " Gõ lểận h SQL cậền thi hành vào đậỹ " 'Ra lểận h thi hành querỹ qr.Execute 'giaểi phóng bốậ nhợố qr.Close http://www.vts.edu.vn Ví duậ 1: Taậo DELETE querỹ đểể xoá danh sách nhưỹn g cán bốậ có tuốểi lợốn hợn 60 khoểi baển g NhanVien (cán bốậ nghiể hưu) Dim db As DAO.Database Dim qr As DAO.QuerỹDef Set db = CurrentDb Set qr = db.CreateQuerỹDef("") qr.SQL="DELETE * FROM NhanVien WHERE Year(Date())- Year(Ngaỹsinh)>=60" qr.Execute qr.Close http://www.vts.edu.vn Ví duậ 2: Giaể sưể thểm mốật trượền g baển g QuaTrinhMucLuong có LuongToiThieu Taậo UPDATE querỹ đểể tính giá triậ trượền g nàỹ =830000 Dim db As DAO.Database Dim qr As DAO.QuerỹDef Set db = CurrentDb Set qr = db.CreateQuerỹDef("") qr.SQL = "UPDATE QuaTrinhMucLuong QuaTrinhMucLuong.LuongToiThieu 830000" qr.Execute qr.Close http://www.vts.edu.vn mợối tển cho SET = Đốối tượận g TableDef đượậc dùng đểể tham chiểốu tợối baển g dưỹ liểậu (Table) CSDL http://www.vts.edu.vn 7.1 Mốật sốố thuốậc tính quan troận g cuểa TableDef Thuốậc tính Name: Cho biểốt tển baển g đượậc gán vào biểốn kiểểu TableDef Thuốậc tính RecordCount: Cho biểốt tốển g sốố baển ghi hiểận có baển g đượậc gán bợểi biểốn TableDef Thuốậc tính DateCreated: Cho biểốt thợềi gian taậo baển g đượậc gán vào biểển kiểểu TableDef Thuốậc tính Fields: Đểể tham chiểốu tợối trượền g cuểa baển g http://www.vts.edu.vn Ví duậ 1: Sub LietKeTenTruong(tenbang As String) Dim tbl As DAO.TableDef Set tbl = db.TableDefs(tenbang) For i = To tbl Fields.Count - MsgBox tbl.Fields(i).Name Next End Sub http://www.vts.edu.vn 7.2 Mốật sốố phượng thưốc cuểa TableDef a Phượng thưốc CreateTableDef Đểể taậo mốật baển g mợối băền g VBA Cú pháp taậo baển g mợối sau: Set tbl = db CreateTableDef ( ) ‘ Các thuể tuậc taậo trượền g mợối cho baển g db.TableDefs.Append tbl http://www.vts.edu.vn b Phượng thưốc CreateField Đểể taậo trượền g cho mốật baển g kiểểu TableDef Đểể thểm mốật trượền g mợối lển baển g, sưể duận g cú pháp sau: tbl.Fields.Append tbl CreateField (,,) Trong đó: ◦ - tển trượềng mợối cậền taậo; ◦ - mốật tuỳ choận đểể khai báo kiểểu dưỹ liểậu cuểa trượềng cậền taậo Kiểểu dưỹ liểậu đượậc khai báo theo hăền g sốố sau: http://www.vts.edu.vn Giá triậ: Tượng ưốn g vợối kiểểu dbBoolean Boolean dbBỹte Bỹte dbChar Char dbCurrencỹ Currencỹ dbDate Date/Time dbDecimal Decimal dbDouble Double dbFloat Float http://www.vts.edu.vn dbGUID GUID dbInteger Integer dbLong Long dbMemo Memo dbNumeric Numeric dbSingle Single dbText Text dbTime Time http://www.vts.edu.vn Ví duậ 2: Sub TaoBangMoi() On Error GoTo Loi Dim tbl As DAO.TableDef Set tbl = db.CreateTableDef("NewTable") tbl.Fields.Append tbl.CreateField("ID", dbInteger) tbl.Fields.Append tbl.CreateField("Name", dbText) tbl.Fields.Append tbl.CreateField("Age", dbBỹte) tbl.Fields.Append tbl.CreateField("DateBirth", dbDate) tbl.Fields.Append tbl.CreateField("Comment", dbMemo) db.TableDefs.Append tbl Exit Sub http://www.vts.edu.vn Loi: If Err.Number = 3010 Then MsgBox "Đã tốền taậi baển g có tển " + tbl.Name End If End Sub http://www.vts.edu.vn Đốối tượận g Relation dùng đểể taậo kểốt nốối (RelationShip) giưỹa baển g CSDL Access http://www.vts.edu.vn Sub CreatRelationShip() On Error GoTo Loi Dim db As DAO.Database Dim rls As DAO.Relation Set db = CurrentDb Set rls = db.CreateRelation ("TaoQuanHe", “NhanVien", “NgaỹCong", dbRelationUpdateCascade) rls.Fields.Append rls.CreateField(“MaNV") rls.Fields(“MaNV").ForeignName = “NhanVien" db.Relations.Append rls Loi: If Err.Number = 3012 Then MsgBox "Đã tốền taậi quan hểậ nàỹ !" End If End Sub http://www.vts.edu.vn [...]... Sub http://www.vts.edu.vn Đốối tượận g Querỹdef dùng đểể tham chiểốu tợối các Querỹ có săỹn (Buil-in) trển CSDL Access, hoăậc cũng có thểể lậập trình taậo các Querỹ tưề các cậu lểận h SQL http://www.vts.edu.vn Đểể taậo và kích hoaật mốật querỹ trển VBA băền g cách thưậc thi cậu lểận h SQL baận làm theo hượốn g dậỹn sau: 'Khai báo mốật biểốn kiểểu Database và mốật biểốn kiểểu QuerỹDef Dim db As... For i = 0 To tbl Fields.Count - 1 MsgBox tbl.Fields(i).Name Next End Sub http://www.vts.edu.vn 7.2 Mốật sốố phượng thưốc cuểa TableDef a Phượng thưốc CreateTableDef Đểể taậo ra mốật baển g mợối băền g VBA Cú pháp taậo baển g mợối như sau: Set tbl = db CreateTableDef ( ) ‘ Các thuể tuậc taậo trượền g mợối cho baển g db.TableDefs.Append tbl http://www.vts.edu.vn b Phượng thưốc CreateField ... hợập bao gốềm lợốp đốối tượận g có thểể dùng đểể lậập trình truỹ cậập xưể lý dưỹ liểậu hểậ CSDL Ởể đậỹ CSDL Access, ngốn ngưỹ lậập trình VBA http://www.vts.edu.vn Đểể naập thư viểận DAO3.6... Đểể naập thư viểận DAO3.6 vào làm viểậc , hãỹ thưậc hiểận sau: Bượốc 1: Mợể cưểa sốể lậập trình VBA; Bượốc 2: Choận thưậc đợn Tools | References Hốập thoaậi sau xuậốt hiểận : http://www.vts.edu.vn... có săỹn (Buil-in) CSDL Access, hoăậc có thểể lậập trình taậo Querỹ tưề cậu lểận h SQL http://www.vts.edu.vn Đểể taậo kích hoaật mốật querỹ VBA băền g cách thưậc thi cậu lểận h SQL baận làm