SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
Microsoft Access 2000                      Ch     ng 9: Ng   n ng    Visual Basic

            CH        NG IX: NGÔN NG              VISUAL BASIC

      Ch ng này gi i thi u n các b n nh ng khái ni m c b n c a ngôn ng l p
trình Visual Basic, cách s d ng ngôn ng Visual Basic     u khi n các bi n c
trên các bi u m u/báo cáo và cách t o ra m t hàm riêng.
9.1. Visual Basic (VB) là gì ?
      VISUAL BASIC là ngôn ng l p trình cho MISCROSOFT ACCESS. B n s
   ng nó y nh cách s d ng t p l nh (macro)        có th liên k t các i t ng trong
 ng d ng c a b n l i v i nhau nh m t o thành m t h th ng ch ng trình m ch l c.
    m khác bi t là visual basic cung c p nhi u s c m nh và m m d o h n là t p
  nh. T ng t nh t p l nh, visual basic        c g n v i các i t ng trong CSDL.
      Trong MICROSOFT ACCESS, b n có th th c hi n nhi u công vi c khác nhau
   ng t p l nh ho c VB. Do ó v n         t ra là ch n công c nào     s d ng? S
ch n l a này tùy thu c vào công vi c c a chúng ta là s mu n làm cái gì.
      Visual basic là m t ngôn ng th o ch ng hoàn thi n và theo ki u        u khi n
   i s ki n (event driven programming language) nh ng l i r t gi ng ngôn ng th o
ch ng có c u trúc thông th ng. N u b n ã t ng vi t ch ng trình b ng ngôn
ng Pascal ho c C. b n s th y l i trong VB t t c nh ng c u trúc          u khi n mà
   n ã t ng s d ng ch ng h n nh :
       C u trúc l p (Loops).
       C u trúc r nhánh IF … THEN … ELSE.
       C u trúc ch n l a SELECT CASE.
       Hàm (function) và th t c (procedure).
9.2.    u    m c a VB
   1.       cho ng d ng c a b n d dàng b o trì h n: b i vì t p l nh là m t        i
        ng hoàn toàn tách riêng l v i các bi u m u và các báo cáo s d ng nó, m t
     ng d ng ch a m t s l n các t p l nh trong các bi n c c a các bi u m u và
   các báo cáo s gây cho b n khó kh n khi b o trì. Ng c l i khi s d ng VB
        lý các bi n c ó, n u ph i di chuy n các bi u m u ho c báo cáo sang m t
   CSDL khác thì các       n l nh này c ng s mang i theo cùng.
   2. T o ra các hàm c a riêng mình: S d ng Visual Basic ta c ng có th t o ra
   các hàm riêng c a mình dùng       th c hi n các phép tính v t quá kh n ng c a
       t bi u th c ho c thay th m t bi u th c quá ph c t p mà b n vi t trong bên
   trong ng d ng c a mình. Ví d hàm chuy n i c con s chuy n thành ch ,…
   3. Che i các thông báo l i: Khi có m t s c ngoài ý mu n xãy ra trong khi ng
      ng c a b n ang v n hành và Microsoft Access hi n th thông báo l i, thông
   báo này s làm cho ng i s d ng khó hi u c bi t khi h ch a quen s d ng
   Microsoft Access. S d ng Visual basic, b n có th phát hi n các l i này khi nó
      y ra và s hi n th thông báo l i c a riêng mình tu thu c vào ng d ng.
   4. T o ho c s a i các i t ng: Nh chúng ta ã bi t ph n thi t k table,
   query, form, report, … mu n thay i các c tính, b n ph i m         i t ng ch
       thi t k , còn VB cho phép ta thay i ngay khi ch ng trình ang ch y b ng
   cách vi t l nh.
   5. Th c hi n các hành ng nâng c p h th ng: Dùng l nh RunApp           th c hi n
   các l nh c a ng d ng khác.
   6. Truy c p vào các b ng ghi (record): Th c hi n các thao tác trên Record nh
   thêm, s a, xoá các record.

Trung t     m Tin h   c-   HAG                                          Trang 104
Microsoft Access 2000                       Ch    ng 9: Ng     n ng   Visual Basic

9.3. Các thành ph n ch y u c a Acces basic
     Access basic là ngôn ng th o ch ng hoàn ch nh, nó h tr ph ng pháp
th o ch ng có c u trúc mà b n ã th y trong ngôn ng Microsoft Visual Basic và
nh ng th o ch ng có c u trúc khác. Nh ng thành ph n ch y u c a Access basic:
      Bi n (variables).
      Th t c hàm (function procedure).
      Các c u trúc ch n l a.
      Các c u trúc l p c a Access basic.
         u khi n s thi hành ch ng trình.

9.3.1. Bi n
      Bi n dùng      l u tr nh ng giá tr t m th i khi th c hi n các phép tính trong
ch ng trình, có th b n mu n tính nhi u giá tr khác nhau, so sánh chúng r i th c
hi n.
1. Khai báo bi n: Dim tên_bi n [As ki u_d _li u]
      Ví d : Dim nguyen, n As Integer.
2. Ph m vi và th i gian s ng c a bi n
      Ph m vi s d ng c a bi n: tùy thu c vào vi c b n khai báo bi n           âu mà
ph m vi s d ng bi n ó s theo m t trong ba tình tr ng sau ây:
      - Bi n c c b (local variable): ch        c nh n di n trong ph m vi th t c khai
báo bi n ó.
      Ví d : Các bi n P1, P2, P3
      - Bi n thu c n th (Module variable): thì        c dùng chung cho t t c nh ng
th t c thu c      n th    ó. Nh ng th t c thu c các       n th khác không th tham
chi u n bi n này         c.
      Ví d : Các bi n Md1, Md2
      - Bi n toàn c c (Global variable): Là bi n có ph m vi s d ng r ng nh t. Giá tr
   a m t bi n toàn c c có th tham chi u t b t k m t th t c nào thu c h th ng
  ng d ng.
      Ví d : Các bi n A, B.

       Module1                                                        Module2
                              Procedure 1 có th truy xu t
          Global A                                                    Global B
                           các bi n A, B, Md1 và P1
          Dim Md1                                                     Dim Md2
                             Không truy xu t      c các bi n
    Procedure 1            Md2, P3 và P2
                                                                  Procedure 3
      Dim P1                                                        Dim P3
                              Procedure 3 có th truy xu t
                           các bi n A, B, Md2 và P3
    Procedure 2               Không truy xu t     c các bi n
      Dim P2
                           Md1, P1 và P2


                              Procedure 2 có th truy xu t
                           các bi n A, B, Md1 và P2
                              Không truy xu t     c các bi n
                           Md2, P1 và P3


Trung t    m Tin h   c-   HAG                                            Trang 105
Microsoft Access 2000                        Ch     ng 9: Ng     n ng   Visual Basic

9.3.2. T o th t c bi n c
       Cách vi t l nh bên trong th t c bi n c : Khi vi t l nh cho th t c bi n c thì
Access m ch ng trình Basic cho chúng ta vi t l nh
       Th t c là các      n l nh mà b n ã vi t b ng ngôn ng Visual Basic. Bên trong
   t th t c s ch a        ng m t dãy các câu l nh c a Visual Basic      th c hi n m t
hành ng ho c tính toán m t giá tr nào ó. M t th t c bi n c là m t th t c s
     c ch y      áp l i cho m t bi n c .
       Ch ng h n ta có nút l nh trong form khi ng i s d ng click vào nút l nh thì
form s óng form, ta nói click mouse là bi n c (event) hay s ki n. Ta vi t l nh
 óng Form t c ta t o th t c x lý bi n c .
       Th t c bi n c là m t ph n trong công vi c Form ho c Report. Do ó b c
   u tiên là chúng ta ph i t o ra form và các ô  u khi n trên form này.

9.3.3. Th t c và     n th Visual basic
     Th t c hàm (function procedure): T ng t v i nh ngh a c a hàm trong các
