bg access vba

84
Phạm Thị Kim Ngoan 1 Phần 2: VISUAL BASIC FOR APPLICATION (VBA) Chương 1: TỔNG QUAN VỀ VB Chương 2: CÁC KHAI BÁO TRONG VB Chương 3: CÁC CẤU TRÚC ĐIỀU KHIỂN VÀ KIỂU DỮ LIỆU CÓ CẤU TRÚC Chương 4: THỦ TỤC CỦA NGƯỜI DÙNG Chương 5: ĐỐI TƯỢNG VÀ BIẾN ĐỐI TƯỢNG

Upload: duccuong121

Post on 01-Dec-2015

27 views

Category:

Documents


2 download

TRANSCRIPT

  • Phn 2: VISUAL BASIC FOR APPLICATION (VBA)Chng 1: TNG QUAN V VBChng 2: CC KHAI BO TRONG VBChng 3: CC CU TRC IU KHIN V KIU D LIU C CU TRCChng 4: TH TC CA NGI DNGChng 5: I TNG V BIN I TNG

    Phm Th Kim Ngoan

  • Chng 1: TNG QUAN V VBAI. Gii thiu chungII. ModuleIII. Cu trc ca ModuleVI. To v thc hin cc th tcV. Mt s hiu ng khi vit v sa cha m lnh

    Phm Th Kim Ngoan

  • I. Gii thiu chungVisual Basic l ngn ng lp trnh dng rng buc cc i tng trong ng dng vi nhau thnh mt h thng hp nht. Cc chng trnh ca VBA (Visual Basic for Application) c t chc v hot ng trong Access nhm mc ch xy dng cc ng dng phc tp.C th dng VB thc hin cc cng vic sau:- Lm cho ng dng d bo tr hn To ra cc hm/th tc ca ngi s dng x l cc thao tc phc tp m cha c MS Access cung cp sn. X l li theo ngi s dng.

    Phm Th Kim Ngoan

  • I. Gii thiu chungTo hay thao tc vi cc i tng Thc hin cc thao tc cp h thng : thc hin mt ng dng khc, lin kt gia cc ng dng.c im:- Chng trnh ca VBA hot ng ch yu theo hng s kin : bm chut ti cc nt lnh, di chuyn vo hay ra i tng iu khin ca form, report Cc th tc v hm ca VBA nm ri rc trong cc module ca form, report hoc module chung ca CSDL v chng c th gi ln nhau.

    Phm Th Kim Ngoan

  • II. Module1. Khi nim Module: L tp cc tu chn, cc khai bo, cc th tc cng c lu tr trong mt n v chng trnh. 2. Phn loi Module: - Module chun: C th thi hnh bt c ni no trong ng dng. - Module lp: Cc th tc nh ngha trong Module lp s tr thnh cc phng thc ca i tng ny. * Mi Form/Report u c th kt hp vi mt Module lp (Form Module/Report Module), Module lp ny c lu cng vi Form/Report.

    Phm Th Kim Ngoan

  • III. Cu trc ca Module1. Module chun: - Cc tu chn - Cc khai bo ton cc (Public) - Cc khai bo cp module (Dim) - Cc th tc s dng ton cc - Cc th tc s dng cp module 2. Module loi: - Cc tu chn - Cc khai bo cp module - Cc th tc x l s kin - Cc th tc s dng cp module

    Phm Th Kim Ngoan

  • Module chun

    Phm Th Kim Ngoan

  • Module loi

    Phm Th Kim Ngoan

  • III. Cu trc ca Module3. Cu trc mt th tc: a. Cu trc Sub procedure :Sub Tn_th _tc ([Cc tham s]) Cc lnhEnd Subb. Cu trc Function procedure :Function Tn_hm ([Cc tham s]) [AS kiu d liu] Cc lnh Tn_hm = biu thc gi trEnd Subc. Cu trc th tc x l s kin : Private Sub Tnitng__tnskin ([Cc tham s]) Cc lnh End Sub

    Phm Th Kim Ngoan

  • VI. To v thc hin cc th tc1. Th tc x l s kin: Thng l cc th tc gn vi cc iu khin ca Form (nt lnh, ) t trong Module loi - To mi: M Form c iu khin cn gc th tc dng thit k.Chn Properties ca iu khin cn gn th tc, chn ngn s kin (Event)Chn s kin cn gn (On Click, ), chn nt , chn Code Builder, MS Access a ra khun dng ca th tc vi tn tng ng, ti v tr con tr: g cc lnh cn thc hin trong th tc. - Thc thi: M Form, tc ng s kin va gn ln nt lnh.

    Phm Th Kim Ngoan

  • VI. To v thc hin cc th tc2. Th tc Sub procedure v Function procedure: t trong Module loi hoc chun. - To mi: M mn hnh vit m lnh, vit th tc theo cu trc tng ng. - Thc thi:Bin dch cho n khi khng cn li c php Menu Debug Complie Loaded ModulesChy xem kt qu trong khung trc tip: M m hnh trc tip: Menu View DebugWindow / Immediate Window

    Phm Th Kim Ngoan

  • VI. To v thc hin cc th tcChy th tc: Th tc khng c tham s: Tn_Module.Tn_th_tc Call Tn_Module.Tn_th_tcCall Tn_Module.Tn_th_tc ()V d: Tinhtoan.TongCall Tinhtoan.TongCall Tinhtoan.Tong()

    Phm Th Kim Ngoan

  • VI. To v thc hin cc th tcTh tc c tham s: Call Tn_Module.Tn_th_tc (Cc tham s thc s)V d: Call Tinhtoan.Tongab(15, 56) Hm (Function procedure):? Tn_Module.Tn_hm () ? Tn_Module.Tn_hm? Tn_Module.Tn_hm (Cc tham s thc s) V d: ?Tinhtoan.Tong1()?Tinhtoan.Tong2(25, 35)

    Phm Th Kim Ngoan

  • VI. To v thc hin cc th tcGi th tc t cc th tc khc: Th tc: Call Tn_Module.Tn_th_tc (Cc tham s thc s) Hm: t trong cc biu thc Tn_Module.Tn_hm (Cc tham s thc s)

    Phm Th Kim Ngoan

  • V. Mt s hiu ng khi vit v sa cha m lnh- T ng xy dng cc pht biu: Tools -> Options -> Module -> Auto list Members - Thng tin nhanh: Tools -> Options -> Module -> Auto QuickInfo - T ng kim tra c php: Tools -> Options -> Module -> Auto Syntax Check - Di chuyn gia cc th tc trong module: Ctrl + Page Down / Ctrl + Page Up

    Phm Th Kim Ngoan

  • Chng 2: CC KHAI BO TRONG VBI. Cc tu chnII. Cc kiu d liu c bnII. Khai boIV. Cc hm/th tc nhp xut d liuV. Mt s hm / th tc ca VB

    Phm Th Kim Ngoan

  • I. Cc tu chnOption Explicit: ngi dng phi khai bo tng minh cc binOption Compare Binary: phn bit ch thng v hoa khi vit chng trnhOption Compare Text: phn bit ch thng v hoa khi so snhOption Base n: qui nh ch s u tin trong kiu d liu mng

    Phm Th Kim Ngoan

  • II. Cc kiu d liu c bn

    Phm Th Kim Ngoan

  • II. Cc kiu d liu c bn

    Phm Th Kim Ngoan

  • III. Khai bo1. Khai bo hng: Public/Private CONST Tn_hng [AS Kiu d liu] = Biu thc gi tr V d:Const Pi=3.14 Public Const S = y l v d Private Const so As Integer = 5 2. Khai bo bin: Public/Private/Dim/Static Tn_bin [AS Kiu d liu] V d: Public Hoten As String, DTB As DoublePrivate Diachi As String

    Phm Th Kim Ngoan

  • III. Khai boPhm vi s dng: Mc th tc : Cc khai bo bn trong th tc. Mc module : Cc khai bo Private Const trong phn khai bo ca module. Mc project : Khai bo PublicTn:Gm ch ci, ch s v du gch chn, bt u l ch ci. Khng trng vi t kho ca Access. di khng vt qu 40 k t.

    Phm Th Kim Ngoan

  • IV. Cc hm/th tc nhp xut d liu1. Nhp d liu: hm InputBox, InputBox$ C php: INPUTBOX[$](Dng nhc [[,tiu ] [, gi tr mc nh][,x, y] ]) Hm InputBox tr v gi tr Variant Chc nng : Hin th dng nhc trong mt hp thoi, i nhp liu v tr v gi tr trong textbox V d: Nhp 1 s nguyn t bn phm v lu trong bin aDim a as Integera = Inputbox(Nhp a=, Nhp s liu)

    Phm Th Kim Ngoan

  • IV. Cc hm/th tc nhp xut d liu2. Xut d liu: a. Th tc Msgbox C php: MsgBox Dng thng bo, kiu hp thoi, tiu b. Hm Msgbox C php: MsgBox (Dng thng bo, kiu hp thoi, tiu )Kiu hp thoi: Gi tr cho bit cc nt lnh no s hin th v cc biu tng s hin th trong hp thoi.Chc nng : Hin th mt thng ip trong hp hi thoi v i ngi s dng chn mt nt lnh.Khc nhau gia hm v th tc MsgBox : Hm MsgBox tr v gi tr cho bit chn nt lnh no, cn th tc th khng.

    Phm Th Kim Ngoan

  • IV. Cc hm/th tc nhp xut d liu* Tham s kiu hp thoi gm 3 thnh phn: Nt lnh no s hin th, kiu biu tng hin th, nt ngm nh. - Nt lnh hin th:0 / vbOnlyOKOK1 / vbOKCancel OK, Cancel2 / vbAbortRetryIgnore Abort, Retry, Ignore3 / vbYesNoCancel Yes, No, Cancel4 / vbYesNo Yes, No5 / vbRetryCancel Retry, Cancel

    Phm Th Kim Ngoan

  • IV. Cc hm/th tc nhp xut d liu- Xc nh biu tng:0khng16 / vbCriticalCritical (Stop) 32 / vbQuestionWarning query48 / vbExclamationWarning Message64 / vbInformationInformation

    Phm Th Kim Ngoan

  • IV. Cc hm/th tc nhp xut d liu- Xc nh nt ngm nh:0 / vbDefaultButton1 nt th 1256 / vbDefaultButton2 nt th 2512 / vbDefaultButton3 nt th 3* Gi tr ca hm khi nt lnh c chn:1OK 4Retry2Cancel 5Ignore3Abort6Yes7Noc. In ra mn hnh trc tip: Debug.print biu thc

    Phm Th Kim Ngoan

  • IV. Cc hm/th tc nhp xut d liuV d: In ra di dng hp thoi tng ca a+ b (dng th tc)Msgbox Tng ca a+b= & a+b, vbOkCancel + vbInformation, Kt quIn ra di dng hp thoi tng ca a+ b c kim tra nt lnh bm (dng hm Msgbox)IF Msgbox (Tng ca a+b= & a+b, vbOkCancel+vbInformation, Kt qu)= vbOk THEN

    Phm Th Kim Ngoan

  • V. Mt s hm / th tc ca VBACc hm v chui:LTRIM(St) ct cc k t trng bn tri chuiRTRIM(St)ct cc k t trng bn phi chuiTRIM(St) ct cc k t trng bn phi v bn tri chuiLEN(St) di chuiLEFT(St,n)ly n k t bn tri chuiRIGHT(St,n)ly n k t bn phi chuiMID(St,i,n)ly n k t bt u t v tr i trong chuiSTR(n)i s thnh chui

    Phm Th Kim Ngoan

  • V. Mt s hm / th tc ca VBLCASE(St)i cc k t trong chui thnh ch thngUCASE(St)i cc k t trong chui thnh ch inCc hm tnh ton:ABS(n)tr tuyt iFIX(r)ly phn nguyn ca s thcINT(r)ly phn nguyn gn nht v nh hn rSQR(n) cn bc 2 ca nEXP(n)hm e m nVAL(St)i chui thnh s Cc hm v ngy, gi:NOW()ly ngy gi ca h thngDATE()ngy h thngTIME()gi h thng

    Phm Th Kim Ngoan

  • V. Mt s hm / th tc ca VBDATEPART(dt)ly mt phn ca ngy/thng/nmDATEPART(d, dt)ly phn ngyDAY(dt)DATEPART(m, dt)ly phn thngMONTH(dt)DATEPART(yyyy, dt)ly phn nmYEAR(dt)Cc hm kim tra:ISNUMERIC(n)kim tra n c phi l mt s khng?ISDATE(d)kim tra d c phi l kiu ngy khng?Ch : dng ch thch Vit lnh trn nhiu dng dng du space v gch di ( _)

    Phm Th Kim Ngoan

  • Chng 3: CC CU TRC IU KHIN V KIU D LIU C CU TRCCc cu trc iu khin:1. Cu trc la chn:2. Cu trc lp:3. Lnh Exit:II. Kiu d liu c cu trc:1. Mng:2. Bn ghi:

    Phm Th Kim Ngoan

  • I. Cc cu trc iu khin1. Cu trc la chn: a. IF .. THEN C php1: IF (iu kin) THEN khi lnh vit trn cng 1 dngCp2:IF (iu kin) THEN khi lnhENDIF

    Phm Th Kim Ngoan

  • I. Cc cu trc iu khinV d: Cp1:IF a >= b THEN Debug.Print aCp2: IF a >= b THEN Debug.Print aENDIF

    Phm Th Kim Ngoan

  • I. Cc cu trc iu khinb. IF .. THEN .. ELSE C php: IF (iu kin) THEN khi lnh 1ELSE khi lnh 2ENDIFc. IF .. THEN .. ELSEIF C php: IF (iu kin1) THEN khi lnh 1ELSEIF (iu kin2) THEN khi lnh 2ELSE khi lnhENDIF

    Phm Th Kim Ngoan

  • I. Cc cu trc iu khinV d:IF a >= b THEN Debug.Print aELSE Debug.Print bENDIFV d:IF (a >= b) and (a >=c) THEN Debug.Print aELSEIF (b >= a) and (b >=c) THEN Debug.Print bELSE Debug.Print cENDIF

    Phm Th Kim Ngoan

  • I. Cc cu trc iu khind. SELECT CASE END SELECT:C php: SELECT CASE biu thc gi tr CASE gtr1: khi lnh 1 CASE gtr2: khi lnh 2 CASE ELSE khi lnh END SELECT

    Phm Th Kim Ngoan

  • I. Cc cu trc iu khinV d:SELECT CASE nCASE 1: Debug.Print mtCASE 2: Debug.Print haiCASE 3: Debug.Print baCASE 4: Debug.Print bnCASE 5: Debug.Print nmCASE ELSE Debug.Print ln hn nm END SELECT

    Phm Th Kim Ngoan

  • I. Cc cu trc iu khin2. Cu trc lp: a. FOR .. NEXT C php: FOR bin_m=gi tr u TO gi tr cui [STEP bc lp] khi lnh NEXT bin_m V d: Tnh tng 10 s nguyn dng u tinTong = 0FOR i =1 TO 10 [Step 1] Tong = Tong + iNEXT i

    Phm Th Kim Ngoan

  • I. Cc cu trc iu khinb. DO WHILE .. LOOP: C php 1:DO WHILE (iu kin) khi lnhLOOP C php 2:DO khi lnhLOOP WHILE (iu kin) C php 3: WHILE (iu kin) khi lnhWEND

    Phm Th Kim Ngoan

  • I. Cc cu trc iu khinV d: Tnh tng 10 s nguyn dng u tinTong = 0: i =1DO WHILE (i < =10)Tong = Tong + i : i =i + 1LOOPTong = 0: i =0DO Tong = Tong + i : i =i + 1LOOP WHILE (i < = 10)

    Phm Th Kim Ngoan

  • I. Cc cu trc iu khinc. DO UNTIL LOOP: C php 1:DO UNTIL (iu kin) khi lnhLOOPC php 2:DO khi lnhLOOP UNTIL (iu kin)3. Lnh Exit: Exit Do Exit For Exit Function Exit Sub

    Phm Th Kim Ngoan

  • I. Cc cu trc iu khinV d: Tnh tng 10 s nguyn dng u tinCp1:Tong = 0: i =1DO UNTIL (i > 10)Tong = Tong + i : i =i + 1LOOPCp2:Tong = 0: i = 0DO Tong = Tong + i : i =i + 1LOOP UNTIL ( i > 10)

    Phm Th Kim Ngoan

  • II. Kiu d liu c cu trc1. Mng: Khai bo:DIM Tn_mng (ch s1, ch s2, ) AS kiu d liu Truy xut:Tn_mng(ch s) V d: Option Base 1Dim A (10) As Integer, B(3, 4) As IntegerTruy xut n phn t th 4 ca mng A: A(4)Truy xut n phn t hng 2, ct 3 ca mng B: B(2, 3)

    Phm Th Kim Ngoan

  • II. Kiu d liu c cu trcMng ng: Khai bo: DIM Tn_mng() AS kiu d liu Thay i kch thc: REDIM Tn_mng(ch s1, ch s2, )V d:Option Base 1Dim A () As IntegerREDIM A(5) Xa mng: Erase Tn_mng

    Phm Th Kim Ngoan

  • II. Kiu d liu c cu trc2. Bn ghi: nh ngha kiu:TYPE Tn_kiu_bn_ghiThnh phn1 AS kiu dliu1Thnh phn2 AS kiu dliu2END TYPE Khai bo: Public/Private/Dim Tn_bin AS Tn_kiu_bn_ghi Truy xut thnh phn:Tn_bin.Tn_thnh phn

    Phm Th Kim Ngoan

  • II. Kiu d liu c cu trcV d:TYPE HocsinhHoten asString Ngaysinhas Date Toanas SingleENDTYPEKhai bo mt bin HS kiu hocsinhDim HS as HosinhTruy xut thnh phn Hoten ca bin HSHS.Hoten

    Phm Th Kim Ngoan

  • Chng 4: TH TC CA NGI DNGI. Tham bin v tham trII. quiIII. Thi hnh Macro trong VBIV. Kch hot cc ng dng khcV. G ri m VB

    Phm Th Kim Ngoan

  • I. Tham bin v tham tr- Truyn theo tham tr(ByVal): cc tham s khng thay i gi tr - Truyn theo tham bin: gi tr cc tham s thay i nu th tc gi c cu lnh l thay i gi tr ca chngV d truyn theo tham tr v tham bin

    Phm Th Kim Ngoan

  • I. Tham bin v tham trSub Thamso(ByVal a As Integer, b As Integer) a = a + 1 b = aEnd Sub----------------------Sub goi() Dim a As Integer : Dim b As Integer a = 5: b = 7 Call Thamso(a, b) Debug.Print "a=", a Debug.Print "b=", bEnd Sub

    Phm Th Kim Ngoan

  • II. quiTrong th tc c li gi n chnh th tc V d th tc quiFunction Dequi(a As Byte, n As Byte) If n = 0 Then Dequi = 1 Else Dequi = Dequi(a, n - 1) * a End IfEnd Function

    Phm Th Kim Ngoan

  • III. Thi hnh Macro trong VBC php: Docmd.Tn_phng_thc [cc tham s] Cc phng thc ca Docmd c tn v chc nng ging nh cc thao tc (Action) trong MacroSub Vedau_Click()Docmd.GotoRecord , , ac FirstEndSub

    Phm Th Kim Ngoan

  • Thit k Form ng nhp h thng, yu cu ngi s dng phi nhp vo mt khu khi mun s dng CSDLDim dem As Byte-----------------Private Sub Dongy_Click() If matkhau = "TTTH" Then DoCmd.OpenForm "Giaodien" DoCmd.Maximize ElseIf dem < 3 Then MsgBox "Ban nhap sai roi!" dem = dem + 1 : matkhau = "" matkhau.SetFocus Else MsgBox "Ban da nhap 3 lan" DoCmd.Quit acQuitPrompt End IfEnd Sub

    Phm Th Kim Ngoan

  • Thit k Form ng nhp h thng, yu cu ngi s dng phi nhp vo mt khu khi mun s dng CSDLPrivate Sub Form_Load() dem = 1End Sub

    Phm Th Kim Ngoan

  • IV. Kch hot cc ng dng khc1. Hm Shell: thc hin mt tp tin chng trnh C php: SHELL (ng dn n tp tin chng trnh [,kiu ca s]) 2. Lnh AppActivate: kch hot ng dng thnh ng dng hin hnh C php: APPACTIVATE tn ng dng 3. Hm Sendkey: gi cc phm bm n mt ng dngC php: SENDKEY chui cc phm [,True/False]

    Phm Th Kim Ngoan

  • V. G ri m VBCc loi li c th gp: Li bin dch: Nguyn nhn: lnh sai cu trc Hn ch: chn Auto Syntax Check Li trong lc thi hnh: Nguyn nhn: do c gng thc hin mt hnh ng khng th thc hin c. X l: dng pht biu ON ERROR t by li Li logic ca chng trnh: kt qu sai Nguyn nhn: sai gii thut Pht hin: Chy tng bc kim tra (Menu Debug -> Step Into)

    Phm Th Kim Ngoan

  • V. G ri m VBV d dng pht biu On Error t by liSub Vedau_Click() On error goto err_VD Docmd.GotoRecord , , ac First err_VD: Exit SubEndSub

    Phm Th Kim Ngoan

  • Chng 5: I TNG V BIN I TNGI. i tng v tp hp:II. Bin i tng:III. S dng cc bin i tng:

    Phm Th Kim Ngoan

  • I. i tng v tp hpCc ngun cung cp i tng trong MS Access: MS Access: i tng hin th d liu MS DAO: i tng truy nhp d liu Visual Basic: i tng em li s linh ng trong lp trnh Tp hp: l cc i tng c cng kiu Tham chiu ti cc i tng: Cc i tng ring bit: tn_i_tng Cc i tng thuc v tp hp: C1: Tn_tp_hp!tn_i_tng C2: Tn_tp_hp(tn_i_tng)

    Phm Th Kim Ngoan

  • I. i tng v tp hpC3: Tn_tp_hp(ch s) Tp thuc tnh: Xc lp gi tr cho thuc tnh: Tn_i_tng.tn_thuc_tnh = gi tr Ly gi tr ca thuc tnh: Tn_bin = tn_i_tng.tn_thuc_tnh

    Phm Th Kim Ngoan

  • II. Bin i tngBin i tng: bin biu th mt i tng c th thuc vo mt kiu i tng Kiu i tng: phn d liu, cc phng thc Khai bo: C php: Dim tn_bin AS tn_kiu_i_tng Gn cc bin i tng: C php: SET tn_bin = dng biu th Biu th cc thnh phn i tng: Gia cc i tng: ! Thuc tnh, phng thc: .

    Phm Th Kim Ngoan

  • In tn cc iu khin c trong Form Mt khuSub 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 iEnd Sub

    Phm Th Kim Ngoan

  • Lit k cc bng c trong CSDL hin tiSUB Inbang() Dim db As Database Dim t As TableDef Set db = CurrentDb() For Each t In db.TableDefs MsgBox t.Name Next tENDSUB

    Phm Th Kim Ngoan

  • III. S dng cc bin i tng1. Bin i tng Database: Khai bo: DIM Tn_bin_DB AS Database Gn bin i tng:SET Tn_bin_DB=DBEngine.Workspace(0).OpenDatabase(tp tin CSDL)

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngV d: Khai bo mt bin Db lm vic vi CSDL hin hnh C1: DIM Db AS Database SET Db= DBEngine.Workspace(0).Database(0) C2: DIM Db AS Database SET Db= CurrentDB()

    Phm Th Kim Ngoan

  • III. S dng cc bin i tng2. Bin i tng Recordset: Lu tr tp cc bn ghi. To i tng Recordset: Dng phng thc OpenDatabase ca i tng Database Khai bo: DIM tn_bin_RS AS RecordsetV d:Dim Rs As Recordset Tham chiu vo mt i tng c th: SET tn_bin_RS=tn_bin_DB.OpenRecordSet (ngun dl, loi)Ngun d liu: Tn ca mt bng, truy vn, cu lnh SQL.

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngLoi dng 1 trong 3 hng sau: DB_OPEN_TABLE: Tham chiu n 1 bng, d liu c th thay i c DB_OPEN_DYNASET: Tham chiu n bng, query, dliu c th thay i cDB_OPEN_SNAPSHOT: Tham chiu n 1 bn sao ca dliu, khng thay i d liu cV d:Dim Db As DatabaseDim Rs As RecordsetSet Rs = Db.OpenRecordset (MONHOC, DB_OPEN_TABLE)

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngTham chiu n cc trng d liu ca bin RecordSet: Tn_bin_RS!tn_trng hoc: Tn_bin_RS.fields(tn_trng)V d: Truy xut n trng m mn hc trong bng Mn hcRs!MaMHHocRs.fields(MaMH) Tham chiu n cc phng thc, thuc tnh ca bin RecordSet: Tn_bin_RS.tn_phng_thc/ tn_thuc_tnh

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngCc phng thc di chuyn:MOVEFIRST: n bn ghi u tin trong bin RecordsetMOVEPREVIOUSMOVENEXTMOVELASTMOVE(n): n bn ghi n trong bin RecordsetV d: Rs.MoveNextPhng thc ng : CLOSETn_bin_RS.CLOSEV d: Rs.Close

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngPhng thc m s bn ghi: RECORDCOUNTV d: m s bn ghi trong bng mn hcRs.MoveLastRs.RecordCountThuc pht hin cc gii hn: BOF = True : trc bn ghi u tin, hoc khng c bn ghi EOF = True : sau bn ghi cui cng, hoc khng c bn ghi Tn_bin_RS.BOFV d: Rs.BOF

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngV d: In ra mn hnh trc tip danh mc cc mn hcSUB InMH()Dim Db As DatabaseDim Rs As RecordsetSet Rs = Db.OpenRecordset (MONHOC, DB_OPEN_TABLE)DO WHILE (Rs.EOF = False) Debug.Print Rs!MaMH, Rs!TenMH, Rs!HesoRs.MoveNextLOOPRs.CloseENDSUB

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngVit th tc x l s kin gn vi nt Xem khi nhp mt m MH Xem: thng tin ng vi mn hc hin th ln cc Textbox ca Form

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngHiu chnh 1 bn ghi: - Chuyn n bn ghi mun hiu chnh - Dng phng thc EDIT - Tin hnh hiu chnh - Dng phng thc UPDATEV d: Sa Tn mn hc c M s AV1 thnh Anh Vn 1Tm bn ghi c MaMH = AV1Gi phng thc EDITThay TenMH = Anh Vn 1Gi phng thc UPDATE

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngSUB SuaTenMH()Dim Db As DatabaseDim Rs As RecordsetSet Rs = Db.OpenRecordset (MONHOC, DB_OPEN_TABLE)DO WHILE (Rs.EOF = False)IF Rs!MaMH = AV1 THEN Rs.EDITRs!TenMH = Anh Vn 1Rs.UPDATEEXIT DOELSERs.MoveNextLOOPRs.CloseENDSUB

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngVit th tc x l s kin gn vi nt Sa khi Xem thng tin mn hc hin th ln cc Textbox ca Form, thay i thng tin nt Sa lu li thng tin va sa.

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngThm 1 bn ghi mi: - Dng phng thc ADDNEW - Nhp d liu cho bn ghi ny - Dng phng thc UPDATEV d: Thm mn hc mi vo bng MONHOCMaMH : AV2TenMH :Anh Vn 2Heso :1

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngSUB ThemMH()Dim Db As DatabaseDim Rs As RecordsetSet Rs = Db.OpenRecordset (MONHOC, DB_OPEN_TABLE)Rs.ADDNEWRs!MaMH = AV2Rs!TenMH = Anh Vn 2Rs!Heso = 1Rs.UPDATERs.CloseENDSUB

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngVit th tc x l s kin gn vi nt Thm thm vo bng mn hc vi cc thng tin ca mn hc c nhp vo cc Textbox trn Form

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngXo 1 bn ghi: - Chuyn n bn ghi cn xo - Dng phng thc DELETEV d: Xa t bng MONHOC mn hc c m AV1

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngSUB XoaMH()Dim Db As Database , Rs As RecordsetSet Rs = Db.OpenRecordset (MONHOC, DB_OPEN_TABLE)DO WHILE (Rs.EOF = False)IF Rs!MaMH = AV1 THEN Rs.DELETEEXIT DOELSERs.MoveNextLOOPRs.CloseENDSUB

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngVit th tc x l s kin gn vi nt Xa xa t bng mn hc mt mn hc c m c nhp vo Textbox trn Form.

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngTm kim 1 bn ghi: Phng thc SEEK (p dng vi loi m ngun d liu l DB_OPEN_TABLE) - Ch ra tn ch mc - Tn_bin_RS.SEEK ton t so snh,gi tr so snh Thuc tnh kim tra: NOMATCH NOMATCH=True: khng tm thy bn ghi

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngV d: In ra mn hnh trc tip mn hc c m AV2SUB InMH_2()Dim Db As DatabaseDim Rs As RecordsetSet Rs = Db.OpenRecordset (MONHOC, DB_OPEN_TABLE) Rs.Index = maRs.Seek =, AV2IF Rs.NOMATCH =False THEN Debug.Print Rs!MaMH, Rs!TenMH, Rs!HesoELSEDebug.Print Khng c mn hc ny!ENDIFRs.CloseENDSUB

    Phm Th Kim Ngoan

  • III. S dng cc bin i tng3. Bin i tng QueryDef: Khai bo: DIM Tn_bin_QD AS QueryDef To 1 query: dng phng thc CREATEQUERYDEF ca i tng Database SET tn_bin_QD=tn_bin_DB.CREATEQUERYDEF(tn query) Tn_bin_QD.SQL=cu lnh SQLTn_bin_DB.Tn_bin_QD.DELETE(tn query)

    Phm Th Kim Ngoan

  • III. S dng cc bin i tngThi hnh: EXECUTE Tn_bin_QD.EXECUTE ng: CLOSE Tn_bin_QD.CLOSE Xo: DELETE

    Phm Th Kim Ngoan