You are on page 1of 94

| 


Copyright by : Trɤn Phúc Hɪu
Tháng 10/2003
Do khë G   
   
   
     
     
 

  | 
p o ng II. p t  t vi bng
p o l
(› ng III. Truy vn t ng tin (š  l
p o ng IV. T it k gi din („ l
p o ng V. T it k b  (? l
p o ng VI. p ln vĩ m (|  l
p o ng VII. Lp trìn trng A
(|  l
  | !"#  $| 
%&
 
:
Ú1.1. CSDL & hʄ quɠn trʈ CSDL
1. Cơ s͟ dͯ liʄu
2. Hʄ quɠn trʈ cơ s͟ dͯ liʄu
3. Công cͥ quɠn trʈ CSDL Microsoft
Access
Ú1.2. Mô hình dͯ liʄu quan he®
1. Thu͙c tính
2. Khóa (Khóa chính, khóa ngoɞi)
3. Ràng bu͙c toàn vɶn
Ú1.1. CSDL & hʄ quɠn trʈ CSDL
1. Cơ s͟ dͯ liʄu (CSDL ± ð   ) là m͙t hʄ th͑ng
thông tin có cɢu trúc, đưͣc lưu trͯ trên các thiɼt bʈ
mang tin tͫ tính (thư͝ng là đĩa tͫ), phͥc vͥ viʄc khai
thác thông tin đ͓ng th͝i cͧa nhiɾu ngư͝i sͭ dͥng v͛i
nhiɾu mͥc đích khác nhau.
L Các đɴc tính quan tr͍ng cơ bɠn nhɢt cͧa Cơ s͟ dͯ
liʄu đưͣc in màu và gɞch chân.
2. Hʄ quɠn trʈ cơ s͟ dͯ liʄu (ð       

 ð
) là m͙t hʄ th͑ng chương trình quɠn
trʈ CSDL đ͓ng th͝i là công cͥ giao tiɼp giͯa ngư͝i sͭ
dͥng (NSD) v͛i hʄ th͑ng cơ s͟ dͯ liʄu. M͙t hʄ quɠn
trʈ CSDL phɠi có các cơ chɼ:
LL ¨ɠm bɠo tính chɢt đɤy đͧ, không trùng lɴp và
không dư thͫa thông tin.
Utiɼp theo)
LL ¨ɠm bɠo tính nhɢt quán, an toàn và toàn vɶn dͯ liʄu.
LL Bɠo mɪt dͯ liʄu.
LL Giɠi quyɼt tranh chɢp dͯ liʄu.
LL ¨ɠm bɠo tính đ͙c lɪp giͯa dͯ liʄu và chương trình.
LL Tͱ sao lưu ( ) và phͥc h͓i () khi có sͱ
c͑.
LL Ngôn ngͯ truy nhɪp CSDL, cho phép ngư͝i sͭ dͥng và
các chương trình ͩng dͥng khai thác thông tin trong
CSDL. Ngôn ngͯ này đưͣc chia thành 4 lĩnh vͱc (hay
phɞm trù ± p  ):
(a) Ngôn ngͯ đʈnh nghĩa dͯ liʄu (ð  ð    
ðð), cho phép tɞo các cɢu trúc dͯ liʄu lưu trͯ.
(b) Ngôn ngͯ thao tác dͯ liʄu (ð        
ð), cho phép cɪp nhɪt (thêm, xóa, sͭa) dͯ liʄu.
(c) Ngôn ngͯ truy vɢn dͯ liʄu (
    

).
(d) Ngôn ngͯ kiʀm soát dͯ liʄu (ð  p    ðp)
Utiɼp theo)
. Công cͥ quɠn trʈ CSDL Microsoft Access.
Microsoft Access là m͙t công cͥ quɠn trʈ CSDL,
cho phép xây dͱng các ͩng dͥng CSDL theo mô
hình dͯ liʄu quan hʄ trên m͙t môi trư͝ng g͍n
nhɶ, đơn giɠn, dʂ thao tác, nhưng vɨn đɠm bɠo
đưͣc các tính chɢt quan tr͍ng đã nêu cͧa m͙t hʄ
quɠn trʈ CSDL. M͗i ͩng dͥng CSDL trên môi
trư͝ng ÷  là m͙t file trên đĩa tͫ có phɤn m͟
r͙ng mɴc đʈnh là  , g͓m 6 đ͑i tưͣng: các
bɠng (  ê   ± quan hʄ theo lý thuyɼt
CSDL quan hʄ), Các câu truy vɢn (), Các
giao diʄn nhɪp liʄu ( ), Các báo cáo
(), Các lʄnh vĩ mô ( ) và các
 chương trình. M͗i đ͑i tưͣng đɾu có các
chͩc năng:  ± Tɞo đ͑i tưͣng m͛i, Deign ±
Sͭa lɞi đ͑i tưͣng đã có, và ! ± M͟ (hoɴc thͱc
hiʄn) đ͑i tưͣng đã ch͍n.
Ú1.2. Mô hình dͯ liʄu quan hʄ
1.  '( (÷):
Thu͙c tính là m͙t tính chɢt cͧa đ͑i tưͣng cɤn đưͣc phɠn
ɠnh trong CSDL "# $# " $% "  "& "'  $(
  ) .
*+ #: Vɾ con ngư͝i, các đɴc tính sau đây cɤn đưͣc lưu
trͯ:
H͍ tên, Gi͛i tính, Ngày sinh«
Thu͙c tính đưͣc đɴc trưng b͟i:
a. Tên g͍i: Tên cͧa thu͙c tính là m͙t dãy ký tͱ bɢt kƒ
bɬt đɤu bɮng ký tͱ khác khoɠng trɬng ( ). Tuy
nhiên, nên đɴt tên thu͙c tính bɮng chͯ cái Latin, và đɴt
tên m͙t cách gͣi nh͛. Nɼu tên có chͩa các ký tͱ đɴc biʄt
thì khi sͭ dͥng phɠi đɴt nó trong cɴp dɢu ngoɴc vuông [
].
*+ ï: HoTen, GioiTinh, NgaySinh, +++, ---, ***, ///
Tuy nhiên, 4 tên g͍i sau, khi sͭ dͥng phɠi đɴt trong
ngoɴc vuông: [+++], [---], [***], [///]
Utiɼp theo)
b. Kiʀu giá trʈ:
M͗i công cͥ quɠn trʈ CSDL có các kiʀu dͯ liʄu khác
nhau. Tuy nhiên đɾu có chung các kiʀu dͯ liʄu cơ bɠn
sau:
-  ,: (-,
, p" , ..)
- . /: ( , ð  ,  , «)
- . ) "&: (ð /Ti e) phɠi có đɤy đͧ cɠ
ngày, tháng và năm.
- . 0   ( ,  , 1, «)
- . 2 % 3 "45 % (!6) bao g͓m hình ɠnh
( ), âm thanh (÷) hoɴc/và phim ($)
j. Miɾn giá trʈ:
Miɾn giá trʈ (
)*) đɠm bɠo tính đúng đɬn cͧa dͯ
liʄu. B͟i nɼu m͛i chʆ xác đʈnh có kiʀu dͯ liʄu, ví dͥ,
thu͙c tính chiɾu cao CCVC là s͑ nguyên, thì có thʀ
nhɪp giá trʈ 50cm! ¨iɾu này là không thʀ chɢp nhɪn
đưͣc.
Utiɼp theo)
ï   U  !  " #  # $
%f

   &' Ÿ      "  '   G (  
  )      *   + '   

U$   "  ,'  # - Ÿ       ' # 
%  + '    
%f

   .  /U$ ' 
ö   + 

  
"   ,' @  ' #  G /  ,'   
U$    )      U  0$
U$ ' 
   
%f

   1  ö     #   ï
. #      ' #    U.   2 $
%f

   1 #    ö     ,ö  ) 
   ' # "  U  2$
š  o   "     ö U-$    3 
ë    4  Ÿ   G   "  # " 
Utiɼp theo)

%f

   /U$ 5U$ ' ï 
