Chương 2: Để các Query làm phép toán
247
Đễ các Ọuerụ
làm phép toán
N h ữ n g đ iế m ch ín h :
Làin các p b ép tính trong các Qưery
^ > iét tríj oiổh tuiiC cho phép loun
*
Viỉợt rci khói sô học cơ ban
'íinb íoảìi }iQ,ay tbánii và /hơi Ịùĩ>/
K Xử ỉý texl l ởĩ các biển thức
#
Ị
•
Viổ! í ả t ì)iớiị i h ứ c fĩi!ci m ijìì]'C\' tĨỊi:ì>
^ Tạo cácparcim cter query linh hoạt
^ Tinh các lổng, tổng con, giá irị !r.ir:g binu. .
B lĩm cắc rccord trùng lặp
N
ê u b ạ n t ừ n g n h ậ n t h ấ y m ìn h là m
p h é p to á n
c ầ n đ ặ t v à o m ộ t trư ờ n g th ì b ạ n đ ã p h ạ m
đ ể b iế t n h ữ n g g ì
p h ả i m ột sai sót k h i
t h iế t k ế b ả n g . B ả n g c h ì c ầ n d ừ liệ u th ô - t h ô n g t in
th ậ t sự v ố n k h ô n g
đ ư ợ c t í n h t ừ d ữ liệ u đ ã b iế t . V í d ụ , m ộ t b ả n g c ó t h ể c h ứ a c á c t r ư ờ n g Q t y
v à U n i t P r i c e đ ể b iể u t h ị b a o n h iê u m ó n h à n g - v à v ớ i g iá n à o - m ộ t s ố
sản
phẩm
nào
đó
đã
P r ic e
hoặc
m in h
đ ể t ự q u y ế t đ ịn h
được đ ặ t m ua. N h ư n g có m ộ t trư ờ n g
S u b to ta l tro n g b ả n g
ư n it P r ic e c h o b a n .
th ì vô d ụ n g , b ở i v ì A c c e s s
E x te n d e d
đủ th ô n g
đ iề u đ ó b ằ n g v iệ c n h â n t r ư ờ n g Q t y v đ i t r ư ờ n g
248
Chương 2: Để các Query làm phép toán
Đ ể A c c e s s là m
p h é p t o á n t h ì c ó n h ữ n g ư u đ iể m
c h o b ạ n t h ờ i g ia n t ự là m
n g o à i v iệ c t iế t k iệ m
p h é p t ín h . A c c e s s có t h ể là m
b ấ t k ỳ p h é p to á n
b ấ t k ể p h ứ c tạ p n h ư th ế n à o n h a n h h ơ n cú n h á y m ắ t củ a b ạ n v à các
p h é p t ín h
lu ò n đ ú n g . K h ô n g c ầ n b ậ n t â m
v ề v iệ c g õ n h ậ p s a i m ộ t g iá
t r ị v à o m ộ t tr ư ờ n g E x te n đ e d P r ic e h o ặ c q u ê n t h a y đ ổ i tr ư ờ n g s a u k h i
b ạ n t h a y đ ổ i c á c tr ư ờ n g Q t y h o ặ c U n it P r ic e . H ã y đ ể A c c e s s là m
t ấ t cả
p h é p to á n .
Làm p h é p to á n tro n g c á c Q uery
A c c e s s c ó t h ể là m
p h é p to á n c h o b ạ n t r o n g c á c q u e ry , fo rm , r e p o ĩt
v à m a c r o . T r o n g n h iề u t r ư ờ n g h ợ p , b ạ n n ê n là m
q u e ry , b ở i v ì b ằ n g c á c h
hấ t kỳ
đó
fo rm , re p o rt, h o ặ c
q u e r y s ẽ t ư đ ộ n g t r u y c ậ p g iá t r ị t i n h
m ộ t q u e ry , b ạ n
p h é p to á n tro n g m ộ t
tạ o m ộ t t rư ờ n g t ín h
to á n . Đ ế là m
m a c ro
phép
sử d ụ n g
to á n
tro n g
t o á n { c a lc u la t e d ĩi e ỉd ) b ê n
tro n g
q u e r y . K h ô n g g iố n g n h ư m ộ t t r ư ờ n g t h ô n g t h ư ờ n g t r o n g q u e r y , t ê n c ủ a
trư ờ n g t ín h
to á n
không khớp
vứi b ấ t k ỳ
tê n
trư ờ n g tro n g
các bảng.
T h ự c tế , g iá t r ị c ủ a n ó k h ô n g đ ế n t r ự c t iế p t ừ b ấ t k ỳ t r ư ờ n g t r o n g b ấ t
k ỳ b ả n g . T r ư ờ n g t ín h to á n h iệ n h ữ u c h ỉ t r o n g q u e ry .
T rư ờ n g t ín h
to á n
b ắ t đầu v ớ i m ộ t tê n
trư ờ n g th e o
sau
là
dấu h ai
c h ấ m v à s a u đ ó m ộ t b iể u t h ứ c đ ịn h n g h ĩa n ộ i d u n g c ủ a t r ư ờ n g t h t ío t h ứ
tự sau đây.
íieidnarne: expression
t r o n g đ ó A e ld n a m e là b ấ t k ỳ t ê n m à b ạ n
m u ố n ( m iễ n là n ó k h ô r
t r ù n g v ớ i t ê n c ủ a m ộ t t r ư ờ n g t r o n g b ả n g ) v à e x p r e s s io n là
c h o q u e r y b iế t c á c h là m
H ìr h
2 .]
trư ờ n g đ ầu
m in h
hoạ
y
c ô n g th ứ c
p h é p to á n n h ư th ế n à o .
m ộ t q u e ry tro n g
khung xem
t i ô n ỏ' p h ầ n t r ê n c ù n g c ủ u iư ứ i Q u o r y b y
D e s ig n
E x a m p le
Bón
t? n
- O rd e r
I D , P r o d u c t N a m e , Q t y v à U n it P r ic e - là c á c t r ư ờ n g t h ô n g t h ư ờ n g n h ậ n
c á c g iá t r ị c ủ a c h ú n g t ừ b ả n g O r d e r D e t a ils h o ặ c b ả n g P r o d u c t s t r o n g
k h u n g t r ê n c ù n g c ủ a c ử a s ổ D e s ig n V ie w . T r ư ờ n g c u ố i c ù n g :
*
*
*
‘n
ỉ« llt> | ^ ( 4
•
>&i
ra«»fto
V9T
C á c trư ờ n g
Prwviti<««
r.iy
UMHre
k)
th ô n g
lá
th ư ồ n g từ c á c
báng
T rư ờ n g
t ín h
to á n
Hình 2.1: Cột ExtPrỉce là một ví dụ vể trường lính toán trong query
249
Chương 2: Để các Q uery làm phép toán
ExtPr;ce, íQ ly l * [Un't Prlce)
là
m ộ t trư ờ n g
t ín h
to á n . T ê n trư ờ n g là
E x t P r ic G
( v iế t t ắ t c ủ a "e x -
t e n d e d p r ic e " ) . B iể u t h ứ c là [ Q t v l * [ ư n it P r ic e ] , n g h ía là " Q t y ( tr ư ờ n g
q u a n t it y ) n h â n v ớ i t r ư ờ n g U n it P r ic e .
H ì n h 2 .2 m in h h o ạ c ù n g m ộ t q u e r y n h ư h ìn h 2 .1 , n h ư n g t r o n g k h u n g
>3m
D a t a s h e e t . C h ú ý h a i đ iề u v ề k h u n g x e m
#
D a ta s h e e t:
Tìitờiii' E x iP n r e trông Ịiốìỉg n h ư hẩr h i’ Irrỉờnp k h ắ c
M C iứ lỉỊ CỈIỈỢC th ể b iệ n trong CỘI RxiPricc b ả n g I'ở ig iá trị củ a tn ỉờ n g
Q ty n h â n t ú i trường Uiìií P iice Irong m ỗ i cột.
5 í» fỉ
M 'A
R iíi
^
’
c ty ...
<‘
5
I. J i . '
•
Oỉy
?‘ r o ; f u t : N a n ỉ í í
• Uỉiil
?
5 C .o M ( » r W h i s t | p
I
COtrHẠ.OỘsMD
L
*
S ề U n » K fti1 í5
J
S iỉ(e i.ộ O k jỡ
V
b ^ o i. .
I J
V ) lộ o C â n e r *
:
S .,O C O .O I
*
Sao.cư
'^áC^CC
12 OiO ỉim 6 S :o c < 7 k i« e (
i
> b Í A ) .Q ^
$;0
$í.'0
$H0
13 Oid Time StocK Ticier
1
S 5 0 C .C C
S5C0.
i
Jỷ
Orae« Ữ H siit
Ì 1
- . - . .
i
L ô w r H a rT íỉrìg O
1 3 L a w n f Í 3 (7 iin g o
1
14 Lđvvrt K3fTifftgo
3
1Scar^nercdOle
:
Sí9.w
S9.'J8
:òr ie'
$ ' 98
2LuCky
ustftcn«t lO ữL,.
S?co
'ÌA .C C Ũ
1
Pláve^
í 0 M Izro \ . av «
J .
< o n t4 đ
\
$ ;,0 0 ) .c c
*5
Á
J
3
2
J
<ĩ
<ộĩ Tiík V j f e o r í''» f íc
3 ' i t c T i f r « S ‘ O C l Ti<*Vêf
Ị ^ Otd«tO(lailỉ
'
$lM.On
4
ỉ
J
I
/
s o r t Õ S n if f
9
O fư e riD
)
V -.
ư
.1
F.
s?.2509
' D 'V Ế r
tS^POĩ
s ' 99
S7,9$
1 2 L u < V Y R jo b * t5 P p o :
i
Ỉ5
S*^
SU9.
S‘3
Í7
S.4
99
Fk«»ồ^ 0
1
Hình 2.2: Query từ hinh 2.1 trang khung xem Oatastieet.
M ặ c dũ
CỘI E x iP r ic e
I r o n g k h u t ig
xem
D a L a s iie e i t r ò n g g iồ n g
như
trư ờ n g t h ô n g th ư ờ n g , n h ư n g n ó k h ô n g có h à n h v i c h ín h x á c n h ư tr ư ờ n g
th ô n g
th ư ờ n g .
Nếu
bạn
c ố th a y
A c c e s s s ẽ k h ò n g c h o b ạ n là m
đổi n ộ i d u n g
cùa
trư ờ n g
E x t P r ic e ,
đ iề u n à y . N ộ i d u n g c ủ a t r ư ờ n g E x t P r i c e
t r o n g q u e r y n à y l u ô n t h ể h i ệ n sô ” l ư ợ n g ( q u a n t i t y ) n h â n v ớ i g i á đ ơ n v ị
( u n it p r ic e ) v à
không
t h ể h iệ n
b ấ t c ứ đ iề u
gì khác, bdi v ì nó
là
m ột
trư ờ n g t ín h to á n .
Tuy
n h iê n ,
nếu
bạn
th a y
đ ổ i trư ờ n g Q ty
hoặc
trư ờ n g
ư n it
P r ic e
tro n g b ấ t k ỳ re c o rd , trư ờ n g E x t P r ic e n g a y tứ c t h ì v à tự đ ộ n g t h a y đ ố i
đ ể t h ể h iệ n
đ ú n g k ế t q u ả dự a vào th a y đ ổ i củ a b ạ n . N ế u
(ví dụ) bạn
t h a y đ ổ i t r ư ờ n g Q t y t r o n g r e c o r d đ ầ u t iê n t r o n g h ì n h 2 .1 t ừ 1 t h à n h 2,
trư ờ n g E x t P r ic e
c h o r e c o r d đ ó h iể n t h ị $ 2 0 0 .0 0 .
2 5 0 __________________________________ Chường 2: Để các Q uery làm phép toán
Làm
th e o
các bước sau
đ â y đ ể tạ o c á c trư ờ n g t ín h
to á n
tro n g các
q u e ry :
1. T ạ o m ộ t s e le c t q u e r y b ìn h t h ư ờ n g n h ư b ấ t k ỳ s e le c t q u e r y đ ư ợ c
m in h h o ạ t r o n g c h ư ơ n g 1 c ủ a p h ầ n n à y .
2. T h ê m b ấ t k ỳ t r ư ờ n g m à b ạ n m u ố h q u e r y h iể n t h ị v à o h à n g F ie ld
c ủ a lư ớ i Q B E .
3. Đ ể th ê m
tê n
m ộ t trư ờ n g t ín h to á n , c h ọ n b ấ t k ỳ c ộ t rỗ n g , gõ n h ậ p
trư ờ n g m ớ i d u y
chấm
n h ấ t v à o h à n g F ie ld ,
th e o
sau
là
dấu
hai
(:) v à b i ể u t h ứ c t h ự c t h i p h é p t í n h .
N h ữ n g g i b ạ n c ó đ ư ợ c s ẽ t r ô n g g iố n g n h ư t r ư ờ n g t ín h t o á n E x t P r ic e
đượo n in h
h o ạ tro n g b ìr h
2 .1
P hón g to c á c biếu thức
^K h ô n g g i a n b é n h ỏ đ ư ợ c c h o t r o n g h à n g F i e ỉ d c ủ a lư ớ i Q B E k h ô n g
h ẳ n là m
c h o v iệ c g õ n h ậ p c á c b iể u t h ứ c d à i t r ở n ê n d ễ d à n g . T h ự c t ế
te x t có th ể r ấ t n h ỏ , b ạ n k h ó th â y th ậ m
c h í k h i g õ n h ậ p m ộ t b iể u ' t h ứ c
ngắn.
Đ ể t h ấ y n h ữ n g g ì b ạ n đ a n g g õ n h ậ p , n h ấ n S h if t + F 2 t r o n g k h i c u r s o r
nằm
tr o n g trư ờ n g t ín h to á n h o ặ c n h ấ p p h ả i trư ờ n g t ín h
tu ỳ ch ọ n Z o o m
to á n v à ch ọ n
t ừ m e n u t ắ t . H ộ p t h o ạ i Z o o m m ở r a c h o t h ấ y n h ữ n g g".
b ạ n đ ã g õ n h ậ p v à o t r ư ờ n g ( n ế u có ). B ạ n c ó t h ể s ử d ụ n g t ấ t c ả p h ím
và
k ỹ t h u ậ t b iê n t ậ p t e x t c h u ẩ n c ủ a W in d o w s đ ể g õ n h ậ p b iể u t h ứ c . V í d ụ
n h ấ n p h ím
Đ ể là m
E n d đ ế d i c h u y ể n n h a n h c u r s o r đ ế n c u ố i b iể u th ứ c .
c h o t e x l d ễ đ ọ c h ơ n , n h ấ p n ú t P o n t . T r o n g h ộ p t h o ạ i P o n t,
v ừ a m ở r a , c h ọ n m ộ t k íc h c ờ f o n t lớ n h ơ n v à s a u đ ó n h ấ p O K t r ó n g h ọ p
t h o ạ i F o í i t đ e c h â p n h ậ n s ự t h a y đ ổ i. G õ n h ậ p b i ể u t l i ứ c v à s a u đ ó n h á p
O K
tro n g
h ộ p th o ạ i Z o o m
đ ể s a o c h é p b iể u t h ứ c v à o t r ư ờ n g t í n h t o á n
t r o n g lư ớ i Q B E .
Q u e r y có t h ể c h ứ a b ấ t k ỳ s ố trư ờ n g t ín h
to á n - b ạ n k h ô n g g iớ i h ạ n
c h ỉ có m ộ t h o ặ c h a i t r ư ờ n g t ín h to á n . D ĩ n h iê n , v ấ n đ ề q u a n t r ọ n g là
b iế t c á c h v iế t b iể u t h ứ c . K h i v iế t c á c b iể u t h ứ c , c á c k h ả n ă n g h ấ u n h ư
v ô t ậ n . N h ư n g c ó m ộ t số^ c ô n g c ụ c ơ b ả n v à q u y t ắ c n h ằ m
g iú p b ạ n tạ o
b ấ t k ỳ b iể u t h ứ c n h ư đ ư ợ c t h ả o lu ậ n t iế p th e o .
V iết c á c b iể u thức tro n g A c c e s s
M ộ t b iể u
phép
t ín h
th ứ c
như
( e x p r e s s io n )
cho
t h ế n à o . M ộ t b iể u
trư ờ n g , t e x t trự c k iệ n
dụng bất k ỳ hàm
A ccess
th ứ c
có
b iế t c á c h
th ự c
th ể
các to á n
chứa
( l i t e r a l ) h o ặ c t ấ t c ả c h ú n g ■v à
cài săn của A ccess. C á c h àm
th i m ộ t số
tử
tê n
c ũ n g có th ể sử
c à i s ẵ n có t h ể g â y k in h
n g ạ c , n h ư n g n ế u b ạ n t h ự c t h i c h ú n g m ỗ i lầ n m ộ t b ư ớ c , b ạ n s ẽ s ớ m ta o
c h ú n g m ộ t c á c h c h u y ê n n g h iệ p .
C h ư ơ n g 2 : Đ ể c á c I ỉ u e r y là m phép t o á n ________________________________________ 2 5 1
QỆX U ỷ
--------------1 - ----------------------------------------------------------------
Tponq tk ii^ l nqơ Ac**ss, Icxl trực kiĩ?fì nqkla lò Ỉ€>ct vẾn kfiồnq pkòi
lê n r i i o m ^ l ỈPƯỎnq nào ẩó kocỊc ắối lư ợniỊ l^kác. Tron<Ị k lil L a s tria m c
cc ih ể la iễ n của m ộ i lpưòn <5 Iponq rnột tđ n q tliì S rT iilíì, Jo n e s vò 1 2 3
O ok Trc€ Lane ẩểu là níìứnq ví dg vể tfxt tpực l
ỉexl
Irực kiện fpcnq cổc dâu nqo^c kép (.**SmỉÌli ). t)oi VỚI một ví dụ
|j
i^^r, \
rlic ^
iììn Sò di;n'ị róc
\r in ị
\ ề
i ù
'ói
õiị
»
n(^ài| llió n q vd ilỉò i qỈGn fi’ực l^iện tponq bỉếu ìlỉ ức
ỈPonq cỉiUCnq nđij.
Sử d ụ n g c á c to á n tử tro n g c á c biểu thức
T o á n t ử (o p e ra to r) là m ộ t k ý tự th a o tác t r ê n d ữ liệu. M ộ t sô” to á n tử
t h ư ờ n g đ ư ợ c s ử d ụ n g h ơ n đ ư ợ c li ệ t k ê t r o n g b ả n g 2 .1 . C á c t o á n t ử đ ư ợ c
liệ t k ê
t h e o t h ứ t ự ư u t iê n , n g h ĩa ỉà
th ứ tự m à A c c e s s th ự c t h i p h é p
t í n h k h i m ộ t b iể u t h ứ c c h ứ a h a i h o ặ c n h ìề ư t o á n tử .
Bảng 2.1 Các toán tử Iheo thứ tự ưu tiên
T o á n tử
M ụ c đ íc h
V í dụ
v)
K ét nhóm
1,2+2) ^5 t r ả về 20
ĩ lĩ> hoỉ- (.uầcife i/iộ ,í-ô''êii
m ộ t luỹ th ừ a xác định)
ỉ'-''ì \ r i v l :'5
■*',
P h é p n h ân , phép clũa
5*6/3 t r ả về 10
+•
P h é p cộ n g , p h é p trừ
6 + 6 -2 t r ả v ề 1 0
Thứ
O hép chuỗi ( i ’õi các CỊini
"H ííU o" & "T b e re " tr ả
tc x t la i với nhau)
về H plloThoro
t ự ư iit i ê n m à c á c t o á n t ử t u â n t h e o c ó t h ế l à m ộ t " v ấ n đ ề " t h ậ t
s ự nốu
b ạ n k h ỏ n g c ẩ n th ậ n . íl ả y xem biốu thức ílơn g iả n sau đ â y bao
gỏm m ô t to á n t ử cộng (+) v à m ột to á n tử n h â n í*).
5+3'2
K h i là m
p h é p to á n n à y , b ạ n có đươc 16 h a y
c ộ n g t r ư ơ c t i ê n ( 5 + 3 -=8) r ồ i đ ế n p h á p n h á n ( 2
N h ư n g n ế u b ạ n là m
1 1 ? N ế u b ạ n là m
phép
8 ), k ế t q u ả b ạ n c ó 1 6 .
p h é p n h â n t r ư ớ c t iê n (3 * 2 = 6 ) r ồ i đ ế n p h é p c ộ n g (6
-I- 5) th i k ế t q u á b ạ n có 11. Vặy th ì dảu la iời giải đ ả p đúng, 11 h a y 16?
C h ịu t h u a ? 1 1 là lờ i g iả i đ á p đ ú n g ( v à ỉà lờ i g iả i đ á p m à A c c e s s đ ư a
r a ) b ở i v ì c á c q u y t ắ c t h ứ t ự ư u t i ê n p h á t b iể u r ằ n g p h é p n h â n v à p h é p
c h ia lu ô n đ ư ợ c t h ự c t h i t r ư ớ c p h é p c ộ n g h o ặ c p h é p t r ừ .
P h é p n h â n v à p h é p c h ia có cù ng m ộ t th ứ t ự ưu tiê n .
Nếu
m ộ t biểu
th ứ c b a o g ồ m c ả h a i p h é p to á n n à y , c h ú n g đ ư ợ c th ự c t h i th e o t h ứ tự từ
t r á i s a n g p h ả i. T r o n g b iể u t h ứ c s a u đ â y , p h é p c h ia x ả y r a t r ư ớ c t iê n ,
bởi vì nó nằm
10/5’ 3
bên trá i phép nhân:
2 5 2 __________________________________ Chơúng 2: Để các Query làm phép toán
6.
K ế t q u ả c ủ a b iể u t h ứ c là 6 , b ở i v ì 1 0 c h ia c h o 5 là 2 , v à 2 n h â n 3 b ằ n g
P h é p c ộ n g v à p h é p t r ừ là m
v iệ c c ù n g m ộ t c á c h . N ế u m ộ t b iể u t h ứ c
b a o g ồ m c ả p h é p c ộ n g v à p h é p trừ , c á c p h é p t ín h x ả y r a th e o t h ứ từ từ
t r á i s a n g p h ả i.
Bạn
có th ể
đ iề u
ngoặc đơn. A ccess
k h iể n
lu ô n
t h ứ tự ư u t iê n
là m
v iệ c
bằng
cách
sử d ụ n g các dấu
từ cá c d â u n g o ặ c đ ơ n tậ n
cùng bên
t r o n g s a n g c á c d â u n g o ặ c đ ơ n t ậ n c ù n g b ê n n g o à i. B iể u t h ứ c s a u đ â y là
m ộ t v í dụ.
5^2+ ((5-1) ' 3)
K h i
d o ’i r r ặ t
\ớ i
b ’ ể ii t b ứ n
nèy, A ccess
di vào
bên
n g o ặ c đ ơ n t ậ n c ù n g b ê n t r o n g trư ớ c t iê n (5 -1 ) v à là m
trc n ^ r c á c
dấu
p h é p t ín h đ ó . D ơ
đ ó b iể u t h ứ c t r ở t h à n h
5^2+ (4*3)
T iế p
th e o
A ccess
t ín h
cặp
dấu ngoặc đơn
c ò n l ạ i t r o n g b iể u
th ứ c
(4 * 3 ). T r o n g g iâ y l á t b iể u t h ứ c t r ở t h à n h
5''2+12
B ô i v ì k h ô n g c ò n c á c d ấ u n g o ặ c đ ơ n n ữ a , A c c e s s s ử d ụ n g t h ứ t ự ưu
t iê n b in h t h ư ờ n g đ ể là m
p h é p t ín h c ò n lạ i. P h é p m ũ h o á có m ộ t t h ứ tự
ưu t iê n c a o h ơ n p h é p c ộ n g , d o đ ó t r o n g g iâ y l á t b iể u t h ứ c t r ở t h à n h
25+12
S a u đ ó A c c e s s là m
p h é p t ín h
cu ô l c ù n g v à tr ả v ề k ế t q u ả 37.
T H Ô N G TIN K Ỷ T H U Ậ T
N ế u b ạ n là m ộ t c h u y ê n g ia toá n h ọ c th ậ t sự, b ạ n sẽ d á iìh giá cno rồ ng
th ê m h a i to án tử có cù n g th ứ cự líu tiê n n h ư p h é p n h â n và p h é p chirì.
M ộ t là to á n tử \, trả về c h ỉ p h ầ n sô' n g u y ê n của mộc th ư ơ n g và m ộ r
to á n tử ỉà M O D (cho moduỉo), trá về ch ỉ số dư sau khi chia. Ví dụ,
trong k h i 16/3 (phép chia b ìn h thường) trả về 5.3333, 16\3 trả về 5, và
16 M O D 3 trả về I.
C á c tê n trư ờng tro ng c á c b iểu thức
N ế u b ạ n đ a n g n g h ĩ " C ó lẽ t ô i có t h ể là m
c á c p h é p t ín h trư ớ c d ó t r ê n
m á y t í n h $ 2 . 0 0 c ủ a m ìn h " , đ iề u đ ó c h ắ c c h ắ n đ ú n g . N h ư n g c á c b iể u t h ứ c
A c c e s s k h ô n g g iớ i h ạ n c h ỉ t r o n g cá c s ố v à to á n tử . B ạ n c ó t h ể s ử d ụ n g
c á c t ê n t r ư ờ n g t r o n g c á c b iể u t h ứ c đ ể là m
p h é p t o á n t r ê n d ữ liệ u đ ư ợ c
lư u t r ữ t r o n g c á c t r ư ờ n g . Q u e r y m ẫ u đ ư ợ c m i n h h o ạ
sử
dụng
các
tê n
trư ờ n g
[Q ty ]
* [ ư n it
P r ic e ]
t r ư ờ n g ư n i t P r ic e v ớ i g iá t r ị t r o n g t r ư ờ n g Q t y .
để
ở
đầu chương n ắy
nhân
g iá
trị
tro n g
Chướng 2: Để các Query làm phép toán_________________ ________________ 2 5 3
V ế m ặ t k ỹ th u ậ t, b ạ n c h ỉ c ầ n đ ặ t các tê n trư ờ n g tr o n g c á c d ấ u n g o ặ c
v u ô n g k h i tê n
N liư n g
bạn
t r ư ờ n g c h ứ a m ộ t k h o ả n g t i'ố n g n h ư t r o n g [ U n i t P r ic e ] .
có t h ể
đ ặ t các
dâu
ngoặc vuóng xu n g
quanh
t r ư ờ n g , đ ể p h ò n g h ờ . Đ ể đ ạ t đ ư ợ c t í n h nhâ^ t q u á n v à đ ể l à m
bâ^t k ỳ
tê n
ch o các tè n
t r ư ờ n g t r o n g c á c b iể u t h ứ c n ổ i b ậ t - c h ú n g s ẽ lu ô n đ ư ợ c đ ậ t t r o n g c á c
c^ấu n g o ặ c v u ô n g q u a s u ô ”t s á c h n à v .
B iể u
th ứ c
*
n a y , [Q t} ]
m ẫu
đ ư ợ c m in h
h o a tro n g q u e ry đ ầ u t iê n
ở đầu chương
í ư r á t P r ic e ] là n iộ t v í d ụ c ơ b ả n c ù a v iệ c s ử d ụ n g c á c t ê n
t r ư ờ n g t r o n g c á c b iể u t h ứ c . B iế u th ứ c đ ơ n g iả n c ó n g h ĩa là
của trư ờ n g
P r ic e
Q ty tro n g re c o rd
này nhân
"n ộ i dung
v ớ i n ộ i d u n g củ a trư ờ n g ư n it
tro n g cù n g m ộ t re c o rd n à v ” .
Sử d ụ n g c á c h à m tro n g c á c biếu thức
M ộ t b iể u
th ứ c
A ccess
c ũ n g có th ế
( íu r . c t io n ; h ơ i g iồ n g n h ư
t ín h
n ào đó v à
] ụ n g n iộ t h à m
r g o ặ '- 'lc 'n
m ộ t to á n
chứa
bất kỳ
t ừ t r o n g (tó n ó
sô
hàm .
M ộ t hàm
th ự c t h i m ộ t p h é p
s a u đ ó t r ở v ề m ọ t g iá t r ị n à o đ ó . N h ư n g c á c h b ạ n
t.h ì k h á c . M ọ i h à m
sử
có m ộ t t ê n th e o s a u là m ộ t c ặ p d â u
d ụ , h à i n D a t e ( ) lu ú n t r ẩ v ề n g à y t h á n g h i ệ n b à n h .
N h iề u h à m
c h â p n h ậ n c á c đ ố i s ố (a rg u m e n t) đ ư ợ c đ ặ t b ê n tr o n g các
d ấu n g o ặ c đ ơ n . Đ é’ t íiih
S q r{ ). H à m
c ả i i b ậ c h a i c ù a H iộ u s ố , b ạ n s ư d ụ n g m ộ t h à m
S q r í ) c h ấ p n h ậ n m ộ t t h a m s ố ’ - m ộ t sô ”, t ê n c ủ a m ộ t t r ư ờ n g
h o ặ c m ộ t b iể u t h ứ c c h ứ a m ộ t s ố . H à m
S q r() t r ả v ề c ã n b ậ c h a i c ủ a b ấ t
K ỳ g i á t r ị n à o c h u y ế n đ ế n n ó d ư ớ i d ạ n g m ộ t đ ô ”i sô'.
'• 'í i u , b i ê u t h . ĩ c s lu đ â " t n l \ ề 9
b ở i v'. c ă 1 'o ậ c h a i c ù a 8 1 ’ à 9 ( t ớ - \ ì
9 n l i ù n 9 b ằ n g 8 ĩ ) . T r o n g v í d iỊ n á y , c h ù n g c a s ử d ụ n g m ộ t. s ố l à m
cho h à m
đ ố i sỏ”
S q rO '
S q r (8 1 )
Chu
ý rà n g tro n g
v í dụ. ch ú n g
La s ử d ụ n g 8 1 l à m
d ố i áo c b o h à m
S q r O - M ộ t c á c h k h á c đ ể p h á t b iể u r ă n g là c h ú n g t a c h u y ề n s ố 8 1 đ ế n
J ố i số. N ó» c á c h
. ìụ n g là m
Hàm
k h á c , t ừ " c b u v ể n " t r o n g n g ’jf c ả n h
n à v c ó D g h ĩa là s ử
m ộ t đ ô ”i số^ t r o n g m ộ t h à m .
S q r { ) s a u đ â y s ử d ụ n g m ô t b iể u t h ứ c 5 * 2 0 l à m
đ ô 'i s ố ’ c ủ a n ó :
S q r (5 * 2 0 )
B ờ i v ì b iể u t h ứ c 5 * 2 0 n ằ m b ê n t r o n g c á c d ấ u n g o ặ c đ ơ n , p h é p n h â n
xảy
ra
trư ớ c
t iê n .
T ro n g
g iâ y
lá t ,
hàm
trở
th à n h
S q r ( lO O ) .
Sau
đó
S q r ( lO O ) t r ả v ề 1 0 , b d i v ì 1 0 l à c ă n b ậ c h a i c ủ a 1 0 0 .
B ạ n c ũ n g có t h ể s ử d ụ n g c á c tê n trư ờ n g t r o n g c á c h à m . G iả s ử b ạ n có
m ộ t b ả n g c h ứ a m ộ t t r ư ờ n g s ố c ó t ê n là b ig N u m b e r . H à m
S q rO sau đ ây
trả
tro n g trư ờ n g
về
căn
b ig N u m b e r :
bậc h a i của b ấ t k ỳ
g iá
trị nào
đ ư ợ c lư u t r ữ
254
Chưđng 2: Để các Query làm phép toán
Sqr((bỉgN um ber])
H à n g chục h à m
gần
như không
E x p r e s s io n
đư ợ c c à i s ẵ n v à o A c c e s s . T h ự c tế , n h ớ t ấ t c ả h à m t h ì
th ể
B u ild e r
t iế p tụ c đ ọ c v à k h á m
đư ợc. B ạ n
là m
nên
hướng
d ò t ìm
các h à m
d ẫ n . E x p r e s s io n
k h i cần, sử d ụ n g
B u ild e r
là
g ì?
H ây
phá.
S ử d ụ n g E x p ressio x i B uilder
E x p r e s s io n B u i l d e r là m ộ t c ồ n g c ụ g iú p b ạ n v i ế t c á c b iể u t h ứ c c ó ý
n g h ĩa , s ử d ụ n g b ấ t k ỳ t ổ h ợ p t o á n tử , t ê n t r ư ờ n g v à h à m . Đ ể s ử d ụ n g
E x p r e s s io n
q u e r y , là m
B u ild e r
tro n g
k h i tạ o
m ộ t trư ờ n g
t ín h
to á n
tro n g
m ột
th e o n h ữ n g bư ớc sau đây:
1 . N ế u b ạ n c h ư a liủ a q u e r y h i ệ n h à n h , h ã y l à m
b â y g iờ đ ể đ ặ t t ô ji
c h o n ó ( n h ấ n C t r l+ S , g õ n h ậ p m ộ t t ê n c h o q u e r y t r o n g h ộ p th o ạ i
S a ve v à n h ấ p O K ).
2. G õ n h ậ p m ộ t tê n tr ư ờ n g m ớ i th e o s a u là d ấ u h a i c h ấ m
(;) t r o n g -
h à n g F i e l d c ủ a m ộ t c ộ t r ỗ n g t r o n g lư ớ i Q B E .
L ư ớ i Q u e r y b y E x a m p le c ò n đ ư ợ c g ọ i l à lư ớ i Q B E
đ á y c ủ a c ử a s ổ D e s ig n V ie w . Đ ể b iế t t h ê m
nằm
ở khung
c h i t i ế t v ề lư ớ i Q B E
( v à n g ô i n h à y ê u d â u c ủ a n ó , c ử a s ổ D e s ig n V ie w ) , x e m c h ư ơ iig 1
của p h ầ n này.
3 . N h ấ p p h ả i k h ô n g g ia n t r ố n g n ằ m b ê n p h ả i d ấ u h a i c h ấ m m à b ạ n
v ừ a g õ n h ậ p v à c h ọ n t u ỳ c h ọ n B u ild từ m e n u t ắ t h o ặ c n h ấ p n ú t
B u ilđ t r ê n
t a b D e s ig n t r ê n R ib b o n .
E x p r e s s io n B u il d e r m ờ r a , t r ô n g g iố n g n h ư h ìn h 2 .3 . B á t k ỹ t e x t
m à
bạn
đà
gõ
nhập
vào
lư ớ i
Q B E
đã
nằm
tro n g
E x p r e s s io n
B u ild e r .
Expfe$$ion BuKtUr
Cancel
H ìn h 2 .3 : E x p re s s io n
Builder.
/ * & [ ■ > < <>| And Q r N o t L f t t f
( ) |
P a s te
(S Tabíẻv
Q ưerieí
t£3F(xm s
ịo ty
iU rA P rk v
•ExtPrice
Ị±] ReporCỉ
(ă
F g n c tw s
Q Coo5tafrt$
i
C ]O p e rd to ri
i
C2 Common £ x p r e $ s i ỡ n $
ì
1
ì
ÌL.
^
Ị
I
255
Chương 2: Để các Ouery làm phép toán
b ạ n s o ạ n b iể u t h ứ c n h ư đ ư ợ c m in h h o ạ t r o n g h ì n h
ở trê n cùng
2A . B ạ n có
nhập
p h ím
Bên
tro n g
và
E x p r e s s io n
b iê n
t h u ậ t b iê n
tậ p
B v i i l d e r . 'V-Ùng t r à n g
tro n g v ù n g
lớ n
ló 'n
đ ó sử d ụ n g b à n
t ậ p W in d o w s c h u ẩ n . H o ặ c s ừ d ụ n g c á c h à m
và
và
là
nơi
th ể gõ
tấ t cả k ỹ
f o ld e r b ê n
d ư ớ i v ù n g t r ắ n g đ ể x â y d ự n g m ộ t b iể u t h ứ c m à k h ô n g c ầ n g õ n h ậ p .
P o lđ e r tê n
q u e ry
B iể u
th ứ c
C a c n ú t tử á n tử
E xpreM loii Builcter
(
^ fic e ]|
E x ì P ĩ K t i
-1
Ur>ỉo
-CjQuéíy2
< â l>
A
Arrâv5
Conv«r$hjn
S ] T ỉbỉes
ÍÌÌCỳM^i
Abs
.A ln
ịc o s
: t X Q
Ê } F-5rfr.í
O ^ iệ Ịĩìíĩ^
AọQregỉỉe
Gj Fírtr»íjf.
- Ê ịQ S B n s s g
Er ộr
-ỉ^ ^
-g
P nârm id
G tn erd
IrispeíU^n
rAaih
R x
ĩn t
l í<2
ftoun
Sgn
AbUnunbciỉ
C á c hàm
'đ ir ợ r
càỉ sẳn
ch ọ n )
C á c
H ĩn h
2.^:
I
C á c h àm
to á n
h ọ c
I
hạng
C a c ;uy tlì^ n c h ỉn .i d ể tạ o
m ự c hàm
(m â th đ ư Ợ c c h ọ n )
bỉỄ u ;hưc trc n y cát. tiư c n g t.n lì ỉo á tì c ủ j m ột
query.
K ìiO n g p h ả i m ọ i t h ử c h o E x p r e s s io n B u ild e r đ ề u h ư ớ n g đ ế n v iệ c t ạ o
c á c b i ể u t h ứ c c h o c á c q u e r y . M ộ t số^ t í n h n ă n g c ủ a E x p r e s s i o n
B u ild e r
t h í c b h ợ p h ơ n c h o v iệ c t ạ o c á c b iể u t h ứ c t r o n g c á c f o r m v à r e p c r t . K h i
b ạ n là m
v iệ c v ớ i q u e r y , n h ữ n g đ iề u c h ín h m à b ạ n m u ố n t ậ p t r u n g v à o
n h ư sau:
*
Các m ít toán t ử Nhấp bất kỳ ììú tn à v đ ể c h è n m ột toán tử vào biểií
thức.
9 Tên q u ery : H iển thị tên của qtiery đang mờ. Khi bạn nhấp tên
query, các trííờng từ qiiery đó xiiất hiện trong cột giữa. Việc nhấp
một tên tníờng trong cột giữa đó sẽ Ihêm lên vào biềii tbĩỉc.
256
C h ư ơ n g 2; Đ ể c á c Q u e ry là m p h é p toán
<í
--------------------------------------------------------------------------------------
riếu
quepij
bqn tk é n q iiíu
\pưốc k lii m ỏ E xppession B u ild e r , việc n íiđ p
íoldep Q u e P ij M om e tponq txp p e ssiD n B u ild e p sẽ k liồ n q kiế n iỉiị t đ l cứ
q ì.
M Poỉder BtiiU-In F unctio»s: Nến bạn Ịihẩp đôi dáti + k ổ b ê n /o ld er
Pìinctions, bai tỉiỳ cbọn Xìiất hiệỉi. N hấp/oỉderB uiừ-ỉn Pnnctions đ ể
thấy các hạng m ục và tên của các hàm có sẵn trong CỘI giữa. Nhấp
m ột tên hạng m ục ở CỘI giữa đ ề thấy trong cột phải, tên của các bàt. ỉ
bên tm ng bạng m ục đó.
B ấ t cứ n h ừ n g
gì ban
chèn
ờ
cu rso r n h á p n h á y h o ặ c
vào
b iể u
th ứ c
được
chèn
c u ố i b ấ t k v t e x t n à o h íễ n n ằ m
tạ i v ị t r í của
t r o ĩ i p b iể u t h ứ c
n ế u k h ô n g t h ấ y c u r s o r n h â ”p n h á y . N ế u b ạ n c ầ n d i c h u y ể n c u r s o r t r ư ớ c
k h i c h è n m ộ t t h ứ g ì đ ó v à o b iể u t h ứ c , c h ỉ v iệ c n h ấ p t ạ i n ơ i b ạ n m u ố ij
đ ặ t c u r s o r . B ạ n c ũ n g có t h ể s ử d ụ n g c á c p h ím
đ ể d ặ t c u r s o r . S ử d ụ n g p h ím
t e x t t r o n g b iể u
H om e hoặc E n d
B a c k s p a c e v à p h ím
th ứ c. Đ ể u n d o
sự th a y
đổi gần
D e le t e
( D e l) đ ể x o á
đây n h ất đối với m ột
b iể u t h ứ c , n h ấ p n ú t U n d o t r o n g E x p r e s s io n B u i l d e r h o ặ c n h ấ n C t r l+ Z .
N h ậ n s ự trỢ giú p v ề c á c hàm
C h ỉ th ấ y tê n củ a m ộ t h à m
c à i s ẵ n t r o n g c ộ t t h ứ b a c ủ a E x p r e s s io n
B u il d e r k h ô n g c h o b ạ n b iế t g ì n h iề u . B ạ n k h ô n g b iế t h à m
có c h ứ c n ă n g
g ì h o ặ c s ử d ụ n g n ó n h ư t h ế n à o . N h ư n g b ạ n c ó t h ể n h ậ n đ ư ợ c t h ô n g t i- ',
tứ c t h ì b ă n g v iệ c s ử d ụ n g n ú t H e lp . L à m
th e o c á c bư ớ c sa u đ â y đ ể tru y
c ậ p c ử a s ổ H e lp ;
'tó
m ộ t d ấ u 1- k ế b ê n n ó , đ ầ u t i ê n n h â p d â u + đ ó d ể m ở r ọ n g d a n h
1. T r o n g c ộ t t r á ị c ủ a E x p r e s f i c n
B u ild e r , n ế u f o H e r r u r . c t ic n s
sách.
2. N h ấ p
f o lđ e r B u ilt - I n
P u n c t io n s t r o n g c ộ t đ ầ u t iê n .
C á c t ê n h ạ n g m ụ c x u ấ t h i ệ n t r o n g c ộ t g iữ a .
3. N h ấ p
tro n g
m ộ t tê n
hạng
h ạ n g m ụ c tro n g
m ục
đó
đ ư ợ c liệ t
kê
c ộ t g iữ a
tro n g
< A11> t r o n g c ộ t g iữ a đ ể t h ấ y t ấ t c ả h à m
Các hàm
4. T ro n g
để th ấ y
cộ t th ứ
các h à m
ba
(h o ặ c
bên
nhấp
t r o n g c ộ t t h ứ b a ).
c h o h ạ n g m ụ c đ ó x u â t h iệ n t r o n g c ộ t t h ứ b a .
cộ t th ứ
ba, n h ấ p
tê n
của h à m
m à
bạn
m uốn
t ìm
h iể u
th ê m .
5 . N h â 'p n ú t H e l p ô b ê n p h ả i t r ê n c ù n g E x p r e s s i o n
C ử a s ổ H e lp c h o h à m
cụ th ể
đ ó m ở r a . N ế u b ạ n k h ô n g t h ấ y s ự t r ợ g iú p
cho h àm , gõ n h ậ p
H e lp . C á c h à m
B u ild e r .
tê n
hàm
vào hộp
se a rc h
của A ccess
đ ư ợ c liệ t k ê th e o lo ạ i t r o n g h ệ t h ố n g H e lp , d o đ ó
C h ơd ng 2: Để các Query làm phép toán_______
nếu
D ạn c ầ n
n h a iih
hơn
c ìm
_____________________
m ộ t h a n i t r o r i g h.ệ t h c n g
nếu bạn
b iế t n ó
là
m ột hàm
257
H e lp , bạ^ i s é
^ hấy
P in a n c i a l ( t à i c h ín h ) ,
chẳng hạn
V í dụ, c h ọ n h ạ n g m ụ c F in a n c ia l c ủ a h à m
ở c ộ t g iừ a , n h á p h à m
P V
t r o n g c ộ t t h ứ b a v à s a u đ ó n h ấ p n ú t H e lp . T r a n g H e l p m ờ r a k h ô n g c h ỉ
m ô tả chức n ă n g của h à m
P V
m à cò n m ô tả cú p h á p c ầ n t h iê t đ ể sử
d ụ n g h à m . C ú p h á p (s y n ta x ) củ a m ộ t h à m
c ắ n c íiu y ỉỉn ( c u n g c ấ p ) c h o h à in đ ê iià m
m ô tả th ô n g t in n à o m à b ạ n
l á r n p h é p t í n h c ủ a Í i6 \ à t i ả v è
m ộ t k ế t quả.
C ú p h á p cho m ộ t h à m
t r ô n g n h ư sau:
functionNam e(arg1, arg2, [argS])
t r o n g đ ó f u n c t io n N a m e là t ê n c ủ a h à m v à a r g l , a r g 2 , v à a r g 3 tư ợ n g
trư n g ch o các d ố i số m à h à m
n h ậ n t h a y đ ố i. M ộ t s õ h à m
đ ò i h ỏ i n h iề u
c h ấ p n h ậ n . S ố đ ô i sô^ m à m ộ t h à m
chấp
k h ô n g đ òi h ó i các đ ố i số, n h ữ n g h à m
khác
đ ố i số. N ế u m ộ t h à m
c h ấ p n h ậ n h a i h o ặ c n h iề u
đ ố ’i sồ ”,
chún^ í p b ả j đ ư ợ c t á c h b iệ t b ằ n g m ộ t d â u p h ẩ y .
3 í't k y
t ê n đ ò 'i s ố tr:> r.g c á c d ấ u j ) g o ặ c v u ô n g t h i '; u ỳ c h ọ n , n g h ĩ a ].à
b a n c ó t h ê b ô q u a t o à n b ộ đ ô i sô" n ế u m u ô n .
-------------------------------------------------------------------------------------C /tio Jù ix jn sử duri<^ m ột Ỉ ố i SỂ fui) rliQ ii [ia ij kL ^n q , kkônq kuo q iò CỊÕ
Iiíiộ p cóc J đ u ngotỊc vuônq vòo hàm .
M ột
hàm
l u ô r . ( t ư ợ r t h í . o s a u b ằ J i g c á c đ ấ u n g o ặ c đ c ín - t h ậ m
chí
n ế u h ã m k h ô n g c h ấ p n h ậ n c á c đ ố i sô. N o w (), S q r ( 8 1 ) , v à P V ( a p r , T o t P m t s ,
I n c o r a c í.t l à c á c v í d ụ v ề c ú p h á p h a m
nhập
m ộ i; đ ố i s ố , b ạ n
có th ể
t ií/ p ! ệ . C ũ n g
s ử d ụ n g m ộ t g iá
ch u ý rà n g k h i gó
t r ị trự c k iệ n
(n h ư tê n
' S m i t l ; " h o ặ c s ú i.0 ) , ì T i ộ i t ê n ư ư ờ a ^ , Í Ì ( Ạ ‘ i n ụ t b i ể a t h ứ c L u n đ ố i s ô . 3 &
b iể u t h ứ c s a u đ â y đ ê u c h u y ể n c á c g iá t ĩ 'ị t r ự c k i ệ n ( l i t e r a l ) đ ê n c á c h à m
'.■ỏa c h ú n g :
Sqr{100)
PV(.035,120,250)
U Case("how dy’')
B a đ ô ì s ố t h ứ b a đ ề u c h u y ể n d ữ ỉiệ u t ừ c á c t r ư ờ n g đ ế n h à m
( m iễ n là
H y p o t, A p r , M o n t h s , A m o u n t v à C o m p a n y là t ê n c ủ a c á c tr ư ờ n g t r o n g
q u e ry h iệ n h à n h ):
Sqr([Hypot])
PV([Apr],[M onths],[Am ount])
258
C h ư ơ n g 2: Đ ể c á c Q u e ry là m p h é p toán
UCase([Company])
T r o n g c á c v í d ụ t iế p t h e o , b ạ n s ử d ụ n g c á c b iể u t h ứ c là m
S q r(2 2 7
'
đ ô l số:
[H yp ũ t])
P V ([A p r]/1 2 ,[M o íith s]* 1 2 ,-r[A m o u n t])
U Case([First Name] & " " Ẵ [Last WameỊ)
K h ả n ă n g c h u y ể n g iá t r ị t r ự c k iệ n , c á c t ê n t r ư ờ n g v à / h o ặ c b iể u t h ứ r
đến các h à m
s ẽ m a n g đ ế n c h o b ạ n n h iề u s ự l i n h
h o ạ t.
Bàn về text tro n g c á c d ấ u ngoộc < và >
K h i s ử d u n g c á c n ú t á n ử a d ư ớ i củ a E x p r e s s io n B u ild e r
ôể
c h è n te x t
v à o b iể u t h ứ c , t e x t đ ó t h ư ờ n g b a o g ồ m c á c p la c e h o lđ e r - t e x t t r o n g c á c
d â u n g o ặ c g ó c (< > ). B ạ n
c ó t h ể t h â V c á c p la c e h o ld e r , c h ẳ n g h ạ n n h u '
< e x p r > , < in t e i^ a l> , < n p e r s > , h o ặ c m ọ t t h ứ g ì đ ó k ỳ q u ặ c t r o n g Ẽ x p r e s s io n
B u ild e r . T ù ìig
t h ứ c ó d ấ u n g o ặ c n à y la
m ộ t p l a c e h õ l d e r c h o m^ọt
đ ối số m à b ạ n cầ n gõ n h ậ p vào.
Nếu
m ộ t p la c e h o ld e r t ư ợ n g t r ư n g c h o m ộ t đ ố i s ố t u ỳ
chọn và ban
k h ô n g d ự đ ị n h s ử đ ụ n g đ ô l sô" đ ó , b ạ n c h ỉ v i ệ c x o á p l a c e h o ỉ d e r . N h ư n g
n ế u p la c e h o ld e r t ự ợ n g t r ư iig c h o m ộ t đ ố i s ố b ắ t b u ộ c t h ì b ạ n c ầ n t h a y
t h ế p l a c e h o l d e r b ằ n g g i á t r ị h ợ p lệ . S ử d ụ n g t h ư ờ n g x u y ê n t í n h
H e lp k h i là m
v iệ c v ớ i c á c h à m
năng
th ì r ấ t q u a n trọ n g .
x ế p lồng c á c h à m
^ B ạ n c ó t h ể x ê p lồ n g ( n e s t )
b ê n tro n g m ộ t h à m
các
h à x n , n g h ĩa là b ạ n c ó th ế ’
m ột hàm
k h á c . B ở i v ì A c c e s s lu ô n l à m ' v i ệ c t ừ c á c d ấ u n g o ậ c
đ ơ n t ậ r c ù n g b ê n t r o n g h ư ớ n g r a h ê n n g o à i, h à m
t ín h
đật
t r ư ớ c t iê n . V í d ụ , h à m
b ê n t r o n g l u ô n đ ư ơ !l
D a t e O lu ô n t r ả v ề n g à y t h á n g h iệ n
hành
( N ó k h ô n g đ ò i h ỏ i c á c đ ố i số ). H à m W e e k D a y ( ) c h ấ p n h ậ n b a t k ỳ n g a y
t h á n g là m ộ t đ ô i số , n g h ĩa là c ú p h á p c ủ a n ó t r ô n g n h ư sa u :
WeekDay(date)
B ở i v ì h à m D a t e O lu ô n t r ả v ề m ộ t n g à y t h á n g , b ạ n c ó t h ể s ử d u n g n ó
là m
đ ố i sô' c h o h à m
W e e k D a y ( ) . B iể u t h ứ c h o á r a ià
WeekDay(Date{))
M ộ t s ố g iữ a 1 v à 7 t r ả v ề , b iể u t h ị n g à y h ô m n a y t r o n g t u ầ n l à n g à y
m ấ y . V í d ụ n ế u n g à y t h á n g h iệ n h à n h là t h ứ 2 3 v à n g à y đ ó là n g à y th ứ
b a (T u e sd a y ), h à m
W e e k D a y() trả
n h ậ t ) , n g à y 2 l à t h ứ h a i ( M o n d a y ),,,.)
về
số 3. (N g à y
ĩ
là
Sunday
(ch u
259
Chương 2: Để các Q uery iàm phép toán
Vưọrỉ n g o à i r a k h ỏ i s ò h ọ c ctf bản
P h ầ n đ ầ u c ủ a c h ư ơ n g n à y đ ã n ó i v ề c á c h sử d ụ n g c á c to á n t ử +,
và / tro n g
c á c b iể u
th ứ c
*
đ ê t h ự c t h i s ố h ọ c đ ơ n g iả n . N h ư b ạ n b iê t ,
k h ô n g p h ả i t ấ t c ả p h é p t o á n đ ề u đ ơ n g iả n n h ư t h ế . M ộ t s ố p h é p t o á n
đ ò i h ỏ i n h iề u h ơ n c ả p h é p c ộ n g , p h é p t r ừ . p h é p n h â n v à p h é p c h ia .
A c c e s s c u n g c ấ p n h iề u h à m
t o á n h ọ c v à t à i c h ín h đ ể g iú p b ạ n x ử lý
p h ó p tn á n p h ứ c tạ p hơn. N hữ ng- h à m
n à y f ĩề u t h a o t á c t r ê n
cá c số. V í
d ụ , c á c h à m p h é p t o á n b a o g ồ r a C o s O { c o s in e A T a n O ( t a n g e n t ) , v à A t n ( ;
(a rc ta n g e n t),
phòng
q u e ry . C á c h à m
hờ
bạn
cần
là m
phép
lư ợ n g
g iá c
học
tro n g
các
t à i c h ín h b a o g ồ m n h ừ n g th ứ c h ẳ n g h ạ n n h ư I R R O ( tỉ
s a ấ t l ợ i n h u ậ n n ộ i t ạ i ) , F v ( ) { g iá t r ị t ư ơ n g la i) , D d b O ( k h ấ u h a o g ấ p đ ô i
t ỉ lệ s ố d ư g iả m ) . C ó t h ể b ạ n k h ô n g c ầ n c á c h à m t à i c h ín h t r ừ p h i c ô n g
v iệ c c ủ a b ạ n c ụ t h ể đ ò i h ỏ i c á c lo ạ i p h é p t ín h đ ó . T h a y v ì li ệ t k ê t ấ t c ả
hàm
c h o p h é p b ạ n là m
đ ể g iú p D ạ n c ả m n h ậ n
p h é p t o á n sỏ’ h ọ c , b ả n g 2 .2 l i ệ t k ê m ộ t v à i v í d ụ
đ ư ợ c c h ú n g là m
v iệ c n h ư t h ế n à o .
Bảng 2.2 Các v í lỉụ vể các hàm toán liọu và hàm tà i chính cài sẩn
H i m ' à C 'í j h á p
Trả về
Ví dụ
A js(n u m b er)
G iá t r ị tu y ệ t đối (các s ố âm
ch u y ến đồi íh ã n n các sô’
dương).
A bs(-l) t r ả về
í n t (Q u m b er)
P h ầ n s ố nguyên của m ột số I n t (99.9) t r ả về 99
R o u n d d .5 6 7 8 9 , 2) tr ả về 1.57
G iá t r ị sô n u in b er được
l à n tr ò r th è n h inị t hàng'
c h ữ .‘j ố tliậ p i-hầrỉ x ic địnli
(decim als).
i^mU.05S/12, 3u* i2 . -bOOOO)
K ĩioán tn a n h toán treii
t r ả về 293.3763 (khoảii th a n h
m ộ t k lio ả n vay hoặc
U K -n k - i r .
to an trầ n niộ: k h 'jà-i /ay
$50.000 trồ n 30 n ă m vơi lãi
su ấ t 5.8%).
R ound(nuraber
í,il !C Ìniil.‘' 1.'
pjnt{rau-., Iiper,
pv[, fvl , typeJ1)
Mế»j
i đ n oư<,’c ỉr^v '^ ió p
hõ4 n liớ ix^n
CẾ
vé
[>ó'l kiị
íìòiT»
\ịìể tìm Iđ l cồ cki tiế f mồ
froi>9 [ Ì A p i e s ỉ k n B u iM c r ,
cầ rì
Irc n q liệ iíiỂnq H elp.
Đ ịn h d ạ n g c á c s ố tín h toán tro n g c á c query
K h i bạn
tạ o
m ột bảng
và
đ ịn h
n g h ĩa
m ộ t trư ờ n g
là
lo ạ i d ữ liệ u
N u m b e r , b ạ n c ó t h ể c h ọ n m ộ t đ ịn h d ạ n g , c h ẳ n g h ạ n n h ư C u r r e n c y đ ể
h iể n t h ị s ố đ ó . T r o n g m ộ t q u e r y , b ạ n k h ô n g đ ịn h n g h ĩa s ẵ n lo ạ i d ữ liệ u
c ủ a m ộ t trư ờ n g . S ố x u ấ t h iệ n n h ư là k ế t q u ả c ủ a p h é p t ín h th ư ờ n g đ ư ợ c
h i ể n t h ị d ư ớ i d ạ n g m ộ t sô ” G e n e r a l - k h ô n g d â u đ ô l a , k h ô n g s ố h à n g c h ữ
s ố t h ậ p p h â n cô^ đ ị n h .
260
Chướng 2; Để các Query làm phép toán
H ìn h 2 .5 m in h h o ạ m ộ t q u e r y d ự a v à o m ộ t b ả n g g iả t h u y ế t c ó t ê n là
Loan
S c e n a r io s .
c e n ta g e ra te
Bên
tro n g
- t ỉ lệ p h â n
bảng
trả m
Loan
S c e n a r io s , A P R
h à n g n ă m ) là
(a n n u a l p e r-
m ộ t trư ờ n g N u m b e r v ớ i
t h u ộ c t ín h P o r m a t c ủ a n ó đ ư ợ c x á c lậ p s a n g P e r c e n t . T r ư ờ n g L o a n A m o u t
là m ộ t trư ờ n g N u m b e r v ớ i th u ộ c t ín h F o r m a t c ủ a n ó đ ư ợ c x á c lậ p s a n g
C u rre n cy .
N hững
q u e ry (k h u n g
đ ịn h
xem
này
m ang
sang
D a ta s h e e t củ a q u e ry ).
M o n t h ly P a y m e n t t ín h
c ó d ấ u t iề n
dạng
tro n g
Nhưng
các
kết
kết quả
quả
của
của
trư ờ n g
t o á n h iể n t h ị d ư ớ i d ạ n g m ộ t s ố G e n e r a l k h ô n g
t ệ , k h ô n g c ó c á c d ấ u p h ẩ y v à n h i ề u số^ n ằ m
b ê n p h ả i dếu
t h ậ p p h â n , n h ư b ạ n t h ấ y ở n ử a d ư ớ i c ù a h ì n h 2 .5 .
Đ ịn h d ạ n g t ỉể n tệ ( c u r r e n c y )
bènọ
tro n g
Đ ịn h
d ạ n y
p h ẩ n trả m
(p e rce n t) tro n g
bàng
Trư ờ n g
t ín h
to á n
Mi! „
rttiộ g g
M.) rttM » 1) n t r t ỉTìi i
Lo «vAf\» J1J
Ti&k'
J { tcft'íj *J ĩ i
. 8 á f i s < e n a '> j
-
k^J
CArp-u
cr
!
APR
•
Yeơỉs
L o ứ n A rn o íim •
|s.s%
15
SlOO-000
7.0 %
30
$100.000
6.3H
lit
$ 1 50.000
1306.661 047 94 60 5
7.0%
6,5%
7.0%
30
S150.00C
957.95374276S 774
15
$200.000
1742.21473059473
30
$200,000
J330.60*199035S36
87 1 .10 73 652 97 36 6
Hình 2.5: Các trường tínỉi toán thường hiển thị bằng dịnh dạng sa' G eneral.
Bạn
có t h ể
đ ịn h
d ạ n g m ộ t trư ờ n g t ín h
to á n
sao c h o k ế t q u ả x u ấ t
h iệ n t r o n g đ ịn h d ạ n g C u r r e n c y b ằ n g h a i c á c h . N ế u b ạ n d ự đ ịn h tạ o b ấ t
k ỳ f o r m h o ặ c r e p o r t d ự a v à o q u e r y n à y , b ạ n c h ỉ v iệ c ìư u q u e r y v à q u ê n
đ i v iệ c
dựa vào
đ ịn h
q u e ry , b ạ n
th ư ờ n g là m
t ín h
d ạ n g trư ờ n g . S a u đó k h i t h iế t k ế m ọ t fo rm
tạ o
m ột
c o n tro l ch o
trư ờ n g
t ín h
h o ặ c re p o rt
to á n
như
ban
v ớ i b ấ t k ỳ trư ờ n g k h á c tr o n g q u e ry . S a u đ ó x á c lậ p th u ộ c
F o r m a t c ủ a c o n t r o l đ ó s a n g đ ịn h d ạ n g C u r r e n c y t r o n g f o r m
hoặc
Chương 2: Để các Query làm phép toán
re p o rt- D ũ
______ ________________________ 261
] í ệ u t r ô n g g i ó n g n;.iL. I i h ử i i g g i o ạ n m o n g . n u ô n t i o n g
f o im
h o ặ c re p o r t. v à b ạ n k h ô n g c ầ n p h ả i v ọ c sử a q u e rj' n ữ a .
T h a m k h á o chéo
X em ch ư ơ ng 1 củ a p h ầ n IV ẩ ể biếc clìi tiế t về v iệc tạ o c á c fo n n và
rep o rt. X em p h ầ n về v iệc x ác lập các th u ộ c tín h c o n tro l tro n g chương
2 c ủ a p h ầ n IV đ ể b iế t c h i tiế t về v iệc đ ịn h d ạ n g c á c controỉ.
( T u v ý '., n ế u b ạ n k ỉ i ô n g c ó ý đ ị n h t ạ o b ấ i k } ' í o r m
và o q u e ry th ì b ạ n
đ ịn h
dạng
có th ể
sử d ụ n g m ột tro n g
d ữ liệ u . C á c h à m
h o ặ c re p o rt dựa
các h à m
c h u y ể n đ ổ i đ ư ợc liệ t k ê
chuyển
đổi để
t r o n g b ả n g 2 .3 .
C h ú n g đ ề u có t h ể t r u y c ậ p đ ư ợ c q u a h ạ n g m ụ c C o n v e r s io n c ủ a ío ld e r
B u ilt - I n
th è
P u n c t io n s
nhấp
m ộ t tê n
tro n g
hàm
E x p r e s s io n
chuyển
đổi
B u ild e r .
L rong
N hư
cộ t th ứ
B u ild e r , v à s a u đ ó n h ấ p n ú t H e lp đ ể b iế t t h ê m
th ư ờ n g
ba
của
lệ , b ạ n
có
E x p r e s s io n
th ô n g t in v ề h à m .
Bảng 2.3 Các hàm chuyển đấi cài săn chính
L o ạ i b iể u th ứ c
Hàm
L o ạ i trả về
c ó t h ể r h â 'p n h ặ n
B o o le a n
C B o c I ( o x p r e s s io n )
S t r in g h o ặ c n u m b e r
c
N a n ib e r
C C ư r ( e x p r e s s io n )
N um ber
C u rre n c y
C D a t e ( t ìx p r e s s io n )
D a te / T in * e
D a te
C D b l( e x p r e s s io n )
Num ber
D o u b le
C D i c (a x p ie :.s :O i* )
S u n .h v .r
D « ;c im a l
C iiiU t ỉX ] > r o s s io n j
S ố n g u y ê iỉ cố t ù - 3 2 ,7 6 8
in t e g e r
vù 0
đ o n 2í35
B y te
đ ế n 3 2 7 fi7
C L n g ( e x p ie s s io u )
S ố nguyên
Long
C:’ìUq:( Ỉx^)r ?s5i*>r. >
N um ber
Rir.g)e
Slr( expr»^s s io n )
B ấ t kỳ
S t r in g
C V a A e x p r e s s io n ;
Bất kỳ
V a r ia iit
f íẵ y
c
c
d iệ n
nghĩ về
cho
chữ đẩu
tro n g tê n củ a
" C o n v e rt to ” (ch u y ể n
" C o n v e rt to
m ối
đ ổ i th à n h ). V í
hàm
chuyển
dụ, C C u r có
đ ố i là
đại
n g h ia
là
C u rre n c y ".
lo n * ' 4
-------------------------------------------------------------------------------------M đ ij r.đn ik ộ n L iii Siỉ
liệ u c ũ n q níiư d iệ n mQo cJa Irưònc) iíi> li io đ n . X đ c liịp ể ịn li d ọng
cJa
Ipưdng iín h lo ó n tponq m ệ t íoPiTỉ koộc P€pOỉ*t iịìOiẬ vl ipực liế p
i^ c n q quePkị 1Ỉ)Ì líiư ò n q dề kcn.
M ẹ o q u a n t r ọ n g l à đ ặ t t o à n b ộ b iể u t h ứ c ( b ấ t c ứ n h ữ n g g ì n ằ m
bên
p h ả i tê n trư ờ n g v à dấu h a i ch ấ m ) b ê n tro n g các d â u n g o ặ c đ ơ n củ a h à m
262
Chương 2: Dể các Query làm phép toán
c h u y ể n đ ổ i t r o n g lư ớ i Q B E . V í d ụ , đ ể h iể n t h ị t r ư ờ n g M o n t h ly P a y m e n t
t ừ q u e r y L o a n S c e n a r io s m ầ u d ư ớ i d ạ n g d ữ liệ u C u r r e n c y , t o à n b ộ b iể u
th ứ c p h ả i ch ứ a b ê n t r o n g
dấu ngoặc đơn
C C u rO
n h ư t r o n g b iể u
th ứ c
sau đây;
M onthlyPaym eíit: CCur( Pm t([APR]/12. [Years]’ 12, - [LoanAmount]))
H ìn h
2 .6 m in h
h o ạ k ế t q u ả c ủ a v iệ c s ử d ụ n g C C u r O
tro n g c o n tro l
t í n h t o á n M o n t h ly P a y m e n t đ ể h iể n t h ị k ế t q u ẩ c u a b iể u t h ứ c b ằ n g đ in h
d ạ n g C u rre n c y .
T rư ờ n g tín h to á n
162.
riekt voị
:«ifi ictr>*ne
f«cir
V 'lim
I 0 Mf>r
í . W í w i i h >í c í . / i H r a i y d ỉ i i / i
l0Ar&fmi'i9
•;» ị /
.
»
I>
tí
ỊC
bd
'l
(
c t HỊ i
Ị"!
I
«r.
•r
APR
Vears
• lồ ề n A m o jr\\ • M o n th tly P a y m e n t •
15
$100,000
$871.11
$100,000
$665.30
6.s%
ÍC
li
S15C CDO
0 l,3 ’:tó.ữ6
7 .0 ^
30
$150,000
S997.95
6.5%
15
S200.000
$1.742.21
7.0%
v>
S2DO.OOC
S l.33 0.61
7.0%
------- L ......
M o n th ly p a y m e n t (kh o ản th a n h to á n h à n g
th á n g ) tro n g k h u n g xe m d a ta s h e e ỉ
Hình 2.6; Các phép tính Monthíy Paytìienỉ ỡưực thể hiện bằng định dạng Currency.
T rá n h c á c vân đ ề v ớ i n h ữ n g giá trị rỗng
^ Đ ô i^ k h i m ộ t t r ư ờ n g t r o n g
m ộ t re c o rd
có th ể rỗ n g
bởi vì không ai
tư n g g o n h ạ p b â t k ỳ t h ô n g t in n à o v à o t r ư ờ n g đ ó. T ê n c h ín h th ứ c đ ư ợ c
s ử d ụ n g đ ể m ô t ả g iá t r ị c ủ a m ộ t t r ư ờ n g t r ố n g là n u ll. N ế u m ọ t tr ư ờ n g
k h ô n g c h ứ a g ì c ả , c h ú n g t a n ó i r ằ n g n ó c h ứ a m ộ t g iá t r ị r ỗ n g ( n u ll)
C á c p h é p to á n k h ô n g tự đ ộ n g x e m
m ộ t g iá t r ị r ỗ n g là 0 { z e ro )
Nếu
b ấ t k ỳ t r ư ờ n g t r o n g r a ộ t t r ư ờ n g t ín h t o á n c h ứ a m ộ t g iá t r ị r o n g t h ì b a n
th â n
b iể u
th ứ c c ũ n g t r ả
v ề g iá
t r ị rỗ n g . T r o n g h ìn h
2 .7 , t r ư ờ n g t m h
to á n
S u b T o t a l n h â n n ộ i d u n g c ủ a t r ư ờ n g H o w M a n y v ớ i t r ư ờ n g P r ic e .
263
Chướng 2: Đ ể các Ouery làm phép toán
T r o n g c ã c k ế i; q u j
q u e r > c ư ợ c m i n h h o d 3 cuô"i h ì n h
2 .7 , b â t k ỹ ' t r ư ờ n g
c ó m ộ t g iá t r ị r ỗ - ig t r o n g t r ư ờ n g H o w M a n y h o ặ c P r í c e
v ớ i m ộ t g iá
c ũ n g k ê t th ú c
t r ị r ồ n g t r o n g t r ư ờ n g S u b T o t a l.
Sừ dụng hàm
ze ro . N h ữ n g
N z ( ) đ ế c h u y ể n đ ổ i m ộ t g iá t r ị r ỗ n g t h à n h m ộ t g iá t r ị
g ì N z ( ) t h ậ t s ự c ó n g h ĩa là
r ỗ n g t h ì h ă j’ là m
" n ế u t r ư ờ n g c h ứ a m ộ t g iá t r ị
c h o g iá t r ị đ ó t r ở t h à n h m ộ t g iá t r ị z e r o v à là m
phép
t in h s ử d ụ n g z e r o đ ó ". Đ ê ’ s ử đ ụ n g h à m N z (), đ ậ t to à n b ộ tê n trư ờ n g b ê n
tro r.g c ã c
dồJ
ngoặc
d o n câa
lià . n . T io ) ig
l. ìu h
2 .8 , t r ư ừ n g t ín h
tc á n
đ ư ợ c c h ỉ n h s ử a s ử d ụ n g b iể u t h ứ c s a u đ â y ;
SubTotal: Nz( [How M anyj ) * Nz( [Price]
T rư ờ n g
/
t ín h
to á n
ìũ
HowKfa'iy
Pt:c«
Ho v í/a r i.
Null v»lu« D
Nuli
D«mo
T d tle ;
Sorti
Shộ.y.
ị
t4l
1di
V«1UC O tm o
p]
or.
í. ^
3
Siao.oo
1
S30.00
MlO.ỈO
ỉ
IX
10
ÍÌO .Q Q
*
K ế t q u á t ín h t o á n
rố n g
Hình 2.7; Các trường rỗng Irong mộỉ bảng làm cho các ptiép tinh trên các trường dó
cũng rồng.
T ro n g k h u n g xem
D a t a s h e e t c ủ a c ù n g m ộ t q u e r y đ ó đ ư ợ c m in h h o ạ
ở c u ố i h ìn h 2 .8 , c á c r e c o r d c h ứ a m ộ t t r ư ờ n g H o w M a n y h o ặ c P r ic e r ỗ n g
d ẫ n đ ế n m ộ t k ế t q u ả z e r o t h a y v ì r ỗ n g t r o n g t r ư ờ n g S u b T o t a l. Đ ó
c o n tro l t ín h
to á n
đ ư ợ c c h ỉn h
ze ro th a y v ì k h ô n g ^
trư ờ n g rỗ n g .
là
do
s ử a y ê u c ầ u A c c e s s s ử d ụ n g m ộ t g iá t r ị
c ả ( m ộ t g iá t r ị r ỗ n g ) đ ể là m
p h é p to á n k h i m ộ t
264
Chương 2: Để các Q uery làtn phép toán
T rư ờ n g tin h to á n đưỢ c c h in h s ử a
N v il
O ^ R ÌÍi
V ro
Hi)wM«ny
P r ic «
fielđ*
Tabf«:
s©ít.
H o w M ỉn y
P ttĩt
NgH v«(ue D
rjull v»(«< Dimo
S u b T o U k M z ịỉH o v .M & n y ]i* N 2 4 P fic « í)
E
EI
Shỡw:
Crỉt«
.T .
t_£
0
or
L____ i
■t.Zv
«’ I
i!
5
1
2
SuuToUÌ
tix.oc
- ii
ICC
0
0
30
S30.00
SiOO.CO
SĩO.OO
700
c
K ết quả
đ ư ợ c t ín h
to á n
Hình 2.8: Hàm Nz() ỉrong control tính toán buộc Access sử dụng các giá trị zero thay vì
các giá trị rỗng aể tinh một kết quả.
Thủ thuật
Nếu bạn muốn cột th ứ ba trong hình 2.8 thế hiện các kết quả bằng đ ịn h dạn^
Currency ($100.00, $0.00, $0.00,...), đật toàn bộ biẩJ thức troníỊ m ột hàm CCurO
chẳng hạn nhưSubTotaỉ: C C ur' N 2 ([H ow M anyl) • N z ([P ric e ])l
B ạ n c ũ n g có t h ể s ử d ụ n g h à m
( X e m p h ầ n s a u " T e s t đ ể t ìm
th ê m
I s N u llO đ ể t e s t t ìm
m ộ t trư ờ n g rỗ n g .
c á c trư ờ n g rỗ n g " t r o n g c h ư ơ n g n à y đ ể b ie t
t h ô n g t in ) .
C á c p h é p tín h n g à y th á n g v à thòi gìcin
Các hàm
D a te
và
T im e
c à i sẵ n th a o tá c t r ê n
d ữ liệ u
đ ư ợ c lư u t r ữ
t r o n g c á c t r ư ờ n g D a t e / T im e . B ạ n c ó t h ể t h ự c t h i m ộ t s ố p h é p t ín h
b ả n đ ư ợ c g ọ i là c á c p h é p t ín h
số h ọ c
cơ
n g à y th á n g trê n c á c n g à y th á n g sử
đ ụ n g c á c t o á n t ử + ( p h é p c ộ n g ) v à - ( p h é p trừ ) đ ơ n g iả n . C á c p h é p t o á n
s ố h ọ c n g à y th á n g tu â n th e o h a i q u y tắ c cơ b ản :
# /Vềíí bạn tr ừ b a i n g à y tháng, bạn có được m ộ t s ố b iểu th ị sô'
» g à y g iữ a h a i n g à y tháng đ ó . V i í/ụ, 1 / 1 5 / 2 0 1 0 - 1 / 1 / 2 0 1 0 t r ả ĩ>ề
14, bởi vì có 14 ngày giữa 15 tháng giêng m 1 thảng giêng.
^ Nếu bạ n cộng m ột s ố vớ i hoặc lã ỳ m ột n gày th á n g tr ừ ch o m ột
5 ^ b ạ n có đtỉỢc m ột ngày tháng m ới t h a y v ì m ộ t số. N gày tháng
265
Chương 2: Đê’ các Oụery làm phép toán
mới ứó là ìip/iy
cách n
tư n ịà y ibdng goc 0
iKỢng tiiờig cho số ỉỉỉ’àv mà hạn cộ)ìg h(jặc írừ). Ví dụ, ĩ/ĩ/2 0 1 0 +
ịO trả về 1 / Ỉ Ĩ / 2 0 Ỉ 0 Ixhi ri 3 1 ibáng giông là 3 0 ngày san ngày ĩ
thớug ^iẽng.K ết quả của 12/31/2000-999ià 4/7/1998, bởi i'ì ngay 7
Ih á n q tư. 1 9 9 8 là 999 n g à y lrìió c 12/3T/2000.
H ìn h 2 .9 m in h h o ạ m ộ t q u e ry m ẫ u s ử d ụ n g m ộ t p h é p s ố h ọ c c ơ b ả n
tro n g
các
trư ờ n g
S t a r .. D a le
t ín h
to á n
q u e ry . T ro n g
bảng
v a E n d D a c e đ ư ợ c đ in h n g h ĩa lả
bên
d ư ớ i, c á c
trư ờ n g
lo ạ i d ữ liệ u D a t e / T iin e
vVỚ i
đ ịn h d ạ n g S h o r t D a t e ) . T r ư ờ n g t ín h t o á n đ ầ u t iê n l à b iể u t h ứ c s a u đ â y :
DaysBetween: [EnđDate] • (StartDate
v à t í n h r c i h i ể n t h ị s ố n g à y g i ữ a g iá t r ị S t a r t D a t e v à g i á t r ị E n đ D a t e
tro n g m ỗ i re c o rd . T rư ờ n g t ín h
t o á n E x t e iid e d D a t e ;
ExtendedDate- [EnđDate] + 15
c ộ n g 1 5 n g à y v ớ i b ấ t k ỳ n g à y t h á n g n à o đ ư ợ c lư u t r ừ t r o n g t r ư ờ n g
T n d D a te .
Nửa
dư ới của
k h u n g x e rn D a ia s h e e t
S i, a r t D a t €
\à
1 5 r g.'Ly s a i
xem
2 .9 m in h
hoạ
các k ế t quả
C ộ t Đ a y s B e t v e e n t h ế h iệ n
q u e ry tro n g
s ố n g à y g iữ a g iá t r ị
g iá t r ị E n d D a t e . C ộ t E x t e n d e õ D a t e t h ể h iệ n n g à y t h á n g
-Ạ ì
c á c trư ờ n g t ín h
K h u n g
h ìn h
t r ị E n d D a te
n h i: ' đ ư c;c x á (
( lịn h
} i ằ a g b i ổ u t h ứ c t)-oag:
to á n .
D e s ỉg n
'HiitCiU
D«1«
T ỉ& le
P9r
Cỉ>í5ft/'ệ
tn i
Sosị
iriữw:
□
n
ĨE
C n t« n a
or
£nố
Ịl/ 1 /2 0 0 7 A
• y â v !3 e :
1/’1V ?0 0 7
u
Ự 3 C /Ỉ0 0 7
X/ÌC/2CC7
1/2C /:0C 7
10
Ỉ /Í /2 0 C 7
L/2:/2CC
ư 3 :/:o a ?
ncổ
2/15/20C7
S/ỈC /20C 7
210
9/14/2007
ỉ€5
l/ie /2 Ũ iC
in ỉ2 0 C 7
1,
ĩ/:c c s
1/1/2CC5
ì
:/31/2C C S
l/i/2 0 1 0
1/15/2CC9
*
K h u n g
xem
D a ta sh e e t
Hình 2.9 Các trường tính toán mẫu với các hàm Date trong một query Irong khung xem
Design và khung xem Datasheet
266
C hương 2: Để các Query làm phép toán
Sử d ụ n g c á c n g à y th á n g và thời gian trự c k iệ n tro n g c á c biểu thức
K h i v iế t c á c b iể u t h ứ c b a o g ồ m c á c n g à y t h á n g , b ạ n c ó t h ể s ử d ụ n g
c á c n g à y t h á n g t r ự c k iệ n t r á i v ớ i t ê n c ủ a t r ư ờ n g c h ứ a m ộ t g iá t r ị D a te /
T im e . N g à y t h á n g t r ự c k iệ n
là
n g ày th á n g
k h ô n g đưỢ c
\ưu
trữ tro n g
m ộ t trư ờ n g n à o đ ó - n ó c h ỉ là m ộ t t r ư ờ n g r iê n g b iệ t m à b ạ n v ẫ n m u ô n
s ử d ụ n g t r o n g b iể u t h ứ c . N h ư n g b ạ n k h ô n g t h ể c h ỉ v iệ c g õ n h ậ p n g à y
t h á n g s ử d ụ n g m ộ t đ ịn h d ạ n g h à n g n g à y n h ư 1 2 /2 1 /2 0 0 5 b d i v ì A c c e s s
h iể u n g à y t h á n g đ ó là " 1 2 c h ia c h o 3 1 , c h ia
2 0 0 5 ". B ạ n
dụng các dấu ngoặc k é p b ở i v ì các dấu n g o ặc k é p
đ ịn h n g h ĩa t e x t t r ự c k iệ n . T h a y v à o
đó b ạn
k h ô n g th ể sử
đó được sử d ụ n g để
p h ả i s ử d ụ iig k ý t ự # đ ể
p h â n c á c h (b a o q u a n h ) m ộ t n g à y t h á n g t r ự c k iệ n .
V ì d ụ , # C 1 /0 1 /2 0 0 5 # t h ậ t s ụ là c h á n g g iê n g , n g à y O í, 2 0 0 5 . B iể u t h ứ c
# 0 1 /0 1 /2 0 0 õ #
+ 14 v rả
về
i/ i5 / 2 0 0 5 ,
n g à y th á n g
vôn
là
14 n g à y sau
t h á n g g iê n g n g à y 1, 2 0 0 5 . b iể u t h ứ c # 3 /3 1 /2 0 0 5 # - # l/ l/ 2 0 0 5 # t r ả v ề 8 9
b d i v ì t h á n g 3 n g à y 3 1 , 2 0 0 5 là 8 9 n g à y s a u t h á n g g iê n g n g à y 1, 2 0 0 5 .
Đ ể b iể u d iễ n m ộ t t h ờ i g ia n t r ự c k iệ n , s ử d ụ n g c á c d ấ u h a i c h ấ m
t á c h b i ệ t c á c g iờ , p h ú t v à g i â y g iữ a c á c d ấ u p h â n
t h ể t h ê m m ộ t k h o ả n g t r ố n g th e o s a u là A M
t h ậ t s ự là
7 :3 0 A M
OOPM # ám
(:)
c á c h #. B ạ n c ũ n g c ó
h o ặ c P M . V í d ụ , # 7 : 3 0 ÍO O #
n h ư #7: 3 0 ; 0 0 A M # . T h ờ i g ia n
t r ự c k iệ n
#7' 3 0 '
c h ỉ đ ế n 7: 3 0 đ ê m . B ạ n c ũ n g c ó t h ể s ử đ ụ n g t h ờ i g ia n q u á n
sự : t h ờ i g ia n t r ự c k iệ n là # 1 9 : 3 0 ; o o # c u n g là 7 :3 0 P M
Sử d ụ n g c á c h à m n g à y th án g/thờ i gian
Bạn
không
g iớ i
hạn
c h ỉ tro n g s ố h ọ c n g à y th á n g cơ b ả n tro n g A c
c e s s . C ó r ấ t n h iề u h à m
n g à y t h á n g / t h ờ i g i a n Q a t e / T i m e ) c à i s ă n tron?>-
A ccess m à b ạ n
s ử d ụ n g đ ể x ử ìý
có th ể
các n g à y th á n g
v à t h ờ i g ia n
b ă n g n h ữ n g cách kliác. N h ư vói Lất cả h à m c ã i s ẵ n , b ạ n có t h ể tìm th â y
c á c h à m D a t e / T im e t r o n g E x p r e s s io n B u ild e r . L ầ n n ữ a n ế u ío ld e r P u n c t io n t r o n g c ộ t t r á i có m ộ t d â u + k ế b ê n n ó , n h ấ p d ấ u + đ ó đ ể m ở r ô n g
d a n h s á c h . S a u đ ó n h ấ p f o ld e r c o n B u ilt - I n
P u n c t io n t r o n g c ộ t t r a i v a
h ạ n g m ụ c D a t e / T im e t r o n g c ộ t g iữ a . S a u đ ó n h ấ p t ê n c ủ a b ấ t k ỳ h à m t ừ
c ộ t p h ả i v à n h ấ p n ú t H e lp
Bảng
2 .4
liệ t
kê
đ ể b iế t c h i t iế t v ề h à m .
m ột số hàm
D a t e / T im e
t r ìn h b à y c á c v í đ ụ v ề v iệ c s ử d ụ n g c h ú n g .
th ư ờ n g
được
sử d u n g và
267
Chương 2: Để các Query làm phép toán
Bảng 2.4 Cáu v i Uụ vè các
h jiT <
Access O ateTim e
V í dụ
Trả v ề
H àm và cú p h áp
D ateí')
N g à y th á n g h iện 1 in h
T r ả về n g à y th á n g h iện
h à n h th e o đ ồ n g hồ cùa
m áy tín h
TimeO
T hờ i g ia n h iện h àiih
T rả về th ờ i gian h iện h àn h
th e o Jồ n g hồ oủa m áy tứ ;h
Now{)
N g à y th á n g và th ờ i gian
h iệ n h à n h
T r ả về n g ày ứ iá n g và th ờ i
g ian h iệ n h à n h th eo đồng
h ồ của m áy tín h
C d ate (expression)
C h u y ể n d ổ i e x p re s s io n
v ố n có th ể lả b ấ t kỳ chuỗi
tr o n g g iô n g n h ư m ột ngày
t h á n g t h à n h m ộ t giá trị
D at& T im e th ậ t sự
C D ate ("M ar 31, 2004) tr ả
vồ 3/31/2004
D a te /.d d ;iiite rv a l num - N g à v t h á i i g vô'a là aô’
t e r , d a te )
(n u m b e r; n g a y , tu ầ n ,
théniT ^ ip io r''a l) từ Bgày
th á n g (d ate)
D ateA dd ("ni", 14, #1/1/
20 0 4 # ) t r á về 3/1/2005,
n g à v t h á n g v ố n lồ 14
t h á n g sa u t h á n g g ié n g
ngày 1, 2004
D ateD ifT (interval, d a t e l , S ô'giờ, tu ầ n , ng ày (interi fir .« td a y o f'V fek viltgÃữ^ihai r’g;\y tbáng
D ateiíT ("w", # l/l/2 0 0 $ # ,
#l/’l/^ 0 0 6 # )trả ’'ề 5 2 b d iv ì
có 52 tu ầ n giữa h a i ngày
th án g .
r . r ir P t w e o k o f y e a r l] )
D .iy (d ate ;
N g ày của tliá n g dưứi dạjig D ay (#1'15/2004#) tr á về 15
m ột sô'piữ a 1 và 31
bởi vì 1/15/2004 rơ i vào
n gày lí i5 cùa tháiig.
H our (tim e)
G iờ của m ộ t th ờ i girm
H our (Now()) tr ả vế m ột số
tư ợ ng trư íig cho giờ h iệ n
h à n h của ngày.
M onthNaine^m ontíxNum b e r,a b b re v ia te )
T h á n g cùa m ột ngày thíúig
được v iế t r a dầy đù (nếu
a b b re v ia te là false), được
v iế t t ắ t (nếu abbreviate là
tru e).
M o n th N a m e (12, F a ls f)
trả
về
D ecem ber
M onthN arne (12, True) trả
về Dec (bdi vì th á n g 12 là
th á n g th ứ 12 của năm ).
N hư bạn
t h ấ y t r o n g b ả n g 2 .4 , c á c h à m
p h é p b ạ n x á c đ ịn h
D a te A d d O
và
m ộ t đ ố i s ô ' i n t e r v a l . Đ ô "i s ô ' đ ó đ ị n h
D a t e iíĩD
cho
n g h ĩa k h o ả n g
t h ờ i g ia n đ ư ợ c s ử d ụ n g c h o p h é p t ín h .
V í dụ, nếu b ạn
n g à y t h á n g , h iệ u
c h ỉ s ử d ụ n g s ố h ọ c n g à y t h á n g đ ơ n g iả n
g iữ a c á c n g à y t h á n g t ự đ ộ n g h iể n
đ ể trừ h a i
th ị dưới dạng số
2 6 8 __________________________________ Chương 2: Để các Query ỉàm phép toán
n g à y g iữ a h a i n g à y t h á n g đ ó . S ử d ụ n g h à m
D a te A d d O
h o ậ c D a t e if f t ) ,
b ạ n c ó t h ể t h a y đ ổ i đ iề u đ ó s a o c h o h iệ u g iữ a c á c n g à y t h á n g đ ư ợ c b iể u
t h ị b ằ n g g iâ y , p h ú t , g iờ , t u ầ n , t h á n g h o ặ c n ă m
- p h ụ th u ộ c vào cá i n ào
m a n g lạ i t ín h c h ín h x á c m à b ạ n cầ n .
Đ ể x á c đ ịn h đ ố i s ố k h o ả n g t h ờ i g ia n t r o n g m ộ t h à m
D a t e iff { ) , b ạ n
s ử đ ụ n g m ộ t t r o n g c á c x á c lậ p
D a te A d d O h o ặ c
(đ ư ợ c đ ặ t t r o n g c á c d ấ u
n g o ặ c k é p ) đ ư ợ c l i ệ t k é t r o n g c ộ t t r á i c ủ a b ả n g 2 .5 .
Bảng 2.5 Các xác iập trong ứõ'í sô' ínterval cho các hàm D a ỉe /ĩim e vô'n dốỉ hỏi một
khoảng thời gian (interval)
X á c lậ p
M ô tả
"đ"
D ay
"b "
'm '
M o n th
"n "
M in u t e
"q"
Q u a rte r
"s"
Second
"\vw ''
W eekday
"w w "
MM
W eek
"y y yy "
Year
D ay of year
X e m m ộ t v í d ụ s ử d ụ n g m ộ t k h o ả n g t h ờ i g ia n t r o n g m ộ t h à m D a t e if íl) ,
Nếu
không
2007#
trả
sử đ ụ n g h à m
về
D a t e if ỉ( ) , b iể u
th ứ c # 1 2 /2 5 /2 0 0 7 #
1, b ở i v ì c ó m ộ t n g à y g iữ a h a i n g à y
th á n g
- # 1 2 /2 4 '
đ ó " d a y " là
k h o ả n g t h ờ i g ia n m ặ c đ ịn h k h i t r ừ c á c n g à y t h á n g . M ặ t k h á c b iể u t h ứ c
D a t e i á : ’'h " . # 1 2 / 2 4 / 2 0 0 7 # , # ] 2 / 2 5 / 2 0 0 7 # - ( t r á v ề 2 4 , b ở i ' à
' ' h ’’ x á c đ Ị n h
c á c g iờ , v à c ó 2 4 g iờ g iữ a h a i n g â y t h á n g đ ó .
X ử lý T ext b ằ n g c á c b iể u thúc
B ạ n có th ể s ử d ụ n g n ộ i đ u n g của cá c trư ờ n g T e x t (c ò n đ ư ợ c g ọ i là cá c
c h u ỗ i ( s t r in g ) , d ạ n g v iế t t ắ t c ủ a " m ộ t c h u ỗ i k ý tự ") t r o n g c á c b iể u th ứ c .
K h i cộng, trừ , n h â n
h o ặ c c h ia v ớ i c á c c h u ỗ i k h ô n g h ợ p
lý .
S au cùng
S m it h t im e s J o n e s h o ặ c S m o t h d iv id e s b y J o n e s k h ô n g có n g h ĩa g ì c ả .
T u y n h i ê n , b ạ n c ó t h ể s ử d ụ n g t o á n t ử ( & ) đ ể g h é p ( n ố i l ạ i ) c á c c h u ỗ i.
V í d ụ , b iể u t h ứ c [ F ir s t N a m e ] &
[L a s t N a m e ] n ô i n ộ i d u n g của các
trư ờ n g L a s t N a m e v à P ir s t N a m e lạ i v ớ i n h a u . N ế u trư ờ n g L a s t N a m e
c h ứ a P in e s v à t r ư ờ n g F i r s t N a m e c h ứ a T o r i t h ì b iể u t h ứ c [ F i r s t n a m e ]
&
[ L a s t N a m e ] t r ả v ề T o r iP in e s .
T h ê m c á c k h o ả n g trố n g và o c á c b iểu thức text
Bạn
n ó i " T o r i P in e s
c ó k h o ả n g t r ố n g d g iữ a h a y k h ô n g ? " . Đ ố i v ớ i
b ạ n t h ì n ê n . N h ư n g đ ó k h ô n g p h ả i l à n h ữ n g g ì b iể u t h ứ c n ó i. B iể u t h ứ c
Chướng 2: Để các Query làm phép toán__________________________________ 2 6 9
n ò i rÀ n g ' G ắ n
B iể u
ih iíc
g ; á t r ị P i r s t ] \ a T i3 v è g ia t r ị L a s t N a m e l ạ i
vci
n h a u '.
k h ô n g P Ó i " v à đ ặ t m ộ t k h o á n g t r ô n g g iữ a c h ú n g " . C á c m á y
t í n h c ó V t h ứ c v ề t r ự c k i ệ n ; b ạ n v” ó t h ể d ễ d à n g g i ả i q u y ế t v ấ n đ ề n à y
b ằ n g v iệ c s ử d ụ n g t e x t t r ự c k iệ n .
T e x t t r ự c k i ệ n " l i t e r a l ’' l à b â t k ỳ t e x t k h ô n g t h a m
c h iế u đ ế n m ộ t t ê n
t r ư ờ n g h o ặ c h à m h o ặ c b ấ t c ứ t h ứ g ì k h á c v ô 'n c ỏ ý n g h ĩ a đ ặ c b i ệ t đ ô 'i v ớ i
te x t. Đ ể
s ứ d ụ n g t e x t trự c k iệ n
t r o n g m ộ t b iể u t h ứ c t r ư ờ n g t í n h t o á n ,
đ ạ t te x t, t i- c n g c á c d a u n g o ặ v; k f p
M ó t k l i o á n g t r o a í , l à n ^ ộ t k ý tụ ' • m ộ t
c ụ m t e x t t r ự c k i ệ n . D o đ ó h ã y lư u V đ iề u g ì x â y r a n ế u v i ế t l ạ i b iể u th ứ c
m ẫ u trư ớ c n h ư sau:
R rs t Name] & “ “ & [Last Name
K ế t q u ả ỉà
rằ n g
T o r i P in e s
có m ộ t k h o à n g trô n g
ở
g iữ a .
" n ộ i d u n g c ủ a trư ờ n g F ir s t N a m e th e o sa u là
m ột
B iế u
th ứ c n ó i
k h o ả n g trô n g
r ồ i đ ế n n ộ i d u n g c ư a t r ư ờ n g L a s t N a ir . e " .
I^ỉíllll lliio
<^ai òấ\j
'ei.ũ
KẲau
Cổ '(âsyỈMiứ tẰốK^ d ^iQa ÌA
MỘ: c à iổ i Có C-tlìầu ũ â ì Z£iữ Md I>è. Cđ Dản
ỉủ
c^.
Do õ ố tXũK^ iỉRi
^
& "" & f'.aĩt
tui c i wộ:
;-^ìvĩó RỈ-Í Tõiis ^tcAS, tiếí;
tHức E íiẰ S t ^ t ó ] & " " & [Lost KQitó.] íid ứí mộị tHíl qì đó ndu TbxiPtnes
(tón ưâ Họ 'ek>*Ể{ cứ Qịi ồ qiaa),
G iầ
s ứ m ộ t b ả n g c h ứ a c á c t r ư ờ n g C it y , S t a t e v à Z ip . B iể u t h ứ c s a u
(lây h ’OT t r ị tt'n t h è n h p h ò t h e o SÍ'U Ic- c’â'j o b â y VỀ n ẹ t k h o â n g t " õ i f ,
t h e o *^au !à tô n . t i p j b a n g . h a i. k h o a n g i; r ô n g r u i đ è n r a à Z I P
iC it,'] s
",
r* : S ‘ at3)
[:iF l
M ộ t v í d u v l b iể u t h ứ c t r ê n c ó th è ’ ir ò n g n h ư s a u .
LũS A n y e ie s , C A 9 1 2 3 4
Sử d ụ n g cát’ h à m T e x t của A c c e ss
A c c e s s c u n g c ấ p m ộ t sô' h à m
hạng m ạc T ext
vào m ộ t số h à m
ở
đ ể là m v iệ c . B ạ n t ìm
c ộ t g iữ a c ủ a E x p r e H s io n B u i l d o r
th ấ y ch ú n g tro n g
Phần
n à y tậ p tru n g
t h ư ờ n g đ ư ợ c s ử d ụ n g h ơ n v à t r ì n h b à y c á c v í d ụ v ề v iệ c
s ử d ụ n g c h ú n g . Đ ể b iế t t h ê m t h ô n g t in v ề c á c h à m
t e x t v à đ ể b iế t t h ê m
c h i t iế t , s ử d ụ n g n ú t H e lp t r o n g E x p r o s s io n B u ild e r . B ả n g 2 .6 li ệ t k ê
các h à m
T e x t p h ổ b iế n h ơ n .
270 ______________________________ Chưdng 2: Để các Q u e ry là m 3hép toán
Bảng 2.6 Các ví dụ vể các hàm text cài sấn
Hàm và cú pháp
Trả về
Ví dụ
L C ase(string)
s t r i n g được c h u y ển
th à n h chữ thường
đ ổ i L C ase(“A bcdEíU ”) t r ả về
ABCDEFG
U C ase(string)
s t r i n g được c h u y ể n
th à n h chữ'hoa
đ ổ i U C ase(‘‘A bC dE íG ”) t r ả v ề
ABCDEPG
L eíU string,n)
n k ý tự tậ n cùng b ê n tr á i L eft(“abcdefg'’, 3) t r ả VP
của s trin g (chuỗi)
abc
R ight{string,n)
n k ý tự tậ n cùng bên p h ả i R ig h t(“abcdefg’', 2) t r ả về
của s trln g (:;hjỗi)
fg
M iđ(string, s ta rtí, length])
C ác ký tự có ch iều d à i
Mid(“abcm nys”, 4 ,2 U rả VP.
( le n g t h ) v ừ a c ủ a c h u ỗ i b ắ t
mn
đầu tạ i s ta rt
L en(string)
chiều d à i của s trin g
L en(“H ow dy”) t r ả về 5
T rim (string)
s tr in g với b ấ t k ỳ k h o ả n g T rim (“abc”) t r ả về abc
trố n g dứng trước và đứng
sa u được xén đi
I n S t r ( [ s t a r t , ] s t r i n g l , Vị t r í cùa String2 tro n g In S lr ("a b c x đ e f, "x") t r ả
String2)
s trin g l b ắ t đầu tại s ta r t
về 4 (bởi vì X là ký tự thứ 4
tro n g s trin g l),
V iết c á c b iể u thức đ ư a r a q u y ết đ ịn h
M ộ t tro n g n h ữ n g h à m
a te If, ii íO
h ữ u d ụ n g n h ấ t tro n g A c c e s s là h à m
I m m e d i-
c h ấ p n h ậ n b a đ ố i s ố n h ư đ ư ợ c m in h h n ạ n h ư ?au:
\\t(conditionalExpression, ơoThis, elseDoThis)
tro n g
#
đó:
c o n d itio n a ỉ Expression là m ột biền thứ c d ã n đế n £ íà t r ị T n ie hoặc
False
ẫt doTbis là nh ữ n g g ì m à hàm trả I)ề nổu con dilio na lE xp ressio n chứng
m in h tà Tme.
elseDoThis là nh ữ n g g ì hàm trả về ìiế ii conditionaỉE xpression chứng
m in h là False
G iá t r ị c ủ a h à m iif ( ) là k h ả n ă n g n ó đ ư a r a m ộ t q u y ế t đ ịn h v ề n h ữ n g
g ì c ầ n t r ả v ề d ự a v à o t ìn h h u ố n g h iệ n t ạ i. V í d ụ d o a n h n g h iệ p c ủ a b â n
đ ò i h ỏ i t í n h t h u ế b á n h à n g 7 . 2 5 % c h o n h iữ n g c ư d â n N e w y o r k v à k h o n g
th u ế b á n h à n g c h o m ọ i n g ư ờ i k h á c . T rư ờ n g S ta te tro n g b ả n g b ê n dư ới
c h ứ a t iê u b a n g m à đ ơ n đ ặ t h à n g đ ư ợ c c h u y ể n đ ế n . B iể u
th ứ c sa u đ â y
Chương 2: Để các Query làm phép toán
n ó i ra n g
271
'n ế u t r J c n g S t a t e c h ứ a N V t h ì t r ả V t ì 0 . 7 . 2 5 % , n ê u k n ó n g t r ả
v ề 0 íz e r o ) " :
;if{[State]="l\IY’', 0.0725, 0)
V,
Chú
d iễ n 7 .2 5 %
t r o n g b iể u
th ứ c trư ớ c r ằ n g 0 .0 7 2 5
c h ỉ là
m ột cách
đ ể b iể u
là m ộ t sô' t h ậ p p h â n t h ô n g t h ư ờ n g ( x ó a d ấ u p h ầ n t r ă m
và
d ịc h c h u y ế n d â u t h ậ p p h â n s a n g b ê n t r á i h a i h à n g c h ữ sô ).
M ọ t VI riụ k h á c, c ủ d n á m ũ f l a m ộ t tr u ờ iig ]-’a id t r o n g m ộ t b ả n g là
m ộ t trư ờ n g Y e s /N o . M ộ t
trư ờ n g Y e s/N o
c h ỉ có th ể
chứ a
m ộ t g iá
trị
T r u e h o ặ c m ộ t g iá t r ị F a ls e . C h ỉ r iê n g t ê n t r ư ờ n g l à m ộ t b iể u t h ứ c có
đ iề u k i ệ n đ ầ y đ ủ t r o n g m ộ t h à m
iif ( ) n h ư t r o n g b iể u t h ứ c m ẫ u s a u đ â y :
iif([Paid], "R eceipt”, “ Invoice” )
B iể u t h ứ c n ó i r ằ n g " N ế u t r ư ờ n g P a ic l c h ư a T r u e ( h o ặ c Y e s ) , t r ả v ề t ừ
R e c e ip t . N ế u k h ô n g ( n ế u t r ư ờ n g P a i d c h ứ a P a ls e ) , t r á v ề t ừ I n v o ic e " .
T h ự c h iệ n c á c p h é p so sánh tro n g líf()
V c f - s s c u n g c â p m ộ t số ’ t o á n t ử s o s á n h đ ư ợ c s ử d ụ n g đ ể đ ịn h n g h ía
c<á(. b i c u
t liu c v ô n
trả về
n h ữ r ig g iá t r ị T r u e
h o ặ c F a ỉs e . C á c n ú t c h o
nhríng tc-án tử n à y x u ấ t h iệ n cùng vớ’ n h ữ n p t o i n tử số học íTong
E x p r e s s io n B u ild e r . B ả n g 2 .7 ra ô t ả c á c t o á n t ử s o s á n h A c c e s s .
Bảng 2.7 Các toán tử so sánh cài sến
T o á n tử so sá n h
Tên
Ý n g h ĩa
B ang
b à iig với
ĩ-
Lờn hớn
Lớn hơn
: =
<
L i'.n h .m h jặv ’ bằ,.ig
N hỏ hơ n
Lớ.i liơ.i lioác bàn g
N hô hơn
<=
.'íKó h(-n hoă.'
N hu hơ n lioạo bung
<>
Bet\vecn
KJiông b ằng với
Betwpfìn
K hông b ằ n g với
T ro n g ^ ãy
M ộ t v i dụ vồ m ột h àm
if f ( ) s ử d ụ n g t o á n t ử s o s á n h
>= đ ể đ ư a ra
q u y ê t đ ịn h v ề n ộ i d u n g c ủ a m ộ t t r ư ờ n g c ó t ê n là Q t y n h ư s a u :
iif([Qty]>=1ũ, "Dỉscount", "No discount")
B iể u th ứ c n à y n ó i r ằ n g
"N ếu
tr ư ờ n g Q t y c h ứ a m ộ t g iá t r ị lớ n h ơ n
h o ặ c b ă n g 1 0 t h ì t r ả v ề D is c o u n t . N ế u k h ô n g t r ả v ề N o d is c o u n t " .
Kết họỊ) c á c p h é p so sánh
B ạ n có t h ể s ử d ụ n g c á c t o á n t ử lo g ic c à i s ẵ n v ớ i A c c e s s đ ể k ế t h ợ p
m ộ t s ố p h é p s o s á n h t h à n h m ộ t b iể u t h ứ c v ố n d ẫ n đ ế n m ộ t g iá t r ị T r u e
h o ặ c F a ls e . C á c t o á n t ử lo g ic đ ư ợ c l i ệ t k ê t r o n g b ả n g 2 .8 .