ngôn ng th o ch ng khác, th t c hàm c a Visual basic ch hoàn tr m t giá tr
duy nh t t i  m tham chi u n hàm ó.
     1. Cú pháp c a th t c:
          [Public|Private] [Static] Sub Tên_Th _t c([tham s ])
                 Các l nh th c hi n
          End Sub
     Trong ó:
      Tham s : Các tham s g i vào      cho th t c dùng tính toán bên trong.
      L nh th c hi n: Dãy các câu l nh Visual Basic mà ta mu n thi hành khi th
         c ho c hàm      c g i.
      Giá tr tr v : Giá tr d li u tr v sau khi m t dãy các câu l nh bên trong c a
      hàm ã       c tính toán xong.
     2. Khai báo các tham s trong th t c/hàm:
             [ByVal I ByRef] <tên_bi n> As <ki u_DL> [=giá tr m c nh]
     3. Cú pháp g i m t th t c:
             Tên_Th _t c(Danh sách tham s )
      ho c Call Tên_Th _t c(Danh sách tham s )
     4. Cú pháp khai báo hàm
      [Public|Private] [Static] Function Tên_hàm([tham s ]) As <ki u_DL>
               <l nh th c hi n>
               Tên_hàm= giá tr tr v
      End Function
        Sau khi th c hi n các câu l nh hàm cho ta k t qu là giá tr tr v .
     Ví d : Hàm chuy n ký t s thành chu i       c nh ngh a nh sau:
     Function SoThanhChuoi(i As Integer) As String
       Dim str As String
       Select Case i
         Case 1
             str = "Mot"
         Case 2

Trung t    m Tin h   c-   HAG                                              Trang 106
Microsoft Access 2000                      Ch    ng 9: Ng   n ng    Visual Basic

              str = "Hai"
            Case 3
              str = "Ba"
            Case 4
              str = "Bon"
            Case 5
              str = "Nam"
            Case 6
              str = "Sau"
            Case 7
              str = "Bay"
            Case 8
              str = "Tam"
            Case 9
              str = "Chin"
            End Select
            sothanhchui = str
       End Function
5. S d ng các tham s bi n          i
       Khi g i n hàm chúng ta ph i truy n y          các tham s cho hàm n u không
thì h th ng s báo l i. Tuy nhiên Visual Basic cung c p cho chúng ta 2 cách      s
   ng các tham s thay i.
         Tham s có th b qua
       Dùng t khóa Optional tr c m i tham s n u ta mu n cho tham s ó có th
    qua. Khi g i hàm trong ó có khai báo Optional thì ta có th truy n ho c không
truy n tham s . N u không truy n thì hàm s l y giá tr nh s n trong nh ngh a
hàm i v i tham s có th b qua.
            l ng tham s tùy ý
           s d ng s l ng tham s tùy ý có ki u là Variant (ki u bi n) chúng ta ph i
     d ng t khóa ParamArray. M c ích khi s d ng cách này là chúng ta ch a xác
  nh       c s g i vào bao nhiêu tham s cho th t c khi ch y.
6. M ng (Array)
       Dùng m t m ng        ch   n m t dãy các bi n cùng tên nhau và s d ng ch s
    ch ra m t ph n t c a m ng. T t c các ph n t trong m t m ng ph i có cùng
    t ki u d li u. D nhiên khi mãng có ki u d li u thay i thì các ph n t trong m t
    ng có th ch a nhi u lo i d li u khác nhau.
            Khai báo m ng có kích th c c      nh:
               - Dim mangnguyen(10) As integer
               - Dim mangsothuc(15) As Double
          Ch s      u tiên c a m ng là 0. Nh ng ta có th ch nh ch s     u tiên.
               - Dim mangnguyen(10) As integer
               - Dim mangsothuc(15) As Double
            Khai báo m ng nhi u chi u:
               - Static mangmatran(9,9) As Double
               - Ho c Static mangmatran(0 to 9,0 to 9) As Double
            Tham chi u các ph n t trên m ng:        ch nh m t ph n t nào ó trên
               ng ta s d ng ch s c a m ng.

Trung t   m Tin h   c-   HAG                                           Trang 107
Microsoft Access 2000                         Ch     ng 9: Ng    n ng    Visual Basic

     Ví d : Gán giá tr cho t ng ph n t c a m ng nguyên là 10.
             Dim nguyen(1 to 5) As Integer
             Dim I As Integer
             For I=1 to 5
                    nguyen(I) = 10
             Next I
9.4. Các c u trúc     u khi n c a ngôn ng      Basic
9.4.1. C u trúc quy t nh (Decision structures)
      1. C u trúc IF … THEN:
        B n s d ng c u trúc If … Then          th c hi n m t hay nhi u l nh có   u ki n.
   n có th dùng m t trong hai ph ng pháp sau             di n t c u trúc này:
      - L nh trên m t dòng: IF      u_ki n THEN th c_hi n_l nh
          Ví d : If 6>=5 then Msgbox“sáu l n h n ho c b ng n m”
      - L nh trên nhi u dòng:
           IF     u_ki n THEN
               th c_hi n_l nh_1
               th c_hi n_l nh_2
               …
           ENDIF
      Ví d :
           IF 6>=5 THEN
               Msgbox “sáu l n h n ho c b ng n m”
           ENDIF
         M c       u_ki n trong c u trúc IF là m t bi u th c mà giá tr là:
        - Không ( u ki n sai-False) khi ó l nh không th c hi n.
        - Khác không ( u ki n úng-True) khi ó l nh              c th c hi n.