ö ,' 0 @  ' # G /
64 ï @  7 
U$ 0 ,' ï  8    ,' 9 + G    " 
U$ */ -    :   *5   0;  ï  
  *5 <  */    0;  ï
  ï G 5     ' #  U„ 2$ #
     ö /
%f

   /U$ 5U$ '  
ö 0 @  ' # G /
ï @  ' #  #    / ,'  @ ï 7  '
   "  # G 5 -      ' #  
U $
/'  ' , U .   / $
%'0  ' 
.5=& 3 
 " (      ' ,'
' ,  ö 
  ##+, 
%&
 
:
Ú2.1. Tɞo lɪp j u trúj bɠng
1. Các tính chɢt (!) cͧa c͙t
2. Thao tác tɞo cɢu trúc bɠng.
3. Thiɼt lɪp khóa chính cho bɠng
Ú2.2. Thiɼt lɪp m͑i liên hʄ giͯa jáj bɠng
Ú2.3. Tɞo bɠng tͫ dͯ liʄu đã j UY )
Ú2.4. Sͭ dͥng jhung tài nguyên v͛i jáj
CSDL kháj
Ú2.5. Tríjh xu t dͯ liʄu ra file hoɴj bɠng
ngoài
Ú2.1. Tɞo lɪp j u trúj bɠng
L. Các tính chɢt (!) cͧa c͙t
Microsoft Access có các kiʀu dͯ liʄu sau:
- . $7 8 v͛i chiɾu dài c͑ đʈnh (-). Trong
kiʀu này phɠi xác đʈnh đ͙ r͙ng cͧa c͙t ± tính theo
byte. ¨͙ r͙ng t͑i đa cͧa c͙t là 255 bytes. Giá trʈ
luôn luôn đưͣc điɾn thêm khoɠng trɬng ͟ cu͑i đʀ
cho đͧ s͑ lưͣng đã khai báo.
- . / ( ). Có 5 loɞi kiʀu s͑ theo kích thư͛c
lưu trͯ. S͑ nguyên 1   ( ) có giá trʈ tͫ 0 đɼn
255. S͑ nguyên 2   (Y) có giá trʈ tͫ ±
32768 đɼn +32767. S͑ nguyên 4   () có
giá trʈ tͫ khoɠng -2,1 tͷ đɼn +2,1 tͷ. S͑ thͱc đ͙c
hính xác đơn (
) chiɼm 4 bytes, có giá trʈ đɠm
bɠo chʆ có 7 chͯ s͑ đɤu là có nghĩa đúng đɬn. S͑
thͱc đ͙ chính xác gɢp đôi (ð) đɠm bɠo 15 chͯ
s͑ có ý nghĩa - đúng.
Utiɼp theo)
- . 0  1/o (hoɴc /  hoɴc
!9!).
- . $7 8 : "( ) " 3; ( ). Giá
trʈ có thʀ có kích thư͛c t͑i đa 64K  .
- . ( % (p ) v͛i bɠn chɢt là kiʀu s͑,
nhưng khi hiʀn thʈ thì có ký hiʄu tiɾn tʄ < ͟ phía
trư͛c.
- . ) "& (ð  ). Giá rʈ kiʀu này
phɠi có đɤy đͧ cɠ ngày, tháng và năm.
- . 3&" / 7 = > & " , 3>
(÷ ) là s͑ nguyên 4 bytes, tͱ đ͙ng
tăng 1 m͗i khi m͙t bɠn ghi m͛i đưͣc b͕ sung
vào bɠng.
- . 2 % 3 "45 % (!?  
6   !6), có thʀ là m͙t bɠng tính
6- , file @, hình ɠnh ( ), âm thanh
(÷) hoɴc phim ($).
Utiɼp theo)
Ngoài các tính chɢt cơ bɠn cͧa c͙t mà m͙t thu͙c tính
cͧa quan hʄ cɤn có là Tên ( ), Kiʀu giá trʈ
( ) và Kích thư͛c (
A), c͙t cͧa bɠng cɤn đưͣc
đɴc tɠ chi tiɼt thêm m͙t s͑ tính chɢt sau:
u Tiêu đɾ c͙t (p ) ± hiʀn thʈ khi nhɪp dɞng bɠng
u šuy cách hiʀn thʈ ( ) ± đó là m͙t dãy các ký
tͱ thʀ hiʄn quy cách hiʀn thʈ giá trʈ cͧa field trên
màn hình nhɪp dͯ liʄu, trong đó:
-¨͑i v͛i kiʀu s͑:
   ± có dɢu tách hàng
ngàn, hàng triʄu. Các giá trʈ bɮng tiɾn hay các s͑
l͛n thì nên ch͍n dɞng   này. S͑ 0 đʀ hiʄn s͑
0 vô nghĩa.
- ¨͑i v͛i kiʀu văn bɠn: dɢu ³>´ đʀ hiʄn chͯ in
hoa; ³<³ đʀ hiʄn chͯ nh͏.
-V͛i ngày tháng:
"ð ,  và
ð «
Utiɼp theo)

- V͛i kiʀu lôgic: hiʀn thʈ bɮng chͯ (-) 1,


 , !! hay bɮng p"  - L.
u šuy cách nhɪp dͯ liʄu (Y  ): Là m͙t dãy ký tͱ
có ý nghĩa như sau:
0 - Tɞi vʈ trí đó phɠi nhɪp m͙t chͯ s͑ (bɬt bu͙c).
9 - Nhɪp 1 chͯ s͑ (không bɬt bu͙c).
# - 1 chͯ s͑ (hoɴc dɢu +/-) bɢt kƒ (không bɬt bu͙c).
? - M͙t chͯ cái bɢt kƒ (không bɬt bu͙c)
a - Nhɪp 1 chͯ cái/chͯ s͑ bɢt kƒ (không bɬt bu͙c)
A - Nhɪp 1 chͯ cái/chͯ s͑ (bɬt bu͙c).
> - ¨͕i các chͯ cái sau thành chͯ in hoa.
< - ¨͕i các chͯ cái sau thành chͯ nh͏.
& - M͙t ký tͱ bɢt kƒ, bɬt bu͙c nhɪp
C - M͙t ký tͱ bɢt kƒ, không bɬt bu͙c nhɪp.
Utiɼp theo)
u Giá trʈ mɴc đʈnh (ð  * )
u šuy tɬc kiʀm tra tính đúng đɬn cͧa dͯ liʄu nhɪp
(*    ê RBTV vɾ miɾn giá trʈ). šuy tɬc có
dɞng:
<> <& B> OR | AND <> <& B> «
͞ đây <> là m͙t trong các phép so sánh sau đây:
CD CED FD FED FCD YD  D 
u Thông báo l͗i khi RBTV bʈ vi phɞm (*   -)
u Dͯ liʄu có bɬt bu͙c phɠi đưͣc nhɪp không? (G)
u ÷ H ": Cho phép chu͗i có chiɾu dài bɮng 0.
u Cɤn đưͣc lɪp chʆ mͥc không (Y-). Có 3 lͱa ch͍n:
 ± Không lɪp chʆ mͥc (mɴc đʈnh)
1,    ± lɪp chʆ mͥc nhưng không chͩa gtrʈ
lɴp
1, ð  ! - lɪp chʆ mͥc cho cɠ giá trʈ lɴp.
Utiɼp theo)
L. Thao tác tɞo cɢu trúc bɠng.
Thao táj
B0) Kh͟i đ͙ng Microsoft Access (nɼu chưa làm)
B1) Nɼu chưa có CSDL thì tɞo m͛i:
- Nɼu m͛i kh͟i đ͙ng MSA thì ch͍n    
ð     OK.
- Nɼu đang trong MSA thì vào menu  ch͍n  
OK.
- Ch͍n thư mͥc lư trͯ file CSDL tɞi mͥc Save In.

- ¨ɴt tên file CSDL tɞi mͥc File Name. Tên file CSDL
mɴc đʈnh là DB1, DB2, « Không cɤn đɴt phɤn m͟ r͙ng
cho file CSDL. Hãy sͭ dͥng mɴc đʈnh cho file CSDL là
.mdb.
Màn hình tɞo m͛i CSDL xuɢt hiʄn như trong hình sau:
Nɼu đã có CSDL thì m͟ CSDL b͟i mͥc \File\
File\Open
Utiɼp theo)
Utiɼp theo)
ëï$.   ›  U   '$
ë$.  >  U $.# > 
 G .5=&
=  ?.  
) ö  ë 
= ?› #  (G  
› @ )›   ( A> 
› ›  ) ö > 
& #› › 
#) ö  )8  '

,ö .5=&#
ë$&    G  U  -  $
ë$›
# "   
!  B "5   ,' " # 
! ë  ,' ( > - - #  

ë $%  Ÿ # ,' 
  C 
)I"J"I3K I8II LIM I8 Utiɼp theo)

 p  
D› ›  o 

 
# 

 o , 

Ú2.2. Thiɼt lɪp m͑i liên hʄ giͯa jáj
bɠng
Thao táj B0), B1) (NI "4 I) )
B2) Vào Menu , ch͍n chͩc năng  ".
Màn hình xuɢt hiʄn như hình dư͛i đây:
UTiɼp theo)
B3) Ch͍n các bɠng cɤn đưa vào  " b͟i
nút ÷ Kɼt thúc ch͍n b͟i nút p. Màn hình
như hình dư͛i đây:
UTiɼp theo)
B4) "8 (ð ) thu͙c tính khóa chính
vào thu͙c tính khóa ngoɞi cͧa bɠng liên quan, r͓i
điɾu chʆnh m͑i quan hʄ tương ͩng giͯa các thu͙c
tính khoá chính và khoá ngoɞi, như hình dư͛i đây:
UTiɼp theo)

- Ch͍n kiʀu liên kɼt thông qua tuƒ ch͍n (  ). Ba loɞi
liên kɼt tương ͩng v͛i 3 phép toán đɞi s͑ quan hʄ: Y
,  , " . Mɴc đʈnh là Y .
- Bɬt bu͙c kiʀm tra ràng bu͙c toàn vɶn vɾ khoá ngoɞi nɼu
đánh dɢu vào mͥc L 6    Y . Hai mͥc
sau có thʀ đưͣc ch͍n:
L p       : Tͱ đ͙ng cɪp nhɪt
khóa ngoɞi
Lp   ð    : Tͱ đ͙ng xóa lan
truyɾn.
- Ch͍n nút p  đʀ tɞo lɪp. p   đʀ hͧy b͏.

B5) ¨óng cͭa s͕ thiɼt kɼ và lưu lɞi các m͑i liên kɼt m͛i tɞo.
** 4 : Giͯa 2 bɠng chʆ thʀ hiʄn m͙t m͑i liên hʄ. ¨ʀ thʀ
hiʄn (các) m͑i liên hʄ khác thì cɤn b͕ sung lôgíc m͙t trong
2 bɠng đó vào lưͣc đ͓ ( "). Tên cͧa các bɠng
lôgíc này đưͣc ghép thêm s͑ _1, _2« ͟ phía sau.
Ú2.3. Tɞo bɠng tͫ dͯ liʄu đã j UY )
Ngu͓n dͯ liʄu đʀ Y  có thʀ là các Tables, šueries, Forms,
Reports, Macros, Modules cͧa file CSDL Microsoft Access, hoɴc
file ð , -, 6- , - hoɴc các bɠng trong các CSDL
đưͣc kɼt n͑i m͟ (! ð    p $ ).
Thao táj B0), B1), B2) (NI "4 I) )
B3) Ch͍n chͩc năng  \Y I 
- Ch͍n loɞi dͯ liʄu ngu͓n tɞi mͥc II 

- Xác đʈnh thư mͥc chͩa các file dͯ liʄu thu͙c loɞi trên tɞi
mͥc IY.
- Xác đʈnh tên file (hoɴc CSDL) dͯ liʄu ngu͓n tɞi mͥc: I
 .
- Ch͍n chͩc năng Y 

Màn hình ch͍n file dͯ liʄu ngu͓n như trong hình cho trong
trang sau.
OPQ ɼu ngu͓n dͯ liʄu là file CSDL cͧa Access thì chʆ cɤn ch͍n
các  DIDI DID  hay  r͓i
OK. Nɼu là bɠng hoɴc file CSDL thì đánh dɢu ch͍n r͓i OK đʀ
hoàn tɢt.
UTiɼp theo)
1' -   ) ö        
1  E 
UTiɼp theo)
7   ) ö '  .5=& |  
 - '
-        F   ) 
ë4)UTiɼptheo)
DG     ) ö ',>  UG G, G  G $
-      G 'H=)IJ .#9
')   H„ ))IJ  
   
ë5) UTiɼp theo)
DG    ) ö '  ,>  UG $     UG $ - 
 K )L   
  ' )L  
   #ë M UL „ 
/ .   „) 7  $ 7 '  G  -      #9 
' )   U) *     J 5  )  J
. N$
ë ) UTiɼptheo)

Cách lưu trͯ dͯ liʄu m͛i: §YI I I - Tɞo


bɠng m͛i, hoɴc §YI I6-I - B͕ sung dͯ
liʄu vào bɠng đã có.
ë) UTiɼp theo)
Sͭa lɞi tên, kiʀu giá trʈ và xác đʈnh các c͙t không
cɤn giͯ lɞi trong bɠng đích: LðIIY I ±
b͏ qua.
ë) UTiɼp theo)
¨ʀ Microsoft tͱ b͕ sung thêm c͙t có tên là ID v͛i
kiʀu giá trʈ là AutoNumber - tͱ đ͙ng tăng 1 làm
thu͙c tính khóa chính ( ÷  ÷ ! 
 ), hoɴc xác đʈnh m͙t c͙t làm khoá chính
(p"  !  !   ) hoɴc không ch͍n
thu͙c tính nào làm khóa ( !   )
ë) UTiɼp theo)
¨ɴt lɞi tên cho bɠng, r͓i nhɢn " đʀ kɼt thúc.
UTiɼp theo)
(*) X"I "M: Khi Import tͫ file P- hoɴc P-, đʀ đɠm
bɠo viʄc chuyʀn đ͕i bɠng mã tiɼng Viʄt đúng đɬn, cɤn
ch͍n trang mã (pI! ) là @I6 I
O@ QD thông qua nút chͩc năng b͕ sung
(÷$  ).
UTiɼp theo)

Nɼu viʄc Y  thành công thì MSA sɺ có thông báo


hoàn tɢt. Nɼu viʄc Y  không thành công thì có thông
báo l͗i, và các dòng không Y  đưͣc sɺ đưͣc lưu trong
1 bɠng có tên v͛i phɤn b͕ sung là RY 6. L͗i sai
thư͝ng gɴp nhɢt là sai cách chuyʀn đ͕i dͯ liʄu sang dɞng
ð  . MSA sͭ dͥng cách biʀu diʂn ngày tháng cͧa
hʄ điɾu hành Windows, do đó, nɼu Windows dùng dɞng
99 và dͯ liʄu Y  có dɞng 9 9 ($+
#ï 25/01/2001) thì quá trình Y  sɺ gây l͗i.
MSA thͱc hiʄn viʄc chuyʀn đ͕i dͯ liʄu khi Y  tͫ file
văn bɠn như sau:
Dãy jhͯ  TextU255). S͑ nguyên  Long Integer.
S͑ thͱj  Double. xx/yy/zz  DateTime.
Do đó, sau khi Y  xong (thì) cɤn phɠi thͱc hiʄn chͩc
năng ð đʀ đɴc tɠ lɞi cɢu trúc cͧa bɠng.
Ú2.4. Sͭ dͥng jhung tài nguyên v͛i
CSDL kháj

Ngu͓n dͯ liʄu đʀ dùng chung () phɠi là các