2. C u trúc IF … THEN … ELSE
           Cú pháp:
               IF     u_ki n THEN
                       [statements]
               [ELSEIF condition-n Then
                       [elseifstatements] ...
               [ELSE
                       [elsestatements]]
               END IF
3. C u trúc SELECT CASE
           Cú pháp:
               SELECT CASE bi u_th c_ki m_ nh
                       [CASE danh_sách_giá_tr _1:
                               [nhóm_l nh_1]]
                       [CASE danh_sách_giá_tr _2:
                               [nhóm_l nh_2]]
                       …
                       [CASE ELSE
                               [nhóm_l nh_n]]


Trung t   m Tin h    c-   HAG                                                Trang 108
Microsoft Access 2000                       Ch    ng 9: Ng    n ng   Visual Basic

         i danh_sách_giá_tr là m t danh sách g m m t hay nhi u giá tr kh h u c a
bi u th c ki m nh và           c phân cách nhau b i d u ch m ph y ”;” trong tr ng
   p m t dãy giá tr liên ti p, b n có th dùng t khoá TO.
      Ví d : CASE 1 TO 5
         i nhóm_l nh có th ch a m t hay nhi u l nh (ho c không có) mà Access
basic ph i thi hành khi bi u th c ki m nh có giá tr n m trong danh sách giá tr
    ng ng. Trong tr ng h p có nhi u câu CASE tho           u ki n ki m nh thì ch có
nhóm l nh ng v i câu CASE u tiên th a            u ki n ki m nh        c thi hành mà
thôi. Trong tr ng h p không m t câu CASE nào tho                u_ki n_ki m_ nh thì
access basic s thi hành nhóm l nh qui nh câu CASE ELSE.
9.4.2. C u trúc l p
         p l i m t nhóm l nh trong khi m t    u ki n úng (While) ho c cho      n khi
   t   u ki n sai (Until).
      Do [{While | Until}   u_ki n_ki m_ nh]
              [Nhóm l nh]
              [Exit Do]
              [Nhóm l nh]
      Loop
      Ho c:
      Do
              [Nhóm l nh]
              [Exit Do]
              [Nhóm l nh]
      Loop [{While | Until}    u_ki n_ki m_ nh
2. C u trúc For … Next
      Cú pháp:
              FOR bi n=giá_tr    u TO giá_tr _cu i [STEP gia_s ]
                     Nhóm l nh
              NEXT
       Gia s có th là s d ng ho c s âm.
       Ví d : Tính t ng các s nguyên t 1 n 10:
       Sub tong10()
              Dim tong, I As Integer
              Tong=0
              For I=1 to 10
                     Tong = tong + i
              Next
              Msgbox ”T ng 10 s nguyên là: ”&tong
       End sub
       Ho c:
       Sub tong10()
              Dim tong, I As Integer
              Tong=0
              For I=10 to 1 step -1
                     Tong = tong + i
              Next
              Msgbox ”T ng 10 s nguyên là: ”&tong
       End sub

Trung t   m Tin h     c-   HAG                                           Trang 109
Microsoft Access 2000                            Ch    ng 9: Ng   n ng   Visual Basic

9.4.3.        u khi n s thi hành ch      ng trình

    C u trúc      u khi n l ng nhau: B n có th vi t m t c u trúc  u khi n l ng trong
      u trúc     u khi n khác.
    Thoát kh i c u trúc       u khi n: B n có th thoát kh i m t vòng l p ho c thoát
    kh i m t th t c Sub, Function b ng cách dùng l nh Exit.
      Ví d :
       - Thoát kh i vòng l p ForExit For.
       - Thoát kh i m t th t c sub ho c function: Exit Sub
9.4.4. S d ng các hàm
      Khi ta ã xây d ng xong hoàn ch nh m t hàm thì ta có th g i s d ng nó         c
  i các v trí sau:
           Trong các th t c ho c các hàm khác.
           M t bi u th c nh ngh a tính toán trong m t truy v n, m t     u khi n trên
      Form (bi u m u) ho c Report.
           Làm      u ki n cho truy v n ho c t p l nh.
9.5. Bi n bi u th cho CSDL (Database variables):
         t c các hàm mà b n s d ng trong vi c m b ng d ki n (table), b ng truy
   n (query) trong Access Basic u òi h i qui nh m t i t ng c a CSDL. B n
khai báo bi n i t ng thu c ki u Database theo cùng m t cách gi ng nh khai báo
  t c nh ng i t ng khác nh ng tr c khi khai báo m t bi n CSDL b n ph i khai
báo c vùng làm vi c dành cho CSDL ó.
      Ví d : bi n tham chi u n CSDL ang làm vi c hi n hành có th       nh ngh a
nh sau:
       Dim Ws as WorkSpace           ‘bi n i t ng WorkSpace
       Dim DB as Database            ‘bi n i t ng Database
       Set ws = DBEngine.Workspaces(0)      ‘vùng làm vi c hi n hành
       Set DB = Ws.Databases(0)             ‘CSDL hi n hành
      Ho c n gi n h n:
       Dim DB As Database
       Set DB= DBEngine.Workspaces(0).Databases(0)       ‘CSDL hi n hành
      Ho c:
       Dim DB as Database
       Set DB=CurrentDB()
9.6.     it     ng và bi n bi u th các      it   ng:
     Nh ta ã bi t ph n c b n các thao tác t o, s a, xóa các i t ng table,
query, form, report ch b ng thao tác click mouse và còn l thu c vào cách x trí c a
ng i thao tác. Trong ph n này chúng ta bàn v cách vi t l nh tùy theo tình hu ng
mà ch ng trình s x lý.
     Ch nh các         i t ng thu c tính và ph ng th c:
     Các i t ng access          c phân lo i ra thành các t p h p, và các t p h p này
    c nhóm l i theo t ng i t ng cùng m t lo i. T p h p các form là m t nhóm
các form ang m trong c s d li u. M i m t form l i có t p h p các           u khi n là
các     u khi n có trên form. M i m t    u khi n trên form l i là m t i t ng, và ta
có th ch      n b t k m t i t ng xuyên su t qua t p h p mà i t ng ó thu c
vào.

Trung t       m Tin h   c-   HAG                                            Trang 110
Microsoft Access 2000                                Ch         ng 9: Ng   n ng       Visual Basic

     Ví d :   ch nh n m t form trong t p h p các form. Visual basic   a ra 3
cách    ch nh n m t i t ng:
         Form!<tên_form> ho c Form(“<tên_form>”) ho c Form(0)
     Trong ó cách dùng    ch nh form theo th t mà nó       cm :0    ch form
 ã m ra u tiên, 1 ch nh form m ra th hai,…
     Cách tham chi u n các i t ng c a CSDL:
           it    ng tham chi u                                Qui   nh tham chi u
Form                                        Forms![tên_form]
Thu c tính c a Form                         Forms![tên_ form].[thu c_tính]
   u khi n trong                            Forms![tên_ form].[Tên_        u_khi n]
Tính ch t ô      u khi n thu c Form         Forms![tên_ form].[Tên_        u_khi n].[thu c_tính]
      Gán giá tr cho bi n      i t ng: Dùng l nh SET   liên k t i t                        ng v i m t
   i t ng ã có c a CSDL.
9.7. Bi n bi u th    i t ng là m t t p h p m u tin (Recordset)
9.7.1. Phân lo i: Có 3 lo i recordset:

    Ki u        it    ng     S m u tin c a       it        ng        ki n c a         it   ng
    Table                    Có th thay     i                    Có th thay       i
    Dynaset                  Có th thay     i                    Có th thay       i
    SnapShot                        nh/ không thay     i         không thay       i

   Bi n Recordset thu c lo i Table: bi n lo i này h tr h u h t các thao tác thêm
   (add), s a (update), xoá (delete) và cho bi t tình tr ng m i nh t c a b ng d li u
   (table). Ch th c hi n trên CSDL hi n hành.
     Cách m :       SET bi n=CSDL.OpenRecordset(tên Table, DB_OPEN_TABLE)

   Bi n Recordset thu c lo i Dynaset: bi n lo i này linh ho t h n lo i table.
     Cách m :      SET bi n=CSDL.OpenRecordset(tên Table, DB_OPEN_DYNASET)

   Bi n Recordset thu c lo i Snapshot:
     Cách m :      SET bi n=CSDL.OpenRecordset(tên Table, DB_OPEN_SNAPSHOT)

9.7.2. X lý d ki n v i các bi n Recordset
1. Di chuy n t Record này n record khác
  Ph      ng th c                                          Ý ngh a
    MoveFirst              Di chuy n v record        u tiên
    MoveNext               Di chuy n v record k ti p. N u thu c tính EOF là True thì
                           MoveNext c th c hi n s xãy ra l i.
  MovePrevious             Di chuy n v record tr c ó. N u thu c tính BOF là True thì
                           MovePrevious c th c hi n s xãy ra l i.
    MoveLast               Di chuy n v record cu i cùng
          u trúc c a m t t p h p m u tin (recordset):
                                          BOF
            RECORD 1

Trung t     m Tin h    c-     HAG                                                          Trang 111
Microsoft Access 2000                       Ch      ng 9: Ng   n ng    Visual Basic

          RECORD 2
          RECORD 3
          …
          …
          RECORD n
                                    EOF
        t bi n Recordset (lo i Table, Dynaset, ho c Snapshot) th      ng có m t v trí
hi n hành c a nó, ngh a là ch    n record hi n hành.
2.   m nh ng m u tin c a bi n Recordset: RecordCount.
3. Tìm ki m m t m u tin c bi t
     - Dùng ph ng th c Find:
          Ph     ng th c                             Ý ngh a
                             Tìm n Record        u tiên trong nhóm nh ng record tho
              FindFirst
                             tiêu chu n ã qui    nh.
                             Tìm   n Record k ti p record hi n hành trong nhóm
              FindNext
                             nh ng record tho tiêu chu n ã qui nh.
                             Tìm   n Record ngay tr c record hi n hành trong
          FindPrevious
                             nhóm nh ng record tho tiêu chu n ã qui nh.
                             Tìm    n Record cu i cùng trong nhóm nh ng record
               FindLast
                             tho tiêu chu n ã qui nh.
        - Dùng ph ng th c Seek: Tìm theo tiêu chu n so sánh. Các phép so sánh
   m: =, >=, >, <, <=.
4.     u ch nh nh ng m u tin (record) c a m t Recordset.
      -      u ch nh m u tin hi n hành c a Recordset:
        + B1: Di chuy n n record mu n s a.
        + B2: Dùng hành vi Edit (cho phép ch nh s a m u tin hi n hành).
        + B3: Th c hi n vi c ch nh s a.
        + B4: Dùng hành vi Update (l u l i nh ng thay i).
      Ví d : Trong CSDL qu n lý hóa        n    u ch nh d li u c a các record có s
hóa      n 015 thành 025.
      Sub chinhhd()
          Dim db As Database
          Dim rs As Recordset
          Set db = CurrentDb() 'gán bi n DB là m t csdl HI N HÀNH
          Set rs = db.OpenRecordset("HOADON")
          If Not rs.BOF Then
             rs.MoveFirst
          End If
          Do Until rs.EOF
             If rs!SOHD = "015" Then
                 rs.EditMode
                 rs!SOHD = "025"


Trung t   m Tin h    c-    HAG                                            Trang 112
Microsoft Access 2000                 Ch    ng 9: Ng   n ng   Visual Basic

              rs.Update
           End If
           rs.MoveNext
        Loop
        rs.Close
     End Sub
     - Thêm m t m u tin vào Recordset.
       + B1: Dùng hành vi Addnew.
       + B2: Gán nh ng giá tr cho các field c a Recordset.
       + B3: Dùng hành vi Update (l u l i nh ng thay i).
     VD:Thêm m t record vào b ng (table) HOADON:
     Sub themRecord()
         Dim db As Database
         Dim rs As Recordset
         Set db = CurrentDb() 'gán bi n DB là m t csdl HI N HÀNH
         Set rs = db.OpenRecordset("HOADON")
             rs.Addnew
             rs!SOHD = "035”
             rs!LOAIHD=”NHAP”
             rs!NGAYHD=#30/12/99#
             rs!MAKH=”CTB00011”
             rs!MAKHO=”KH1”
             rs!TRIGIA=100000
             rs!THUE=5
             rs.Update
             rs.Close
     End Sub
  -     m s record trong m t b ng: Dùng thu c tính RecordCount.       mb o
  tính chính xác tr c khi s d ng ta cho con tr v cu i b ng b ng cách s d ng
  ph ng th c MoveLast.
  -     p x p d li u trong b ng: Dùng thu c tính Sort.
  -     c d li u: Dùng thu c tính Filter.
  - S p x p: Dùng thu c tính Index.
  - o bi n Recordset trên c s m t Form: Dùng l nh SET theo cú pháp sau:
       SET Tên_bi n_Recordset = Forms![Tên_Form].RecordsetClone




Trung t   m Tin h   c-   HAG                                     Trang 113

Weitere ähnliche Inhalte

Was ist angesagt?

Pplthdt c01 phong_cachlaptrinh_v13.09a
Pplthdt c01 phong_cachlaptrinh_v13.09aPplthdt c01 phong_cachlaptrinh_v13.09a
Pplthdt c01 phong_cachlaptrinh_v13.09a
Pix Nhox
 
Session 06 Final
Session 06 FinalSession 06 Final
Session 06 Final
SamQuiDaiBo
 
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Thanh Minh Hoang
 
Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#
Văn Dũng
 
Lập trình C# 2008 cơ bản_Nhất Nghệ
Lập trình C# 2008 cơ bản_Nhất NghệLập trình C# 2008 cơ bản_Nhất Nghệ
Lập trình C# 2008 cơ bản_Nhất Nghệ
Trần Thiên Đại
 
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09aPplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pix Nhox
 
Pplthdt c00 gioi_thieumonhoc_v13.09a
Pplthdt c00 gioi_thieumonhoc_v13.09aPplthdt c00 gioi_thieumonhoc_v13.09a
Pplthdt c00 gioi_thieumonhoc_v13.09a
Pix Nhox
 
Pplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09a
Pix Nhox
 
Chapter02 data types_control_structures
Chapter02 data types_control_structuresChapter02 data types_control_structures
Chapter02 data types_control_structures
trinhtv060392
 
Danh Sach Lien Ket
Danh Sach Lien KetDanh Sach Lien Ket
Danh Sach Lien Ket
Tony Nhân
 
Danhsachlienket -phpapp02
Danhsachlienket -phpapp02Danhsachlienket -phpapp02
Danhsachlienket -phpapp02
quoclong90
 

Was ist angesagt? (17)

Pplthdt c01 phong_cachlaptrinh_v13.09a
Pplthdt c01 phong_cachlaptrinh_v13.09aPplthdt c01 phong_cachlaptrinh_v13.09a
Pplthdt c01 phong_cachlaptrinh_v13.09a
 
Session 06 Final
Session 06 FinalSession 06 Final
Session 06 Final
 
Lap trinhvba
Lap trinhvbaLap trinhvba
Lap trinhvba
 
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
 
Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#
 
Lập trình C# 2008 cơ bản_Nhất Nghệ
Lập trình C# 2008 cơ bản_Nhất NghệLập trình C# 2008 cơ bản_Nhất Nghệ
Lập trình C# 2008 cơ bản_Nhất Nghệ
 
C# cơ bản hay
C# cơ bản hayC# cơ bản hay
C# cơ bản hay
 
005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf
 
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09aPplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
 
Phạm văn ất
Phạm văn ấtPhạm văn ất
Phạm văn ất
 
Pplthdt c00 gioi_thieumonhoc_v13.09a
Pplthdt c00 gioi_thieumonhoc_v13.09aPplthdt c00 gioi_thieumonhoc_v13.09a
Pplthdt c00 gioi_thieumonhoc_v13.09a
 
Pplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09a
 
Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗ...
Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗ...Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗ...
Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗ...
 
Chapter02 data types_control_structures
Chapter02 data types_control_structuresChapter02 data types_control_structures
Chapter02 data types_control_structures
 
Danh Sach Lien Ket
Danh Sach Lien KetDanh Sach Lien Ket
Danh Sach Lien Ket
 
Danhsachlienket -phpapp02
Danhsachlienket -phpapp02Danhsachlienket -phpapp02
Danhsachlienket -phpapp02
 
Oop 2
Oop 2Oop 2
Oop 2
 

Andere mochten auch

Chinh Sach Cua Cong Ty
Chinh Sach Cua Cong TyChinh Sach Cua Cong Ty
Chinh Sach Cua Cong Ty
Hung Pham Thai
 
Adapting a Consumer Payment Program to Fit Commercial Requirements
Adapting a Consumer Payment Program to Fit Commercial RequirementsAdapting a Consumer Payment Program to Fit Commercial Requirements
Adapting a Consumer Payment Program to Fit Commercial Requirements
Michel van Bommel
 
Donald j trump_trump_the_art_of_the_deal.thegioiebook.com
Donald j trump_trump_the_art_of_the_deal.thegioiebook.comDonald j trump_trump_the_art_of_the_deal.thegioiebook.com
Donald j trump_trump_the_art_of_the_deal.thegioiebook.com
Hung Pham Thai
 
02.kynangquanlysuthaydoi
02.kynangquanlysuthaydoi02.kynangquanlysuthaydoi
02.kynangquanlysuthaydoi
Hung Pham Thai
 
San prohibited pesticide list april 2009
San prohibited pesticide list april 2009San prohibited pesticide list april 2009
San prohibited pesticide list april 2009
Hung Pham Thai
 
Tinh hinh cung cau cao su thien nhien the gioi 2007
Tinh hinh cung cau cao su thien nhien the gioi 2007Tinh hinh cung cau cao su thien nhien the gioi 2007
Tinh hinh cung cau cao su thien nhien the gioi 2007
Hung Pham Thai
 
Phan ii quytrinhkythuatkhaithacmuvachamsoc
Phan ii quytrinhkythuatkhaithacmuvachamsocPhan ii quytrinhkythuatkhaithacmuvachamsoc
Phan ii quytrinhkythuatkhaithacmuvachamsoc
Hung Pham Thai
 
Ra saas certification manual aug 09
Ra saas certification manual aug 09Ra saas certification manual aug 09
Ra saas certification manual aug 09
Hung Pham Thai
 
Technology In The Classroom
Technology In The ClassroomTechnology In The Classroom
Technology In The Classroom
hales4
 
Banngheo 100329013057-phpapp01
Banngheo 100329013057-phpapp01Banngheo 100329013057-phpapp01
Banngheo 100329013057-phpapp01
Hung Pham Thai
 
quất trung bì tập 2 (china chess)
quất trung bì tập 2 (china chess)quất trung bì tập 2 (china chess)
quất trung bì tập 2 (china chess)
Hung Pham Thai
 
tuyển tập thành ngữ ca dao
tuyển tập thành ngữ ca daotuyển tập thành ngữ ca dao
tuyển tập thành ngữ ca dao
Hung Pham Thai
 

Andere mochten auch (20)

THU HOẠCH
THU HOẠCHTHU HOẠCH
THU HOẠCH
 
Chinh Sach Cua Cong Ty
Chinh Sach Cua Cong TyChinh Sach Cua Cong Ty
Chinh Sach Cua Cong Ty
 
De14.12.2008
De14.12.2008De14.12.2008
De14.12.2008
 
Adapting a Consumer Payment Program to Fit Commercial Requirements
Adapting a Consumer Payment Program to Fit Commercial RequirementsAdapting a Consumer Payment Program to Fit Commercial Requirements
Adapting a Consumer Payment Program to Fit Commercial Requirements
 
Donald j trump_trump_the_art_of_the_deal.thegioiebook.com
Donald j trump_trump_the_art_of_the_deal.thegioiebook.comDonald j trump_trump_the_art_of_the_deal.thegioiebook.com
Donald j trump_trump_the_art_of_the_deal.thegioiebook.com
 
02.kynangquanlysuthaydoi
02.kynangquanlysuthaydoi02.kynangquanlysuthaydoi
02.kynangquanlysuthaydoi
 
San prohibited pesticide list april 2009
San prohibited pesticide list april 2009San prohibited pesticide list april 2009
San prohibited pesticide list april 2009
 
Caosu q3
Caosu q3Caosu q3
Caosu q3
 
Выделение лиц по цвету
Выделение лиц по цветуВыделение лиц по цвету
Выделение лиц по цвету
 
Miss viet nam
Miss viet namMiss viet nam
Miss viet nam
 
Journal Summary
Journal SummaryJournal Summary
Journal Summary
 
Tinh hinh cung cau cao su thien nhien the gioi 2007
Tinh hinh cung cau cao su thien nhien the gioi 2007Tinh hinh cung cau cao su thien nhien the gioi 2007
Tinh hinh cung cau cao su thien nhien the gioi 2007
 
Phan ii quytrinhkythuatkhaithacmuvachamsoc
Phan ii quytrinhkythuatkhaithacmuvachamsocPhan ii quytrinhkythuatkhaithacmuvachamsoc
Phan ii quytrinhkythuatkhaithacmuvachamsoc
 
Ra saas certification manual aug 09
Ra saas certification manual aug 09Ra saas certification manual aug 09
Ra saas certification manual aug 09
 
Excel 2007
Excel 2007Excel 2007
Excel 2007
 
Technology In The Classroom
Technology In The ClassroomTechnology In The Classroom
Technology In The Classroom
 
Banngheo 100329013057-phpapp01
Banngheo 100329013057-phpapp01Banngheo 100329013057-phpapp01
Banngheo 100329013057-phpapp01
 
Baocao 2 2009_final
Baocao 2 2009_finalBaocao 2 2009_final
Baocao 2 2009_final
 
quất trung bì tập 2 (china chess)
quất trung bì tập 2 (china chess)quất trung bì tập 2 (china chess)
quất trung bì tập 2 (china chess)
 
tuyển tập thành ngữ ca dao
tuyển tập thành ngữ ca daotuyển tập thành ngữ ca dao
tuyển tập thành ngữ ca dao
 

Ähnlich wie Chuong 09 vb

Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
Hihi Hung
 
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
leduyk11
 
Meo lap trinh_tech24.vn
Meo lap trinh_tech24.vnMeo lap trinh_tech24.vn
Meo lap trinh_tech24.vn
phiagame
 
[Bao cao]tim hieu ve mo hinh lap trinh
[Bao cao]tim hieu ve mo hinh lap trinh[Bao cao]tim hieu ve mo hinh lap trinh
[Bao cao]tim hieu ve mo hinh lap trinh
Thùy Linh
 
45128de03569526f74ab41afe7186aef
45128de03569526f74ab41afe7186aef45128de03569526f74ab41afe7186aef
45128de03569526f74ab41afe7186aef
Phi Phi
 

Ähnlich wie Chuong 09 vb (20)

Pdf bai tap_nen_tang_lap_trinh_-_c#-mastercode.vn
Pdf bai tap_nen_tang_lap_trinh_-_c#-mastercode.vnPdf bai tap_nen_tang_lap_trinh_-_c#-mastercode.vn
Pdf bai tap_nen_tang_lap_trinh_-_c#-mastercode.vn
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf
 
Chuong 02 access
Chuong 02   accessChuong 02   access
Chuong 02 access
 
Quan ly bo nho
Quan ly bo nhoQuan ly bo nho
Quan ly bo nho
 
Meo lap trinh_tech24.vn
Meo lap trinh_tech24.vnMeo lap trinh_tech24.vn
Meo lap trinh_tech24.vn
 
GIAO TRINH COREL DRAW X3
GIAO TRINH COREL DRAW X3GIAO TRINH COREL DRAW X3
GIAO TRINH COREL DRAW X3
 
Giáo trình corel draw cơ bả
Giáo trình corel draw cơ bảGiáo trình corel draw cơ bả
Giáo trình corel draw cơ bả
 
Lap trinh huong_doi_tuong
Lap trinh huong_doi_tuongLap trinh huong_doi_tuong
Lap trinh huong_doi_tuong
 
Chuong 07 macro
Chuong 07   macroChuong 07   macro
Chuong 07 macro
 
[Bao cao]tim hieu ve mo hinh lap trinh
[Bao cao]tim hieu ve mo hinh lap trinh[Bao cao]tim hieu ve mo hinh lap trinh
[Bao cao]tim hieu ve mo hinh lap trinh
 
45128de03569526f74ab41afe7186aef
45128de03569526f74ab41afe7186aef45128de03569526f74ab41afe7186aef
45128de03569526f74ab41afe7186aef
 
tiểu luận wincc
tiểu luận wincctiểu luận wincc
tiểu luận wincc
 
Bai7_tin10
Bai7_tin10Bai7_tin10
Bai7_tin10
 
Auto cad nang cao part 1
Auto cad nang cao part 1Auto cad nang cao part 1
Auto cad nang cao part 1
 
Pascal 2
Pascal 2Pascal 2
Pascal 2
 

Mehr von Hung Pham Thai

Tai su dung sowdust sau trong nam
Tai su dung sowdust sau trong namTai su dung sowdust sau trong nam
Tai su dung sowdust sau trong nam
Hung Pham Thai
 
Ke hoach kd (keieijuku)
Ke hoach kd (keieijuku)Ke hoach kd (keieijuku)
Ke hoach kd (keieijuku)
Hung Pham Thai
 
Huong dan su dung biogel biosol tren ho tieu
Huong dan su dung biogel biosol tren ho tieuHuong dan su dung biogel biosol tren ho tieu
Huong dan su dung biogel biosol tren ho tieu
Hung Pham Thai
 
Essentials of trade_marketing_shared_class_students
Essentials of trade_marketing_shared_class_studentsEssentials of trade_marketing_shared_class_students
Essentials of trade_marketing_shared_class_students
Hung Pham Thai
 
Cco chien luoc-kinh_doanh-cco8 (2)
Cco chien luoc-kinh_doanh-cco8 (2)Cco chien luoc-kinh_doanh-cco8 (2)
Cco chien luoc-kinh_doanh-cco8 (2)
Hung Pham Thai
 
Biogel biosol black pepper pest and diseases romil 2014
Biogel biosol  black pepper pest and diseases romil 2014Biogel biosol  black pepper pest and diseases romil 2014
Biogel biosol black pepper pest and diseases romil 2014
Hung Pham Thai
 
42.10.4%20%20 bi kip_ban_hang._selling_for_dummies
42.10.4%20%20 bi kip_ban_hang._selling_for_dummies42.10.4%20%20 bi kip_ban_hang._selling_for_dummies
42.10.4%20%20 bi kip_ban_hang._selling_for_dummies
Hung Pham Thai
 
8.quyet dinh hop quy phan bon vo co
8.quyet dinh hop quy phan bon vo co8.quyet dinh hop quy phan bon vo co
8.quyet dinh hop quy phan bon vo co
Hung Pham Thai
 
1. cco cskh - tl hoc vien
1. cco   cskh - tl hoc vien1. cco   cskh - tl hoc vien
1. cco cskh - tl hoc vien
Hung Pham Thai
 
10 nutritional disorders of pepper
10 nutritional disorders of pepper10 nutritional disorders of pepper
10 nutritional disorders of pepper
Hung Pham Thai
 
Phan huu co phan vi sinh phan u
Phan huu co phan vi sinh phan uPhan huu co phan vi sinh phan u
Phan huu co phan vi sinh phan u
Hung Pham Thai
 
Mineral deficiencies in coffee
Mineral deficiencies in coffeeMineral deficiencies in coffee
Mineral deficiencies in coffee
Hung Pham Thai
 
Soil analysis examples and coffee nutrients
Soil analysis examples and coffee nutrientsSoil analysis examples and coffee nutrients
Soil analysis examples and coffee nutrients
Hung Pham Thai
 
Vegetables. growing asparagus in the home garden
Vegetables. growing asparagus in the home gardenVegetables. growing asparagus in the home garden
Vegetables. growing asparagus in the home garden
Hung Pham Thai
 
800 meo vat_trong_cuoc_song
800 meo vat_trong_cuoc_song800 meo vat_trong_cuoc_song
800 meo vat_trong_cuoc_song
Hung Pham Thai
 
Cac mon ngon_dung_lo_vi_ba
Cac mon ngon_dung_lo_vi_baCac mon ngon_dung_lo_vi_ba
Cac mon ngon_dung_lo_vi_ba
Hung Pham Thai
 
San local indicators coffee vietnam august 2012
San local indicators coffee vietnam august 2012San local indicators coffee vietnam august 2012
San local indicators coffee vietnam august 2012
Hung Pham Thai
 

Mehr von Hung Pham Thai (20)

U phan huu co
U phan huu coU phan huu co
U phan huu co
 
Tai su dung sowdust sau trong nam
Tai su dung sowdust sau trong namTai su dung sowdust sau trong nam
Tai su dung sowdust sau trong nam
 
Ke hoach kd (keieijuku)
Ke hoach kd (keieijuku)Ke hoach kd (keieijuku)
Ke hoach kd (keieijuku)
 
Huong dan su dung biogel biosol tren ho tieu
Huong dan su dung biogel biosol tren ho tieuHuong dan su dung biogel biosol tren ho tieu
Huong dan su dung biogel biosol tren ho tieu
 
Essentials of trade_marketing_shared_class_students
Essentials of trade_marketing_shared_class_studentsEssentials of trade_marketing_shared_class_students
Essentials of trade_marketing_shared_class_students
 
Cco chien luoc-kinh_doanh-cco8 (2)
Cco chien luoc-kinh_doanh-cco8 (2)Cco chien luoc-kinh_doanh-cco8 (2)
Cco chien luoc-kinh_doanh-cco8 (2)
 
Biogel biosol black pepper pest and diseases romil 2014
Biogel biosol  black pepper pest and diseases romil 2014Biogel biosol  black pepper pest and diseases romil 2014
Biogel biosol black pepper pest and diseases romil 2014
 
42.10.4%20%20 bi kip_ban_hang._selling_for_dummies
42.10.4%20%20 bi kip_ban_hang._selling_for_dummies42.10.4%20%20 bi kip_ban_hang._selling_for_dummies
42.10.4%20%20 bi kip_ban_hang._selling_for_dummies
 
8.quyet dinh hop quy phan bon vo co
8.quyet dinh hop quy phan bon vo co8.quyet dinh hop quy phan bon vo co
8.quyet dinh hop quy phan bon vo co
 
1. cco cskh - tl hoc vien
1. cco   cskh - tl hoc vien1. cco   cskh - tl hoc vien
1. cco cskh - tl hoc vien
 
10 nutritional disorders of pepper
10 nutritional disorders of pepper10 nutritional disorders of pepper
10 nutritional disorders of pepper
 
Phan huu co phan vi sinh phan u
Phan huu co phan vi sinh phan uPhan huu co phan vi sinh phan u
Phan huu co phan vi sinh phan u
 
Mineral deficiencies in coffee
Mineral deficiencies in coffeeMineral deficiencies in coffee
Mineral deficiencies in coffee
 
Soil analysis examples and coffee nutrients
Soil analysis examples and coffee nutrientsSoil analysis examples and coffee nutrients
Soil analysis examples and coffee nutrients
 
Growing asparagus
Growing asparagusGrowing asparagus
Growing asparagus
 
Vegetables. growing asparagus in the home garden
Vegetables. growing asparagus in the home gardenVegetables. growing asparagus in the home garden
Vegetables. growing asparagus in the home garden
 
800 meo vat_trong_cuoc_song
800 meo vat_trong_cuoc_song800 meo vat_trong_cuoc_song
800 meo vat_trong_cuoc_song
 
Cac mon ngon_dung_lo_vi_ba
Cac mon ngon_dung_lo_vi_baCac mon ngon_dung_lo_vi_ba
Cac mon ngon_dung_lo_vi_ba
 
San local indicators coffee vietnam august 2012
San local indicators coffee vietnam august 2012San local indicators coffee vietnam august 2012
San local indicators coffee vietnam august 2012
 
Hat & cay
Hat & cayHat & cay
Hat & cay
 

Chuong 09 vb

  • 1. Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic CH NG IX: NGÔN NG VISUAL BASIC Ch ng này gi i thi u n các b n nh ng khái ni m c b n c a ngôn ng l p trình Visual Basic, cách s d ng ngôn ng Visual Basic u khi n các bi n c trên các bi u m u/báo cáo và cách t o ra m t hàm riêng. 9.1. Visual Basic (VB) là gì ? VISUAL BASIC là ngôn ng l p trình cho MISCROSOFT ACCESS. B n s ng nó y nh cách s d ng t p l nh (macro) có th liên k t các i t ng trong ng d ng c a b n l i v i nhau nh m t o thành m t h th ng ch ng trình m ch l c. m khác bi t là visual basic cung c p nhi u s c m nh và m m d o h n là t p nh. T ng t nh t p l nh, visual basic c g n v i các i t ng trong CSDL. Trong MICROSOFT ACCESS, b n có th th c hi n nhi u công vi c khác nhau ng t p l nh ho c VB. Do ó v n t ra là ch n công c nào s d ng? S ch n l a này tùy thu c vào công vi c c a chúng ta là s mu n làm cái gì. Visual basic là m t ngôn ng th o ch ng hoàn thi n và theo ki u u khi n i s ki n (event driven programming language) nh ng l i r t gi ng ngôn ng th o ch ng có c u trúc thông th ng. N u b n ã t ng vi t ch ng trình b ng ngôn ng Pascal ho c C. b n s th y l i trong VB t t c nh ng c u trúc u khi n mà n ã t ng s d ng ch ng h n nh : C u trúc l p (Loops). C u trúc r nhánh IF … THEN … ELSE. C u trúc ch n l a SELECT CASE. Hàm (function) và th t c (procedure). 9.2. u m c a VB 1. cho ng d ng c a b n d dàng b o trì h n: b i vì t p l nh là m t i ng hoàn toàn tách riêng l v i các bi u m u và các báo cáo s d ng nó, m t ng d ng ch a m t s l n các t p l nh trong các bi n c c a các bi u m u và các báo cáo s gây cho b n khó kh n khi b o trì. Ng c l i khi s d ng VB lý các bi n c ó, n u ph i di chuy n các bi u m u ho c báo cáo sang m t CSDL khác thì các n l nh này c ng s mang i theo cùng. 2. T o ra các hàm c a riêng mình: S d ng Visual Basic ta c ng có th t o ra các hàm riêng c a mình dùng th c hi n các phép tính v t quá kh n ng c a t bi u th c ho c thay th m t bi u th c quá ph c t p mà b n vi t trong bên trong ng d ng c a mình. Ví d hàm chuy n i c con s chuy n thành ch ,… 3. Che i các thông báo l i: Khi có m t s c ngoài ý mu n xãy ra trong khi ng ng c a b n ang v n hành và Microsoft Access hi n th thông báo l i, thông báo này s làm cho ng i s d ng khó hi u c bi t khi h ch a quen s d ng Microsoft Access. S d ng Visual basic, b n có th phát hi n các l i này khi nó y ra và s hi n th thông báo l i c a riêng mình tu thu c vào ng d ng. 4. T o ho c s a i các i t ng: Nh chúng ta ã bi t ph n thi t k table, query, form, report, … mu n thay i các c tính, b n ph i m i t ng ch thi t k , còn VB cho phép ta thay i ngay khi ch ng trình ang ch y b ng cách vi t l nh. 5. Th c hi n các hành ng nâng c p h th ng: Dùng l nh RunApp th c hi n các l nh c a ng d ng khác. 6. Truy c p vào các b ng ghi (record): Th c hi n các thao tác trên Record nh thêm, s a, xoá các record. Trung t m Tin h c- HAG Trang 104
  • 2. Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic 9.3. Các thành ph n ch y u c a Acces basic Access basic là ngôn ng th o ch ng hoàn ch nh, nó h tr ph ng pháp th o ch ng có c u trúc mà b n ã th y trong ngôn ng Microsoft Visual Basic và nh ng th o ch ng có c u trúc khác. Nh ng thành ph n ch y u c a Access basic: Bi n (variables). Th t c hàm (function procedure). Các c u trúc ch n l a. Các c u trúc l p c a Access basic. u khi n s thi hành ch ng trình. 9.3.1. Bi n Bi n dùng l u tr nh ng giá tr t m th i khi th c hi n các phép tính trong ch ng trình, có th b n mu n tính nhi u giá tr khác nhau, so sánh chúng r i th c hi n. 1. Khai báo bi n: Dim tên_bi n [As ki u_d _li u] Ví d : Dim nguyen, n As Integer. 2. Ph m vi và th i gian s ng c a bi n Ph m vi s d ng c a bi n: tùy thu c vào vi c b n khai báo bi n âu mà ph m vi s d ng bi n ó s theo m t trong ba tình tr ng sau ây: - Bi n c c b (local variable): ch c nh n di n trong ph m vi th t c khai báo bi n ó. Ví d : Các bi n P1, P2, P3 - Bi n thu c n th (Module variable): thì c dùng chung cho t t c nh ng th t c thu c n th ó. Nh ng th t c thu c các n th khác không th tham chi u n bi n này c. Ví d : Các bi n Md1, Md2 - Bi n toàn c c (Global variable): Là bi n có ph m vi s d ng r ng nh t. Giá tr a m t bi n toàn c c có th tham chi u t b t k m t th t c nào thu c h th ng ng d ng. Ví d : Các bi n A, B. Module1 Module2 Procedure 1 có th truy xu t Global A Global B các bi n A, B, Md1 và P1 Dim Md1 Dim Md2 Không truy xu t c các bi n Procedure 1 Md2, P3 và P2 Procedure 3 Dim P1 Dim P3 Procedure 3 có th truy xu t các bi n A, B, Md2 và P3 Procedure 2 Không truy xu t c các bi n Dim P2 Md1, P1 và P2 Procedure 2 có th truy xu t các bi n A, B, Md1 và P2 Không truy xu t c các bi n Md2, P1 và P3 Trung t m Tin h c- HAG Trang 105
  • 3. Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic 9.3.2. T o th t c bi n c Cách vi t l nh bên trong th t c bi n c : Khi vi t l nh cho th t c bi n c thì Access m ch ng trình Basic cho chúng ta vi t l nh Th t c là các n l nh mà b n ã vi t b ng ngôn ng Visual Basic. Bên trong t th t c s ch a ng m t dãy các câu l nh c a Visual Basic th c hi n m t hành ng ho c tính toán m t giá tr nào ó. M t th t c bi n c là m t th t c s c ch y áp l i cho m t bi n c . Ch ng h n ta có nút l nh trong form khi ng i s d ng click vào nút l nh thì form s óng form, ta nói click mouse là bi n c (event) hay s ki n. Ta vi t l nh óng Form t c ta t o th t c x lý bi n c . Th t c bi n c là m t ph n trong công vi c Form ho c Report. Do ó b c u tiên là chúng ta ph i t o ra form và các ô u khi n trên form này. 9.3.3. Th t c và n th Visual basic Th t c hàm (function procedure): T ng t v i nh ngh a c a hàm trong các ngôn ng th o ch ng khác, th t c hàm c a Visual basic ch hoàn tr m t giá tr duy nh t t i m tham chi u n hàm ó. 1. Cú pháp c a th t c: [Public|Private] [Static] Sub Tên_Th _t c([tham s ]) Các l nh th c hi n End Sub Trong ó: Tham s : Các tham s g i vào cho th t c dùng tính toán bên trong. L nh th c hi n: Dãy các câu l nh Visual Basic mà ta mu n thi hành khi th c ho c hàm c g i. Giá tr tr v : Giá tr d li u tr v sau khi m t dãy các câu l nh bên trong c a hàm ã c tính toán xong. 2. Khai báo các tham s trong th t c/hàm: [ByVal I ByRef] <tên_bi n> As <ki u_DL> [=giá tr m c nh] 3. Cú pháp g i m t th t c: Tên_Th _t c(Danh sách tham s ) ho c Call Tên_Th _t c(Danh sách tham s ) 4. Cú pháp khai báo hàm [Public|Private] [Static] Function Tên_hàm([tham s ]) As <ki u_DL> <l nh th c hi n> Tên_hàm= giá tr tr v End Function Sau khi th c hi n các câu l nh hàm cho ta k t qu là giá tr tr v . Ví d : Hàm chuy n ký t s thành chu i c nh ngh a nh sau: Function SoThanhChuoi(i As Integer) As String Dim str As String Select Case i Case 1 str = "Mot" Case 2 Trung t m Tin h c- HAG Trang 106
  • 4. Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic str = "Hai" Case 3 str = "Ba" Case 4 str = "Bon" Case 5 str = "Nam" Case 6 str = "Sau" Case 7 str = "Bay" Case 8 str = "Tam" Case 9 str = "Chin" End Select sothanhchui = str End Function 5. S d ng các tham s bi n i Khi g i n hàm chúng ta ph i truy n y các tham s cho hàm n u không thì h th ng s báo l i. Tuy nhiên Visual Basic cung c p cho chúng ta 2 cách s ng các tham s thay i. Tham s có th b qua Dùng t khóa Optional tr c m i tham s n u ta mu n cho tham s ó có th qua. Khi g i hàm trong ó có khai báo Optional thì ta có th truy n ho c không truy n tham s . N u không truy n thì hàm s l y giá tr nh s n trong nh ngh a hàm i v i tham s có th b qua. l ng tham s tùy ý s d ng s l ng tham s tùy ý có ki u là Variant (ki u bi n) chúng ta ph i d ng t khóa ParamArray. M c ích khi s d ng cách này là chúng ta ch a xác nh c s g i vào bao nhiêu tham s cho th t c khi ch y. 6. M ng (Array) Dùng m t m ng ch n m t dãy các bi n cùng tên nhau và s d ng ch s ch ra m t ph n t c a m ng. T t c các ph n t trong m t m ng ph i có cùng t ki u d li u. D nhiên khi mãng có ki u d li u thay i thì các ph n t trong m t ng có th ch a nhi u lo i d li u khác nhau. Khai báo m ng có kích th c c nh: - Dim mangnguyen(10) As integer - Dim mangsothuc(15) As Double Ch s u tiên c a m ng là 0. Nh ng ta có th ch nh ch s u tiên. - Dim mangnguyen(10) As integer - Dim mangsothuc(15) As Double Khai báo m ng nhi u chi u: - Static mangmatran(9,9) As Double - Ho c Static mangmatran(0 to 9,0 to 9) As Double Tham chi u các ph n t trên m ng: ch nh m t ph n t nào ó trên ng ta s d ng ch s c a m ng. Trung t m Tin h c- HAG Trang 107
  • 5. Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic Ví d : Gán giá tr cho t ng ph n t c a m ng nguyên là 10. Dim nguyen(1 to 5) As Integer Dim I As Integer For I=1 to 5 nguyen(I) = 10 Next I 9.4. Các c u trúc u khi n c a ngôn ng Basic 9.4.1. C u trúc quy t nh (Decision structures) 1. C u trúc IF … THEN: B n s d ng c u trúc If … Then th c hi n m t hay nhi u l nh có u ki n. n có th dùng m t trong hai ph ng pháp sau di n t c u trúc này: - L nh trên m t dòng: IF u_ki n THEN th c_hi n_l nh Ví d : If 6>=5 then Msgbox“sáu l n h n ho c b ng n m” - L nh trên nhi u dòng: IF u_ki n THEN th c_hi n_l nh_1 th c_hi n_l nh_2 … ENDIF Ví d : IF 6>=5 THEN Msgbox “sáu l n h n ho c b ng n m” ENDIF M c u_ki n trong c u trúc IF là m t bi u th c mà giá tr là: - Không ( u ki n sai-False) khi ó l nh không th c hi n. - Khác không ( u ki n úng-True) khi ó l nh c th c hi n. 2. C u trúc IF … THEN … ELSE Cú pháp: IF u_ki n THEN [statements] [ELSEIF condition-n Then [elseifstatements] ... [ELSE [elsestatements]] END IF 3. C u trúc SELECT CASE Cú pháp: SELECT CASE bi u_th c_ki m_ nh [CASE danh_sách_giá_tr _1: [nhóm_l nh_1]] [CASE danh_sách_giá_tr _2: [nhóm_l nh_2]] … [CASE ELSE [nhóm_l nh_n]] Trung t m Tin h c- HAG Trang 108
  • 6. Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic i danh_sách_giá_tr là m t danh sách g m m t hay nhi u giá tr kh h u c a bi u th c ki m nh và c phân cách nhau b i d u ch m ph y ”;” trong tr ng p m t dãy giá tr liên ti p, b n có th dùng t khoá TO. Ví d : CASE 1 TO 5 i nhóm_l nh có th ch a m t hay nhi u l nh (ho c không có) mà Access basic ph i thi hành khi bi u th c ki m nh có giá tr n m trong danh sách giá tr ng ng. Trong tr ng h p có nhi u câu CASE tho u ki n ki m nh thì ch có nhóm l nh ng v i câu CASE u tiên th a u ki n ki m nh c thi hành mà thôi. Trong tr ng h p không m t câu CASE nào tho u_ki n_ki m_ nh thì access basic s thi hành nhóm l nh qui nh câu CASE ELSE. 9.4.2. C u trúc l p p l i m t nhóm l nh trong khi m t u ki n úng (While) ho c cho n khi t u ki n sai (Until). Do [{While | Until} u_ki n_ki m_ nh] [Nhóm l nh] [Exit Do] [Nhóm l nh] Loop Ho c: Do [Nhóm l nh] [Exit Do] [Nhóm l nh] Loop [{While | Until} u_ki n_ki m_ nh 2. C u trúc For … Next Cú pháp: FOR bi n=giá_tr u TO giá_tr _cu i [STEP gia_s ] Nhóm l nh NEXT Gia s có th là s d ng ho c s âm. Ví d : Tính t ng các s nguyên t 1 n 10: Sub tong10() Dim tong, I As Integer Tong=0 For I=1 to 10 Tong = tong + i Next Msgbox ”T ng 10 s nguyên là: ”&tong End sub Ho c: Sub tong10() Dim tong, I As Integer Tong=0 For I=10 to 1 step -1 Tong = tong + i Next Msgbox ”T ng 10 s nguyên là: ”&tong End sub Trung t m Tin h c- HAG Trang 109
  • 7. Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic 9.4.3. u khi n s thi hành ch ng trình C u trúc u khi n l ng nhau: B n có th vi t m t c u trúc u khi n l ng trong u trúc u khi n khác. Thoát kh i c u trúc u khi n: B n có th thoát kh i m t vòng l p ho c thoát kh i m t th t c Sub, Function b ng cách dùng l nh Exit. Ví d : - Thoát kh i vòng l p ForExit For. - Thoát kh i m t th t c sub ho c function: Exit Sub 9.4.4. S d ng các hàm Khi ta ã xây d ng xong hoàn ch nh m t hàm thì ta có th g i s d ng nó c i các v trí sau: Trong các th t c ho c các hàm khác. M t bi u th c nh ngh a tính toán trong m t truy v n, m t u khi n trên Form (bi u m u) ho c Report. Làm u ki n cho truy v n ho c t p l nh. 9.5. Bi n bi u th cho CSDL (Database variables): t c các hàm mà b n s d ng trong vi c m b ng d ki n (table), b ng truy n (query) trong Access Basic u òi h i qui nh m t i t ng c a CSDL. B n khai báo bi n i t ng thu c ki u Database theo cùng m t cách gi ng nh khai báo t c nh ng i t ng khác nh ng tr c khi khai báo m t bi n CSDL b n ph i khai báo c vùng làm vi c dành cho CSDL ó. Ví d : bi n tham chi u n CSDL ang làm vi c hi n hành có th nh ngh a nh sau: Dim Ws as WorkSpace ‘bi n i t ng WorkSpace Dim DB as Database ‘bi n i t ng Database Set ws = DBEngine.Workspaces(0) ‘vùng làm vi c hi n hành Set DB = Ws.Databases(0) ‘CSDL hi n hành Ho c n gi n h n: Dim DB As Database Set DB= DBEngine.Workspaces(0).Databases(0) ‘CSDL hi n hành Ho c: Dim DB as Database Set DB=CurrentDB() 9.6. it ng và bi n bi u th các it ng: Nh ta ã bi t ph n c b n các thao tác t o, s a, xóa các i t ng table, query, form, report ch b ng thao tác click mouse và còn l thu c vào cách x trí c a ng i thao tác. Trong ph n này chúng ta bàn v cách vi t l nh tùy theo tình hu ng mà ch ng trình s x lý. Ch nh các i t ng thu c tính và ph ng th c: Các i t ng access c phân lo i ra thành các t p h p, và các t p h p này c nhóm l i theo t ng i t ng cùng m t lo i. T p h p các form là m t nhóm các form ang m trong c s d li u. M i m t form l i có t p h p các u khi n là các u khi n có trên form. M i m t u khi n trên form l i là m t i t ng, và ta có th ch n b t k m t i t ng xuyên su t qua t p h p mà i t ng ó thu c vào. Trung t m Tin h c- HAG Trang 110
  • 8. Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic Ví d : ch nh n m t form trong t p h p các form. Visual basic a ra 3 cách ch nh n m t i t ng: Form!<tên_form> ho c Form(“<tên_form>”) ho c Form(0) Trong ó cách dùng ch nh form theo th t mà nó cm :0 ch form ã m ra u tiên, 1 ch nh form m ra th hai,… Cách tham chi u n các i t ng c a CSDL: it ng tham chi u Qui nh tham chi u Form Forms![tên_form] Thu c tính c a Form Forms![tên_ form].[thu c_tính] u khi n trong Forms![tên_ form].[Tên_ u_khi n] Tính ch t ô u khi n thu c Form Forms![tên_ form].[Tên_ u_khi n].[thu c_tính] Gán giá tr cho bi n i t ng: Dùng l nh SET liên k t i t ng v i m t i t ng ã có c a CSDL. 9.7. Bi n bi u th i t ng là m t t p h p m u tin (Recordset) 9.7.1. Phân lo i: Có 3 lo i recordset: Ki u it ng S m u tin c a it ng ki n c a it ng Table Có th thay i Có th thay i Dynaset Có th thay i Có th thay i SnapShot nh/ không thay i không thay i Bi n Recordset thu c lo i Table: bi n lo i này h tr h u h t các thao tác thêm (add), s a (update), xoá (delete) và cho bi t tình tr ng m i nh t c a b ng d li u (table). Ch th c hi n trên CSDL hi n hành. Cách m : SET bi n=CSDL.OpenRecordset(tên Table, DB_OPEN_TABLE) Bi n Recordset thu c lo i Dynaset: bi n lo i này linh ho t h n lo i table. Cách m : SET bi n=CSDL.OpenRecordset(tên Table, DB_OPEN_DYNASET) Bi n Recordset thu c lo i Snapshot: Cách m : SET bi n=CSDL.OpenRecordset(tên Table, DB_OPEN_SNAPSHOT) 9.7.2. X lý d ki n v i các bi n Recordset 1. Di chuy n t Record này n record khác Ph ng th c Ý ngh a MoveFirst Di chuy n v record u tiên MoveNext Di chuy n v record k ti p. N u thu c tính EOF là True thì MoveNext c th c hi n s xãy ra l i. MovePrevious Di chuy n v record tr c ó. N u thu c tính BOF là True thì MovePrevious c th c hi n s xãy ra l i. MoveLast Di chuy n v record cu i cùng u trúc c a m t t p h p m u tin (recordset): BOF RECORD 1 Trung t m Tin h c- HAG Trang 111
  • 9. Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic RECORD 2 RECORD 3 … … RECORD n EOF t bi n Recordset (lo i Table, Dynaset, ho c Snapshot) th ng có m t v trí hi n hành c a nó, ngh a là ch n record hi n hành. 2. m nh ng m u tin c a bi n Recordset: RecordCount. 3. Tìm ki m m t m u tin c bi t - Dùng ph ng th c Find: Ph ng th c Ý ngh a Tìm n Record u tiên trong nhóm nh ng record tho FindFirst tiêu chu n ã qui nh. Tìm n Record k ti p record hi n hành trong nhóm FindNext nh ng record tho tiêu chu n ã qui nh. Tìm n Record ngay tr c record hi n hành trong FindPrevious nhóm nh ng record tho tiêu chu n ã qui nh. Tìm n Record cu i cùng trong nhóm nh ng record FindLast tho tiêu chu n ã qui nh. - Dùng ph ng th c Seek: Tìm theo tiêu chu n so sánh. Các phép so sánh m: =, >=, >, <, <=. 4. u ch nh nh ng m u tin (record) c a m t Recordset. - u ch nh m u tin hi n hành c a Recordset: + B1: Di chuy n n record mu n s a. + B2: Dùng hành vi Edit (cho phép ch nh s a m u tin hi n hành). + B3: Th c hi n vi c ch nh s a. + B4: Dùng hành vi Update (l u l i nh ng thay i). Ví d : Trong CSDL qu n lý hóa n u ch nh d li u c a các record có s hóa n 015 thành 025. Sub chinhhd() Dim db As Database Dim rs As Recordset Set db = CurrentDb() 'gán bi n DB là m t csdl HI N HÀNH Set rs = db.OpenRecordset("HOADON") If Not rs.BOF Then rs.MoveFirst End If Do Until rs.EOF If rs!SOHD = "015" Then rs.EditMode rs!SOHD = "025" Trung t m Tin h c- HAG Trang 112
  • 10. Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic rs.Update End If rs.MoveNext Loop rs.Close End Sub - Thêm m t m u tin vào Recordset. + B1: Dùng hành vi Addnew. + B2: Gán nh ng giá tr cho các field c a Recordset. + B3: Dùng hành vi Update (l u l i nh ng thay i). VD:Thêm m t record vào b ng (table) HOADON: Sub themRecord() Dim db As Database Dim rs As Recordset Set db = CurrentDb() 'gán bi n DB là m t csdl HI N HÀNH Set rs = db.OpenRecordset("HOADON") rs.Addnew rs!SOHD = "035” rs!LOAIHD=”NHAP” rs!NGAYHD=#30/12/99# rs!MAKH=”CTB00011” rs!MAKHO=”KH1” rs!TRIGIA=100000 rs!THUE=5 rs.Update rs.Close End Sub - m s record trong m t b ng: Dùng thu c tính RecordCount. mb o tính chính xác tr c khi s d ng ta cho con tr v cu i b ng b ng cách s d ng ph ng th c MoveLast. - p x p d li u trong b ng: Dùng thu c tính Sort. - c d li u: Dùng thu c tính Filter. - S p x p: Dùng thu c tính Index. - o bi n Recordset trên c s m t Form: Dùng l nh SET theo cú pháp sau: SET Tên_bi n_Recordset = Forms![Tên_Form].RecordsetClone Trung t m Tin h c- HAG Trang 113