dͯ liʄu có cɢu trúc. ¨ó phɠi là (các) file hoɴc bɠng
cͧa (các) CSDL khác. Ngu͓n này có thʀ là tͫ
Access, Dbase, Foxpro hoɴc ODBC. File Excel
không phɠi là m͙t ngu͓n thích hͣp cho viʄc dùng
chung trong môi trư͝ng Access
Thao táj B0), B1),B2) ONI "4 I) Q
B3) Ch͍n New\Link Table
B4) Ch͍n các bɠng dͯ liʄu đʀ dùng chung
7OK đʀ hòan tɢt.

7!÷p6S!ð6
Ú2.5 Tríjh xu t dͯ liʄu ra file hoɴj bɠng
ngoài

Thao táj B0), B1, B2) ( nɼu chưa làm)


B3) Ch͍n bɠng cɤn trích xuɢt
B4) Nhɬp chu͙t phɠi, ch͍n 6-I(hoɴc =\T6-)
B4) Xác đʈnh l͍ai đích tɞi mͥc II ; Thư mͥc lưu
trͯ tɞi
$IY, và tên file tɞi I I
÷*6Iđʀ trích
dͯ liʄu (như trong hình kɼ sau):
-Nɼu l͍ai dͯ liʄu đích là m͙t bɠng cͧa file CSDL ÷  thì
cho biɼt tên bɠng đích và đ͓ng th͝i xác đʈnh cách sao
chép:
-L Dͯ liʄu và cɢu trúc (ð  ð  ): dũ liʄu cùng
cɢu trúc bɠng
-L Hoɴc chʆ sao chép cɢu trúc: (ð ! ).

7 OK đʀ hòan tɢt.
(Hình trang sau:)
axport Data UTiɼp theo)

.  7   >    


U OO  $' -  ö   
axport Data UTiɼp theo)

.  $' -  ö   


axport Data UTiɼp theo)
.  $' -  ö   
UTiɼp theo)
! 7  "  "  -
UTiɼp theo)
!7   "  G ,>  -
!   ) ö    'H› IH5 , 
› I7 !Pë.   › '=)
   -+.
/01'2324

 
:
Ú3.1. Truy v n đʀ tìm kiɼm thông tin
1. Câu lʄnh truy vɢn đơn
2. Câu h͏i có câu h͏i con (
 )
Ú3.2. Truy v n đʀ sͭa đ͕i dͯ liʄu U )
Ú3.3. Truy v n t͕ng hͣp dͯ liʄu Up )
Ú3.4. Cáj lʄnh truy v n kháj
1. Tɞo/sͭa cɢu trúc bɠng
2. Thiɼt lɪp ràng bu͙c toàn vɶn
Ú3.1. Truy v n đʀ tìm kiɼm thông tin
Có 2 cách tɞo 1 šuery trong MSA: Câu lʄnh SšL
hoɴc bɮng công cͥ Wizard kéo-thɠ (Drag-Drop) trên
lư͛i (Grid). Có thʀ chuyʀn đ͕i qua lɞi giͯa 2 cách
này.
pMI"&I UI%"I I$L O3VI"W Q
SELECT [DISTINCT] [TOP n [PERCENT]]
<bthͩc 1>[AS <tên1>], <bthͩc 2>[AS <tên2>],«
FROM <bɠng 1> [[AS]<bí danh>],<bɠng
2>[[AS]<bí danh>], «
[WHERE <điɾu kiʄn ch͍n bɠn ghi đʀ xͭ lý>]
[GROUP BY <bthͩc nhóm 1> <bthͩc nhóm 2>, « ]
[HAVING <điɾu kiʄn ch͍n kɼt quɠ cu͑i cùng>]
[ORDER BY <bthͩc 1>[ASC/DESC], « ];
Dɢu chɢm phɠy cu͑i câu là tùy ch͍n. Chͯ hoa hay
chͯ thư͝ng là như nhau.
UTiɼp theo4
(*) DISTINCT : Chʆ giͯ lɞi nhͯng dòng khác
nhau.
(*) Cͥm tͫ TOP n [PERCENT] luôn luôn phɠi đưͣc
đi kèm v͛i mʄnh đɾ ORDER BY.
- TOP n : n dòng đɤu tiên và nhͯng dòng có giá
trʈ sɬp xɼp như dòng thͩ n.
- TOP n PERCENT : n% (lɢy cɪn trên) s͑ dòng
kɼt quɠ tìm đưͣc. Ví dͥ, nɼu n% = 1.2 thì lɢy
cɪn trên bɮng 2.
(*) <bɠng > (=1..n) có thʀ là tên bɠng dͯ liʄu
vɪt lý, šuery hoɴc phép kɼt 2 quan hʄ theo cú
pháp:
<bɠng 1> <" N> <bɠng 2> ON <điɾu kiʄn
kɼt>
<" N> ::= INNER JOIN / LEFT JOIN /
RIGHT JOIN / OUTER JOIN.
(*) Nɼu sau FROM là danh sách các bɠng thì
phɠi thʀ hiʄn m͑i liên hʄ giͯa các bɠng đó trong
mʄnh đɾ WHERE.
UTiɼp theo4

(*) Ngoɞi trͫ các biʀu thͩc có chͩa các hàm tích
hͣp các biʀu thͩc còn lɞi sau SELECT đɾu phɠi có
mɴt trong mʄnh đɾ GROUP BY.
UTiɼp theo4
"  & : B0), B1) (nɼu chưa làm)
B2) Ch͍n đ͑i tưͣng  (nɼu chưa làm)
B3) Xác đʈnh ngu͓n dͯ liʄu cho  (bɠng hoɴc
G ) bɮng nút ÷, và kɼt thúc bɮng nút p
B4) Lɤn lưͣt kéo-thɠ các  tͫ các bɠng vào lư͛i
(XYð)
- Thi hành câu lʄnh b͟i nút có hình dɢu chɢm than C

()
- Chuyʀn đ͕i sang câu lʄnh SšL thông qua nút

ð ͟ góc trái trên cͧa cͧa s͕ thiɼt kɼ  .


UTiɼp theo4
2. Câu h͏i có câu h͏i con (
 )
XB"I"Y : Câu h͏i con là m͙t câu h͏i mà kɼt quɠ
cͧa nó đưͣc dùng làm toán hɞng cͧa m͙t phép so
sánh trong biʀu thͩc điɾu kiʄn cͧa câu h͏i khác.
Câu h͏i con phɠi đưͣc đɴt trong cɴp dɢu ngoɴc
tròn.
(*) MSA chʆ cho phép 1 biʀu thͩc sau SELECT
trong câu truy vɢn con. Do đó, nɼu có nhiɾu biʀu
thͩc thì phɠi ghép chúng lɞi thành m͙t thông qua
phép n͑i ghép &.
(*) p& I$+I#I "I"W :
pUIZ: Cho tên và danh sách nhân viên cͧa tͫng
phòng/ban
SELECT DeptName, E.*
FROM Department D, Employee E
WHERE D.Deptno=E.Deptno;
UTiɼp theo4
pUI[: ³p"I\I"]I$)I& "I"UI$\I :I45I"5I
^___`
SELECT DeptName, E.*
FROM Department D, Employee E
WHERE D.Deptno=E.Deptno AND Salary > 4000;
pUIa: ³p"INI4bI :I45I I"LII 'I ´
SELECT * FROM Employee
WHERE Salary = (SELECT MAX(Salary) FROM Employee);
pUI^: ³p"INI\I"]I c I4bI45I I"LI
'I `.
SELECT DeptName FROM Department WHERE Deptno IN
(SELECT * FROM Employee
WHERE Salary=(SELECT MAX(Salary) FROM Employee));
pUId: ³p"I\I"]I :I45IIJ"IeI"5I45I
IJ"I c I & I"UI$\II"]I
"`.
UTiɼp theo4
1) Tìm mã phòng cͧa
" (x)
2) Tìm lương trung bình cͧa các NV có mã
phòng=(x) (y)
3) Tính lương trung bình cͧa các phòng, kɼt quɠ
chʆ giͯ lɞi nhͯng phòng nào có lương trung
bình l͛n hơn (y).
SELECT DeptName FROM Department D,
Employee E
WHERE D.Deptno=E.Deptno
GROUP BY D.Deptno, DeptName
HAVING AVG(Salary) >
( SELECT AVG(Salary) FROM Employee
WHERE Deptno=
( SELECT Deptno FROM Employee
WHERE Name=µ
"Õ
)
);
Ú3.2. Truy v n đʀ sͭa đ͕i dͯ liʄu
ZI IfI8 ( I I )
SELECT [DISTINCT] [TOP n [PERCENT]]
<bthͩc 1>[AS <tên1>], <bthͩc 2>[AS
<tên2>],«
INTO <Tên bɠng>
FROM <bɠng 1> [[AS]<bí danh>],<bɠng
2>[[AS]<bí danh>], «
[WHERE <điɾu kiʄn ch͍n bɠn ghi đʀ xͭ lý>]
[GROUP BY <bthͩc nhóm 1> <bthͩc nhóm 2>, « ]
[HAVING <điɾu kiʄn ch͍n kɼt quɠ cu͑i cùng>]
[ORDER BY <bthͩc 1>[ASC/DESC], « ];
Ví dͥ: Tɞo bɠng Manager chͩa danh sách các lãnh
đɞo phòng
SELECT * INTO Manager FROM Employee
WHERE Job=³Mngr´;
[I I;II"\ I2I%.
a. Thêm m͙t bɠn ghi tͫ dͯ liʄu đã cho:
UTiɼp theo4
INSERT INTO <\I8> [(<ð "I& "I >>)]
VALUES(< "I& "I&IB>);
*+I#: ³"\ I*I eI\I)Ig `IhI
iIa__I
$)I"]I/I^_DI) I"UI$\I&I")I
$eI j I45I)I[Dd__<´
INSERT INTO Employee
VALUES (300, ³ ´, ³
 ´, 2500, NULL, 40,
³´);
SK :
INSERT INTO Employee (Name, Empno, Job,
Salary, Deptno)
VALUES (³ ´, 300, ³
 ´, 2500, 40);
b. B͕ sung dͯ liʄu tͫ CSDL.
INSERT INTO <\I8> [(<ð "I& "I >>)]
<Câu lʄnh SELECT không có mʄnh đɾ ORDER
BY>;
UTiɼp theo4
*+I#: ³"\ I$)I8I  I & I"UI$\I :I45I
C^___´
INSERT INTO Manager
SELECT * FROM Employee
WHERE Salary>4000 AND Empno NOT IN
(SELECT Empno FROM Manager);
aI Ik I2I%:
UPDATE <bɠng / query / phép kɼt>
SET <c͙t 1> = <bthͩc 1>, <c͙t 2>=<bthͩc 2>, «
[WHERE <điɾu kiʄn cɪp nhɪt>];
*+I#: a. Tăng lương 10% cho các nhân viên phͥ trách
phòng.
UPDATE Employee SET Salary= Salary*1.1
WHERE Job=µÕ;
b. Tiɾn lương t͑i thiʀu phɠi bɮng mͩc thɢp nhɢt cͧa công
viʄc.
UPDATE Employee e INNER JOJN Jobs v ON v.Job=e.Job
SET Salary= IIF(Salary < Minsalry, MinSalry, Salary);
UTiɼp theo4

^I I-: I2I%:


DELETE [<loɞi bɠn ghi>] FROM <8I9IG I9I
"IN>
[WHERE <3(I%I-: >];
(*) Nɼu ngu͓n là query hoɴc phép kɼt thì phɠi có
thành phɤn <loɞi bɠn ghi> đʀ cho biɼt xóa b͙
giá trʈ cͧa bɠng nào.
*+I#: a. ³l: I & I"UI$\I"#I& "I & I"]I
 ´
DELETE FROM 6  
WHERE =µÕ;
b. ³l: I & I"UI$\I :I45I"mI"5I45I/I
".I c I 9$´
DELETE e.* FROM  v INNER JOIN 6  I
ON O?E$QIWHERE
  I<   ;
Ú3.3. Truy v n t͕ng hͣp dͯ liʄu UCross-
Tab)

pMI"&:
TRANSFORM <.I"j I"UI;>
SELECT < & I.I"j I "cIn>
FROM < & I8>
[WHERE <3(I%I "WI8I"I3.I-kI >]
GROUP BY <p& I.I"j I"UI": >
PIVOT <\I >> [IN (< "I& "I&IB>)]
ðoI8: «
*+I#: ³p"I\DI;I/I9$I " I"IeI+"I
c I & I"]´
Transform Count(*)
Select ð , Count(*) as  
From ð   d Inner Join 6   on
d.=e.
Group By ð  Pivot
- IN (µFÕ, µMÕ)
UTiɼp theo)
Ú3.4. Cáj ju lʄnh truy v n kháj
›¤   

. ›  Q


PU
Q  PQ  PNQ  
P
R.
 
 Q

PS   UQ
#   
P$T
R.
 
 Q

P„ 
 UQ
#  
 ¤P$
/
 Q
PUQ
 
#   
P$T
$
1ë ) 
QPQ# PRUQ
P$TR7 7&&TRS 
 TR„
 /
 Q
PUQ# 
 
P$T
? .  *  Eë.U  U0:$S   
 
  = * 1 = $
UTiɼp theo)

.  *  ëë.U  U0:$   .   S


S    U $ .   „ „   U $
/  Eë. U $$
5»    
! ›  #   
?›?
E ›  Q
PRE)) . 
Q  PT
RE)) .
 
 Q

PS   UQ
P$T
RE)) .
 
 Q

P„
 UQ
P$?

Q
PUQ
#  
¤P$T
?)E›  .E)). 
= ›
UTiɼp theo)

›¤   
./E*R7FUTF7=6Q
PC7Q PUQP$
?
p
 
 
VG U  $  =/CS* Q
 P
?
VG   =/CSF7=6Q
 ) PC7Q P
?)
VG  /ë*=/CS.   Q
/ë*PC7Q P

  + 5"5 
$0)34
 
:
Ú4.1. M͙t s͑ khái niʄm ± C u trúj t͕ng quát
1. Cɢu trúc t͕ng quát cͧa m͙t Form
2. Các loɞi Form trong Microsoft Access
Ú4.2. Tɞo Form bɮng jông jͥ h͗ trͣ U@A )
1. Tɞo Form nhanh dɞng p  DI
ð 
"
2. Tɞo Form có SubForm
Ú4.3. Cáj thao táj sͭa Form ± Cáj hàm tíjh
hͣp
Ú4.4. Tͱ thiɼt kɼ Form U Ið)
Ú4.1. M͙t s͑ khái niʄm ± C u trúj t͕ng
quát
1.C u trúj t͕ng quát ja m͙t Form
M͙t Form có thʀ có 5 phɤn:-Tiêu đɾ mɨu nhɪp
( IS ), phɤn này chʆ xuɢt hiʄn m͙t lɤn
đɤu tiên trên trang đɤu tiên.
UTiɼp theo)
! S 
  US  V )$  ö  
   G „  
) ö 
! S U= $ - '  )  
! S   US  „ $  ö    
 G „  
) ö 7  )8 
'  )   )  )ö  (
> ö "
! S  „  U„ „ $ ö    
8 G „     
*ë  „    
 
„  V ) ,'„ „  "   )  )8 
  
  
.'   
 G „   
 '  U W $
UTiɼp theo)
. Ÿ  „   
  '   # UL
  ' "   G „  *
  Ÿ „  Up  $
p (  #  Ÿ Up     |  |  p $
p    „      ,'  ) 
U
@   ) ?  5   $ *    
ö '  U? ) 5 $ 7  ) ö G „ 
U? ) 5 $ p ( )    U7 , 
  $
ï. Các lo¤i Form trong Microsoft Accss
15E    „ 
!=    U=  5 $
!.  ë   G 0       
 
)L  #  U.  $
!„
 ,  „  U„  5 „$
UTiɼp theo)
 „  
 )          )  
U  $    „     
  

' -  Up  $


 
„ Ô

ð¤
p

„ p
UTiɼp theo)
.   "  3 G „  '    
ð  ? 
    
?   
 ,    
ð   & 

 p 

 ? @
|  |   
p    
?  
„   
„ 
 
Ú4.2. Tɞo Form bɮng jông jͥ h͗ trͣ
U@A )
MSA có công cͥ h͗ trͣ đʀ hư͛ng dɨn tͫng bư͛c
trong viʄc tɞo m͙t  nhanh chóng, g͍i là
@A .
1. Tɞo Form nhanh dɞng Columnar, DataSheet,
Tabular
Thao táj: B0), B1) (nɼu chưa làm)
B2) Ch͍n đ͑i tưͣng   (nɼu chưa làm).
B3) - Ch͍n  \÷ (ð  " hoɴc   
hoɴc p  )
- Xác đʈnh ngu͓n dͯ liʄu cho  tɞi p 
-.
- Nhɢn OK đʀ hoàn tɢt.
Tên Form là tên 8 / G dͯ liʄu ngu͓n.
2. Tɞo Form j SubForm
Thao táj:
B0), B1), B2) (nɼu chưa làm)
B3)  \ @A 
B4) Lɤn lưͣt ch͍n các field tͫ các bɠng cɤn hiʀn
thʈ / nhɪp
B5) Ch͍n ngu͓n dͯ liʄu chính, dͯ liʄu tham
khɠo.
B6) Ch͍n cách hiʀn thʈ  con
B7) Ch͍n phong cách (
 ) cho  : (nên
ch͍n
  )
B8) ¨ɴt tên cho Form và

B9) " đʀ kɼt thúc
(-: đi tiɼp bư͛c sau.  : quay lɞi bư͛c
trư͛c).
*+I#: Tɞo  nhɪp dͯ liʄu cho bài tóan quɠn
lý vũ khí như trong bài tɪp đã cho)
Ú4.3. Cáj thao táj sͭa Form ± Cáj hàm
tíjh hͣp
0 6 #"„ 
ï . U$  
 * Ÿ " U„ @   $
X =   A 
 * Ÿ#"
 Y  ' O„  O
 OU 
  $N
Z .  #  U'   ) $
[ ëŸ  
  U* ë $
\ .'" = UQ PQ PQ 
P$
Up
  =&# =5 =p =1 =1 
=E,N$
Q P  " 
Q P'   ) ö U
 W 
$
Q P' #ö     9
Ú4.4. Tͱ thiɼt kɼ Form U Ið)
Thao táj:
B0), B1), B2) (nɼu chưa làm)
B3)  \ ðI* . OK7
B4) Xác đʈnh kích thư͛c  (chiɾu cao và
chiɾu r͙ng)
B5) Xác đʈnh ngu͓n dͯ liʄu cho  tɞi  I

 .
B6) Lɤn lưͣt "8 các field vào các vʈ trí
thích hͣp cͧa Form.
B7) B͕ sung các đ͑i tưͣng khác vào 
B9) ¨ɴt các thu͙c tính cɤn thiɼt cho  và
các đ͑i tưͣng khác trên  . Trình bày
 sao cho cân đ͑i.
B10) ¨óng cͭa s͕ thiɼt kɼ và đɴt tên cho  .
* Nên tɞo query đʀ lɢy dͯ liʄu ngu͓n cho Form)
 + 5"5|6 %##027)34
 
:
Ú5.1. M͙t s͑ khái niʄm
1. Cɢu trúc t͕ng quát cͧa 1 báo cáo
()
2. Các loɞi báo cáo trong Microsoft Access
Ú5.2. Tɞo Report bɮng jông jͥ h͗ trͣ
U@A )
1. Tɞo Report nhanh (÷I)
2. Tɞo Report có dòng t͕ng nhóm
(
 )
3. Tɞo Report dɞng phiɼu ( )
4. Tɞo Report dɞng biʀu đ͓ (p" )
Ú5.3. Tͱ thiɼt kɼ Report UIð)
Ú5.1. M͙t s͑ khái niʄm

1.C u trúj t͕ng quát ja 1 báo jáo UReport)


Tương tͱ như  , 1 báo cáo cũng có thʀ có 5 phɤn:
-  S : tiêu đɾ báo cáo, nó chʆ đưͣc in trên
trang đɤu tiên cͧa báo cáo;
- !  S : tiêu đɾ trang báo cáo đưͣc in gi͑ng nhau
trên m͗i trang in. Thông thư͝ng là các tiêu đɾ c͙t ± hoɴc
dòng chͩa s͑ thͩ tͱ c͙t cͧa biʀu;
- ð : Phɤn đʀ in n͙i dung cͧa m͗i bɠn ghi dͯ liʄu
ngu͓n;
- !  : Phɤn cu͑i trang báo cáo. Thông thư͝ng
dùng đʀ in các chú thích trong trang cũng như đánh s͑
thͩ tͱ trang in.
-  : Tiêu đɾ cu͑i báo cáo. Thông thư͝ng
dùng đʀ in các thông tin xác nhɪn trách nhiʄm và s͟ hͯu
s͑ liʄu cͧa đơn vʈ như: ngày lɪp báo cáo, ngư͝i lɪp báo
cáo, ngư͝i duyʄt báo cáo (ký và ghi h͍ tên), và thͧ
trư͟ng đơn vʈ ký tên, đóng dɢu.
UTiɼp theo)

2. Cáj loɞi báo jáo trong Mijrosoft Ajjess


- Báo cáo dɞng bɠng ð  ", m͗i bɠn ghi in
trên 1 dòng.
- Báo cáo dɞng c͙t p  . M͗i  in trên 1
dòng. Hai dɞng này phͥc vͥ cho các báo cáo
nhanh tͩc th͝i, cɤn thông tin và s͑ liʄu hơn
mɴt pháp quy.
- Báo cáo dɞng t͕ng hͣp có thʀ có các dòng t͕ng
con. ¨ây là dɞng thông dͥng nhɢt trong các cơ
quan, đơn vʈ.
- Báo cáo dɞng phiɼu ( ). M͗i bɠn ghi dͯ liʄu
ngu͓n đưͣc in trên m͙t phɤn cͧa trang giɢy in.
- Báo cáo dɞng biʀu đ͓ (p" ) đʀ phɠn ánh sͱ
biɼn thiên cͧa m͙t dãy s͑ (dɞng ), hoɴc
mang tính so sánh (p  /  ) hay tͷ tr͍ng
cͧa m͙t đɞi lưͣng trong t͕ng thʀ (!), ...
Ú5.2. Tɞo Report bɮng jông jͥ h͗
trͣU@A )
1. Tɞo Report nhanh UAuto Report)
Thao táj:
B0), B1) (nɼu chưa làm)
B2) Ch͍n đ͑i tưͣng  (nɼu chưa làm)
B3) -  \ ÷:   /p  
- Xác đʈnh bɠng dͯ liʄu ngu͓n cho báo cáo.
- Nhɢn OK đʀ hoàn tɢt
B4) ¨óng cͭa s͕ kɼt quɠ và đɴt tên lɞi cho báo cáo
Tên mɴc đʈnh cͧa báo cáo là tên bɠng dͯ liʄu ngu͓n.
2. Tɞo Report j dòng t͕ng nhm USubTotals)
B0), B1), B2) (nɼu chưa làm)
B3)  \  A . OK đʀ đi t͛i bư͛c tiɼp theo
B4) Lɤn lưͣt ch͍n các  tͫ các bɠng cɤn in trên
.
B5) Xác đʈnh bɠng dͯ liʄu nào là chính.
UTiɼp theo)
B6) B͕ sung các cách phân nhóm các bɠn ghi. Nɼu
có nhóm thì có thʀ nhɢn X ! đʀ thiɼt
lɪp cách phân nhóm (X Y$ ). Nɼu c͙t
phân nhóm có kiʀu văn bɠn thì có thʀ nhóm theo 1,
2, hay nhiɾu ký tͱ đɤu tiên; nɼu có kiʀu s͑ thì có
thʀ nhóm theo 1, 5, 10, 50, 100,... hoɴc kiʀu
ð   thì nhóm theo tuɤn, tháng, quý, năm,
v.v...
B7) Xác đʈnh viʄc sɬp xɼp thͩ tͱ in theo c͙t nào.
UTiɼp theo)

B8)- Ch͍n hình thͩc in báo cáo (  ). Có thʀ


ch͍n   là
 (m͗i cɢp phân nhóm thì lùi vào
phía phɠi).
- Ch͍n hư͛ng in (! ) là !  hoɴc
 
.
B9) Ch͍n kiʀu in các chͯ và nhóm trong báo cáo ( )
B10) ¨ɴt tên cho , đ͓ng th͝i là tiêu đɾ báo cáo.
" đʀ kɼt thúc.
*+I#: Bài toán quɠn lý vũ khí, Công nͣ, Kɼ toán, Thương
binh

3. Tɞo Report dɞng phiɼu ULabel)


Thao táj:
B0), B1), B2) (nɼu chưa làm)
B3)-  \  I@A .
- Xác đʈnh ngu͓n dͯ liʄu
- OK đʀ đi tiɼp bư͛c sau.
B4) Xác đʈnh kích thư͛c   tͫ m͙t s͑ mɨu có saün.
UTiɼp theo)

Nɼu mu͑n tɞo kích thư͛c mɨu m͛i thông qua chͩc
năng p A T 6T. Và thiɼt lɪp các thông s͑ lɾ
trái, phɠi, trên, dư͛i, khoɠng cách so v͛i các Label lân
cɪn, ...
B5)Xác đʈnh Font, kích thư͛c và kiʀu chͯ trong Label.
B6) Xác đʈnh các field có saün cɤn in trên Label.
B7) Xác đʈnh thͩ tͱ in các bɠn ghi (Sort Order...)
B8) ¨ɴt tên cho Label vàFinish đʀ kɼt thúc.

4. Tɞo Report dɞng biʀu đ͓ UChart)


Thao táj:
B0), B1), B2) (nɼu chưa làm)
B3) -  \ p" I@A .
- Xác đʈnh ngu͓n dͯ liʄu
- OK đʀ đi tiɼp bư͛c sau.
UTiɼp theo)

B4) Xác đʈnh các  chͩa dͯ liʄu đʀ vɺ biʀu đ͓.


B5) Xác đʈnh loɞi biʀu đ͓ (,  , !, ÷ )
B6) Xác đʈnh giá trʈ trͥc x, y bɮng cách -"8 vào
p" 
B7) ¨ɴt tên cho biʀu đ͓ và " đʀ hoàn tɢt.
Ú5.3. Tͱ thiɼt kɼ Report UIð)
Thao táj:
B0), B1), B2) (nɼu chưa làm)
B3)  \ ð * .
B4) Xác đʈnh kh͕ giɢy (!  A), lɾ ( ),
hư͛ng in (! ) thông qua \ \ ! 


B5) Xác đʈnh ngu͓n dͯ liʄu cho  thông qua
thu͙c tính  
  cͧa đ͑i tưͣng
.
B6) B͕ sung các thành phɤn phân nhóm đʀ lɢy
t͕ng con (
  ) \* \
 
X
B7) Lɤn lưͣt kéo-thɠ các thu͙c tính cɤn thiɼt vào

B8) B͕ sung các p cɤn thiɼt khác
B9) ¨ɴt thu͙c tính cho các đ͑i tưͣng trên .
Trình bày  sao cho cân đ͑i.
B10) ¨óng cͭa s͕ thiɼt kɼ và đɴt tên cho .
 + /$+8|90|*3)4
 
:
Ú .1. Khái niʄm
Ú .2. Hʄ th͑ng Majros ja Mijrosoft
1. Nhóm hành đ͙ng thao tác v͛i
Form/Report
2. Nhóm hành đ͙ng
3. Nhóm hành đ͙ng
4. Nhóm hành đ͙ng
Ú .3. M͙t s͑ hành đ͙ng UAjtion) thông
dͥng
Eng dͥng trong viʄc tɞo Menu hʄ
th͑ng
 + /:;<+,  % 
 
:
Ú.1. Khái niʄm
Ú.2. Cáj kiʀu dͯ liʄu ja Mijrosoft Ajjess
1. Kiʀu vô hư͛ng (
 )
2. Kiʀu mɠng (÷ )
3. Kiʀu dͯ liʄu tͱ đʈnh nghĩa
4. Kiʀu đ͑i tưͣng truy nhɪp dͯ liʄu (ð÷!)
Ú.3. Hʄ th͑ng lʄnh jáj ju lʄnh ja Ajjess
1. Khai báo biɼn (ð   )
2. Rɺ nhánh chương trình (Y,
  p )
3. Các lʄnh lɴp (, ð, @")
Ú.4. Th tͥj và Hàm
Ú.5. Xy dͱng ͨng dͥng bɮng Ajjess
Ú. 2. Cáj kiʀu dͯ liʄu ja Mijrosoft
Ajjess

1. Kiʀu vô hư͛ng (
 )
2. Kiʀu mɠng (÷ )
3. Kiʀu dͯ liʄu tͱ đʈnh nghĩa (
ð)
4. Kiʀu đ͑i tưͣng truy nhɪp dͯ liʄu (ð÷!)
Ú.3. Hʄ th͑ng lʄnh jáj ju lʄnh ja Ajjess

1.Khai báo biɼn UDejlaration)


Cú pháp:
[X /!$ /ð ] <biɼn 1>[(<s͑ lưͣng>)] [÷
<kiʀu 1>],
<biɼn 2>[(<s͑ lưͣng>)] [÷ <kiʀu 2>], ...
gͯ nghĩa:
Tͫ khóa X  thʀ hiʄn viʄc khai báo biɼn là t͕ng
thʀ, tͩc là dùng chung đưͣc cho toàn ͩng dͥng ÷ .
¨iɾu dʂ hiʀu là các biɼn thu͙c loɞi này phɠi đưͣc khai
báo trong các .
Tͫ khóa !$ I/ð thʀ hiʄn viʄc khai báo biɼn là
cͥc b͙, tͩc là chʆ có nghĩa trong phɞm vi nó đưͣc khai
báo, ngoài vùng khai báo biɼn không còn giá trʈ. Có thʀ
là cͥc b͙ trong hàm, cͥc b͙ trong  chương trình
cͧa m͙t  /, hoɴc trong  các hàm
t͕ng thʀ.
UTiɼp theo)
<N> là m͙t đʈnh danh (Y), là m͙t
dãy ký tͱ chͯ cái và/hoɴc chͯ s͑, bɬt đɤu bɮng
chͯ cái. Có thʀ có thêm 1 ký tͱ theo sau, thʀ
hiʄn kiʀu dͯ liʄu: % - s͑ nguyên Y, $ -
chu͗i, ! ± s͑ thͱc ...
Nɼu không khai báo tư͝ng minh kiʀu cho biɼn
thì biɼn có kiʀu mɴc đʈnh là biɼn thʀ (*  ).
Viʄc khai báo biɼn trong Visual Basic, nói
chung, là không bɬt bu͙c. Tuy nhiên, \ " 
& N đʀ dʂ kiʀm soát chương trình, và tɪn
dͥng đưͣc khɠ năng *  cͧa   .
Ví dͥ: ð i, j, k As Y
Thì chʆ có k là thu͙c kiʀu s͑ nguyên 2  ,
còn i và j đɾu thu͙c kiʀu *  .
Tên biɼn viɼt hoa hay thư͝ng là như nhau
UTiɼp theo)

2. Gán giá trʈ jho biɼn USet)


pMI"&:
[
] <N> = <.I"j >
Giá trʈ cͧa biʀu thͩc đưͣc tính toán và gán cho <N>.
Nɼu kiʀu giá trʈ cͧa biʀu thͩc là vô hư͛ng (
 ) và
kiʀu cͧa biɼn cũng là vô hư͛ng thì máy tͱ chuyʀn đ͕i
kiʀu cho phù hͣp v͛i kiʀu lưu trͯ cͧa biɼn.
Nɼu <N> có kiʀu đ͑i tưͣng (!? ) thì câu lʄnh gán
phɠi có tͫ khóa
.
*+I#:
ð MyDB ÷IIð÷!ð   , MyTab ÷Ið÷! 
ð nTabs ÷IY µ S͑ lưͣng table trong CSDL.

 MyDB = ð6@ O_Qð   O_Q

 MyTab =  ð O_Q


nTabs =  ð p
UTiɼp theo)

3. Lʄnh rɺ nhánh jhương trình UIf, Selejt Case)


QI%"IpI"&"IOYQ.
Cú pháp cͧa lʄnh đưͣc đơn giɠn hóa như sau:
If <điɾu kiʄn> Then
<các câu lʄnh nɼu điɾu kiʄn là đúng>
‹alse
<các câu lʄnh nɼu điɾu kiʄn là sai> ¢
and If
(*) Nɼu sau Then chʆ có 1 câu lʄnh thì có thʀ viɼt lʄnh
trên cùng 1 dòng v͛i Then và không cɤn and If
*+Iq: If n <= 0 Then axit Funjtion
If Delta >= 0 then
x1 = (-b + Sqr(ð )) / (2* a): x2 = (-b -
sqr(ð )) / (2* a)
alse : debug.print ³*'I"% ´
and if
UTiɼp theo)

QI%"I "WIZII"(I"8I7IO
66pI

6Q.
Cú pháp:
Selejt Case (<.I"j >)
Case <9I&IBIZ>
<p& I UI%"IZ>
Case <9I&IBI[>
< & I UI%"I[>
...
Case <9I&IBI>
< & I UI%"IjI$eI4bI"rIC
‹ Case alse
< & I UI%"I"& > ¢
and Selejt
UTiɼp theo)

4. Cáj lʄnh lɴp UFor, Do, While)


IKI"2I"fInI_I3NI"(I=I:
 <N> = <BIZ>  <BI[> [
 ]
<p& I UI%">
- [<N>]
2 "Y : Nɼu không có [
 ] thì mɴc đʈnh là

 Z.
Ban đɤu <N> nhɪn <B Z>. Chͫng nào mà giá
trʈ cͧa <N> còn nh͏ hơn hoɴc bɮng <B [>
(v͛i n>0) hay l͛n hơn hoɴc bɮng <B [> (v͛i
n<0) thì <p& U %"> còn đưͣc thͱc hiʄn; sau
m͗i lɤn thͱc hiʄn thì giá trʈ cͧa <N> sɺ đưͣc
c͙ng thêm v͛i gia s͑ n.
*+ #: Tính giá trʈ cͧa n giai thͫa (n! = 1.2.3...n)
ð  ÷ ðD  ÷ Y
=1
UTiɼp theo)

  = 1  
=*
- 
Trong s͑ các câu lʄnh sau , có thʀ có các
lʄnh 6-I đʀ kɼt thúc bɢt thư͝ng (kɼt thúc s͛m)
vòng lɴp.
IKI$'I"fI=Ið:
ðfIZQ:
ð [@" /  <3(I%>]
<p& I UI%">

SK IfI[Q
ð
<p& I UI%">
I[@" /  <3(I%>]
UTiɼp theo)

2I"Y : Chͫng nào <3(I%> còn th͏a mãn


(v͛i tͫ khóa @") thì còn thͱc hiʄn < & I UI
%"> sau ð; hoɴc còn thͱc hiʄn < & I UI%">
sau ð cho t͛i khi () điɾu kiʄn đưͣc th͏a.
Trong dɞng b1) điɾu kiʄn sɺ đưͣc kiʀm tra 4e I"
thͱc hiʄn các câu lʄnh. Còn trong dɞng b2) điɾu
kiʄn sɺ đưͣc kiʀm tra  I" thͱc hiʄn xong các
câu lʄnh.
Có thʀ kɼt thúc vòng lɴp m͙t cách bɢt thư͝ng nh͝
câu lʄnh 6-Ið trong vòng lɴp.
IKI$eI/I=I"'INI4e @".
@" <3(I%>
<p& I UI%">
@
UTiɼp theo)
2I"Y : Chͫng nào <3(I%> sau @" còn
th͏a thì < & I UI%"> sau ðIcòn đưͣc thͱc hiʄn.
Không j lʄnh đʀ kɼt thúc vòng lɴp m͙t cách bɢt
thư͝ng.
IKI$eI & I"=IkIIZI0I"r I6 "II
-.
I6 " <"=Ik> Y <": >
<p& I UI%">
- <"=Ik>
*+Iï:
ð MyDB ÷ DAO.ð   , MyTab ÷
DAO. 

 MyDB = pð
I6 " MyTab YIMyDB. ()
- ³Tên bɠng: ³ &    
-I  
Ú.4. Th tͥj và hàm
1. Khai báo / đʈnh nghĩa th tͥj USubroutine)
[!$ ]
 ([ *  /  ] < >, [ *  /  ]
< >, ...)
[<p& I" I&INI # I>I c I"cI# >]
<p& I UI%" / 6-I
>
6I

(*) K I3B": các tham đ͑i đưͣc truyɾn theo tên (p I I
 ).
 *  ± truyɾn theo tham trʈ (p I I* );   ±
truyɾn theo tham chiɼu (p I I ).
(*) Các tham đ͑i hình thͩc cͧa hàm có vai trò như
nhͯng biɼn cͥc b͙. ¨ʀ kɼt quɠ thi hành thͧ tͥc có ɠnh
hư͟ng t͛i tham đ͑i thͱc khi g͍i hàm, thì các tham đ͑i
này phɠi đưͣc khai báo v͛i tͫ khóa   hoɴc không có
 *  và  .
(*) Nɼu tham đ͑i hình thͩc là 1 mɠng thì đɴt sau nó cɴp
dɢu ngoɴc tròn ( ).
UTiɼp theo)
2. Khai báo / đʈnh nghĩa hàm UFunjtion)
[!$ ]   <\I") > ([ *  /  ] < >,
[ *  /  ] < >, ...) ÷ <.INIG8I8I$(I
c I") >
[<p& I" I&INI # I>I c I"cI# >]
<p& I UI%" / 6-I I>
6I 
(*) Trong thân cͧa hàm phɠi có ít nhɢt m͙t lɤn gán giá
trʈ cho tên hàm. ¨ó chính là giá trʈ kɼt quɠ trɠ vɾ cͧa
hàm.
p& I$+I:
1. Thͧ tͥc liʄt kê tên các bɠng có trong CSDL hiʄn th͝i
(trͫ các bɠng hʄ th͑ng có tên bɬt đɤu bɮng chͯ
³MSys´)
2. Kiʀm tra xem bɠng có tên là ³  ´ đã có trong
CSDL UsrDB hay chưa?
3. Tương tͱ đ͑i v͛i šuery ³  ´
UTiɼp theo)
!$ I
 TenBang ()
ð IMyDB ÷ ð÷!ð   , i ÷IY

 MyDB = pð
 i = 0 to  ð ðpI- 1
Y ( ð ðOQ , 4) <> ³MSys´ then
- ³Bɠng thͩ i là: ³ &
 ð ðOQ 
6IY
- i
6I

!$ I  ExistTable (DB ÷ ð   DI  ÷I

)
ð I ÷IY
II EI_IIð ðpZ
IIIð ðOQI IEI I"I6-I
- 
6- IEIOIFIð ðpQI
6I 
UTiɼp theo)
!$ I  Existšuery() As Boolean
ð IMyDB ÷ ð÷!ð   , i ÷IY

 MyDB = pð
 i = 0 to  ð ðpI- 1
Y ( ð ðOQ , 4) <> ³MSys´ then
- ³Bɠng thͩ i là: ³ &
 ð ðOQ 
6IY
- i
6I

!$ I  ExistTable (DB ÷ ð   DI  ÷I

)
ð I ÷IY
II EI_IIð ðpZ
IIIð ðOQI IEI I"I6-I
- 
6- IEIOIFIð ðpQI
6I 

You might also like