24
Microsoft Access 2000 Ch-¬ng 4: Query Trung t©m Tin häc Trang 28 Chѭѫng IV: QUERY-TRUY VҨN DӲ LIӊU 4.1. Giӟi thiӋu: Query là công cө cho phép truy vҩn và xӱ lý dӳ liӋu, rút trích ÿӇ hiӇn thӏ nhӳng thông tin cө thӇ tӯ các Table và thay ÿәi dӳ liӋu bҵng nhiӅu cách khác nhau. Khҧ năng lý truy vҩn là mӝt bѭӟc quan trӑng trong viӋc xây dӵng ӭng dөng. Query là công cө khá ÿһc trѭng cӫa Microsoft Access, giúp bҥn nêu ra và ÿáp ӭng các yêu cҫu truy vҩn sӕ liӋu trên DBMS ÿӇ xem, sӱa và phân tích hay tәng hӧp sӕ liӋu dѭӟi nhiӅu hình thӭc khá phong phú. ĈӇ thӵc hiӋn Query, bҳt buӝc phҧi có Database và bên trong ÿó ÿã có mӝt hay nhiӅu Table. Sӕ liӋu thì ÿѭӧc lѭu trên Table, còn Query là công cө ÿӇ tìm và nhìn sӕ liӋu dѭӟi nhiӅu góc ÿӝ khác nhau, và có thӇ khi nhìn sӕ liӋu qua Query, bҥn thӵc hiӋn các thao tác sӱa chӳa thì các sӱa chӳa ÿó lҥi có hiӋu lӵc ngѭӧc lҥi lên trên nhӳng Record cӫa chính các Table ÿã tham gia sӱ dөng. Khi cho thӵc hi Ӌn mӝt Query, Microsoft Access thu thұp các sӕ liӋu tӯ các Table khác nhau nhҵm ÿáp ӭng yêu cҫu vҩn tin cӫa bҥn, trong mӝt ÿѫn vӏ gӑi là “dynaset” (dynamic dataset) nghƭa là dѭӟi hình thӭc mӝt bӝ sӕ liӋu “sӕng ÿӝng”, phҧn ҧnh tình trҥng sӕ liӋu hiӋn thӡi và khi bҥn ÿLӅu chӍnh sӕ liӋu trên dynaset thì ÿӗng thӡi sӕ liӋu tӯ các Table ng ÿѭӧc sӱa ÿәi theo. Query còn ÿѭӧc dùng tҥo ra nguӗn sӕ liӋu cѫ sӣ cho các công cө khác nhѭ: Form, Report, kӇ cҧ query khác, thұm chí tҥo ra mӝt Table khác. Vӟi nhӳng thông tin a chӑn ÿѭӧc cӫa Query, cNJng có thӇ trӵc tiӃp in ra giҩy, ÿáp ӭng yêu cҫu cao hѫn Table mӝt mӭc. Cùng mӝt lѭӧng sӕ liӋu nhѭ nhau trong các Table, ai nhuҫn nhuyӉn n trong viӋc thiӃt kӃ và khai thác Query thì ngѭӡi ÿó thҳng. Table ví nhѭ ÿӗng vӕn, Query là khҧ năng kinh doanh trên ÿӗng vӕn ÿó, không biӃt kinh doanh cөt vӕn là cái chҳc. 4.2. Các loҥi Query thông dөng 4.2.1. Select Query (Query chӑn sӕ liӋu) Select Query là loҥi Query ÿѭӧc sӱ dөng phә biӃn nhҩt. Nó nhұn dӳ liӋu tӯ mӝt hay nhiӅu Table và hiӇn thӏ kӃt quҧ trong mӝt datasheet và ӣÿó bҥn có thӇ cұp nhұt record vӟi mӝt sӕ hҥn chӃ nhҩt ÿӏnh. Bҥn có thӇ sӱ dөng Query ÿӇ nhóm nhӳng record i và thӵc hiӋn tính tәng (SUM), ÿӃm (COUNT), trung bình cӝng (AVERAGE) và mӝt sӕ phép tính tәng hӧp khác. 4.2.2. Delete query (Query xóa sӕ liӋu) Xóa mӝt nhóm các record tӯ mӝt hay nhiӅu Table. Ví dө: bҥn có thӇ sӱ dөng Delete Query ÿӇ xóa tên nhӳng sinh viên nӧ hӑc phí hoһc nhӳng sinh viên có trung bình ng ÿLӇm hai hӑc kǤ liên tiӃp nhau dѭӟi 4. Ĉӕi vӟi delete Query, bҥn có thӇ giӟi hҥn viӋc xóa cӫa mình trong mӝt phҥm vi nào ÿó. 4.2.3. Update query (Query cұp nhұt sӕ liӋu) Dùng ÿӇ thay ÿәi ÿӗng loҥt nhiӅu record trong mӝt hoһc nhiӅu Table. Ví dө: bҥn có thӇ tăng ÿLӇm cӫa mӝt sӕ sinh viên nào ÿó. 4.2.4. Append query (Query nӕi sӕ liӋu) i thêm nhi Ӆu record tӯ vào phҫn cuӕi mӝt hay nhiӅu Table. 4.2.5. Make-table query (Query tҥo ra Table) o ra mӝt Table mӟi tӯ mӝt hay nhiӅu table. Ĉѭӧc dùng vào mөc ÿích tҥo các Table dӵ phòng, trích rút các record tӯ mӝt hoһc nhiӅu Table ÿӇ lѭu trӳ trѭӟc khi xóa các record này khӓi các Table hi Ӌn hành. 4.2.6. CrossTab Query (Query tham chiӃu chéo).

Chuong 04 query

Embed Size (px)

Citation preview

Page 1: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 28

Ch ng IV:

QUERY-TRUY V N D LI U4.1. Gi i thi u:

Query là công c cho phép truy v n và x lý d li u, rút trích hi n th nh ngthông tin c th t các Table và thay i d li u b ng nhi u cách khác nhau. Kh n ng

lý truy v n là m t b c quan tr ng trong vi c xây d ng ng d ng.Query là công c khá c tr ng c a Microsoft Access, giúp b n nêu ra và áp

ng các yêu c u truy v n s li u trên DBMS xem, s a và phân tích hay t ng h p sli u d i nhi u hình th c khá phong phú. th c hi n Query, b t bu c ph i cóDatabase và bên trong ó ã có m t hay nhi u Table. S li u thì c l u trên Table,còn Query là công c tìm và nhìn s li u d i nhi u góc khác nhau, và có th khinhìn s li u qua Query, b n th c hi n các thao tác s a ch a thì các s a ch a ó l i cóhi u l c ng c l i lên trên nh ng Record c a chính các Table ã tham gia s d ng. Khicho th c hi n m t Query, Microsoft Access thu th p các s li u t các Table khác nhaunh m áp ng yêu c u v n tin c a b n, trong m t n v g i là “dynaset” (dynamicdataset) ngh a là d i hình th c m t b s li u “s ng ng”, ph n nh tình tr ng s li uhi n th i và khi b n u ch nh s li u trên dynaset thì ng th i s li u t các Table

ng c s a i theo.Query còn c dùng t o ra ngu n s li u c s cho các công c khác nh :

Form, Report, k c query khác, th m chí t o ra m t Table khác. V i nh ng thông tina ch n c c a Query, c ng có th tr c ti p in ra gi y, áp ng yêu c u cao h n

Table m t m c. Cùng m t l ng s li u nh nhau trong các Table, ai nhu n nhuy nn trong vi c thi t k và khai thác Query thì ng i ó th ng. Table ví nh ng v n,

Query là kh n ng kinh doanh trên ng v n ó, không bi t kinh doanh c t v n là cáich c.4.2. Các lo i Query thông d ng4.2.1. Select Query (Query ch n s li u)

Select Query là lo i Query c s d ng ph bi n nh t. Nó nh n d li u t m thay nhi u Table và hi n th k t qu trong m t datasheet và ó b n có th c p nh trecord v i m t s h n ch nh t nh. B n có th s d ng Query nhóm nh ng record

i và th c hi n tính t ng (SUM), m (COUNT), trung bình c ng (AVERAGE) và m t sphép tính t ng h p khác.

4.2.2. Delete query (Query xóa s li u)Xóa m t nhóm các record t m t hay nhi u Table. Ví d : b n có th s d ng

Delete Query xóa tên nh ng sinh viên n h c phí ho c nh ng sinh viên có trung bìnhng m hai h c k liên ti p nhau d i 4. i v i delete Query, b n có th gi i h n

vi c xóa c a mình trong m t ph m vi nào ó.4.2.3. Update query (Query c p nh t s li u)

Dùng thay i ng lo t nhi u record trong m t ho c nhi u Table. Ví d : b ncó th t ng m c a m t s sinh viên nào ó.

4.2.4. Append query (Query n i s li u)i thêm nhi u record t vào ph n cu i m t hay nhi u Table.

4.2.5. Make-table query (Query t o ra Table)o ra m t Table m i t m t hay nhi u table. c dùng vào m c ích t o các

Table d phòng, trích rút các record t m t ho c nhi u Table l u tr tr c khi xóacác record này kh i các Table hi n hành.

4.2.6. CrossTab Query (Query tham chi u chéo).

Page 2: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 29

t nhóm s li u theo ch ng lo i và hi n th s li u d i hình th c c a m t B ngtính kèm theo s c ng ngang và c ng d c. Lo i này r t thích h p cho t o s li u c scho các báo bi u (report) và th (Chart).4.3. M t s thu t ng

Query Wizard: Là t o Query v i s h tr c a Microsoft Access. Thông th ngsau khi thi t k Query b ng Query Wizard b n ph i chuy n sang ch Design Viewthi t k l i cho phù h p v i nhu c u c a b n.

Design From Scratch: Cách thi t k này th ng c dùng cho nh ng ng i kháthành th o Microsoft Access. Trong tài li u tôi ch t p trung vào cách làm này.

Parameter Query: u có m t Query mà khi thi hành ph i nh n c các giá trthông s t o ra k t qu tùy theo thông s ó thì g i là Parameter Query. Các Querydùng vào b t k m c ích nào (nh Select Query, Append Query, Delete Query,...) n ucó nh n thông s , u có c tính Parameter Query. Các thông s này c xem nh lành ng giá tr ch a th xác nh vào lúc thi t k , c ghi d i d ng m t tên bi n.

Ví d : B n mu n li t kê nh ng sinh viên có ngày sinh trong kho ng th i giannào ó, t ngày m y n ngày m y, b n ghi Between [Ngay Sinh Tu:] And [Den Ngay] dòng Criteria d i c t NGAY c a b ng Query. Các t h p [Ngay Sinh Tu:], [Den Ngay]là nh ng bi n dùng trao thông s vào lúc thi hành.

Action Query: Là lo i Query mà khi thi hành, không hi n th m t k t qu nào trênmàn hình, mà âm th m làm m t vi c gì ó trên Table, ví d s a s li u (Update Query),xóa s li u (Delete Query), n i thêm record vào Table (Append Query), t o Table m i(Make Table Query). M t Action Query c ng có th c trao thông s tr c khi ch y.4.4. Vài hình nh v Query

4.4.1. Select Query: Là lo i Query thông d ng nh t, dùng ch n s li u tt hay nhi u Table th a tiêu chu n ch nh, và hi n th k t qu ó theo m t trình t

ng do ta ch nh.Ví d 1: T Table Products và Table Suppliers, trích ch n thành Query Products

and Suppliers và k t qu hi n th theo c t Product Name:

Ví d 2: B ng Query sau ây nêu thêm tiêu chu n ch n l a cho c t Supplier ph ilà “Pavlova, Ltd” ho c “Exotic Liquids”:

Khi ch y Query, Microsoft Access rúttrích các m u tin th a mãn u ki n

quy nh

..vàhi n th

theoth t

ch nh

Page 3: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 30

4.4.2. CrossTab Query chobi t các tr t ng h p s li u (t ng tr ,

l t, s trung bình, tr cao nh thay th p nh t,...)Ví d bên c nh là k t qu c a m tCrossTab Query i chi u v i m tSelect Query, nó t p h p 3 dòngBuchanan thành m t dòng, 3 dòngCallahan thành m t dòng

Ví d 1: M t Crosstab Query giai n thi t k và k t qu :

Ví d 2: Select Query ch n s li u không k t nhóm, Select Query có k t nhóm vàCrossTab Query:

Ch nhcác t p h p

i m c này.

T p h p theodòng p h p theo c t c ích

p h p

Danh sách các Fieldtrên Table hay Query.

liên h c a các b ngth hi n qua m i n i.

T o query b ng cách ch ntable và/ho c query, xác

nh m i liên h , ch n fieldt danh sách, ch nh cách

p x p, a ra tiêu chu nch n l a.

Ch n field b ng cáchrê t danh sách và th

vào l i thi t k .

Các Field ch n, cáchp x p th t và tiêu

chu n.

Select

Query

CrossTab

Query

Page 4: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 31

4.5. CÁC THÀNH PH N C B N TRONG TRUY V N4.5.1. H ng: Là i l ng không thay i trong quá trình tính toán.

a. H ng s : Bao g m t t c các s : 10, 50, 1254.56, .....b. H ng chu i, ký t : Là t p h p các ký t c t trong d u ngo c kép (“ “)

Ví d : “Trung Tâm Tin H c - i H c An Giang”c. H ng ngày: Là d li u ki u ngày c t trong c p d u #......#

Ví d : #08/10/1977#, #05/06/1979#4.5.2. Ki u: t ki u d li u là t p h p các giá tr mà m t bi n thu c ki u ó nh n cvà m t t p h p các phép toán có th áp d ng trên các giá tr ó.4.5.3. Bi n: Ch ng trình qu n lý các d li u t m thông qua tên bi n. M i bi n t ng

ng v i m t ki u d li u nh t nh. Khi vi t m t bi n thì ta ph i t trong c p d u ngo cvuông: [Tên Bi n]

Có hai lo i bi n:1. Bi n tr ng: Có th hi u nh là bi n n i. Khi tên bi n gi ng nh tên tr ng

trong các b ng thì Access hi u ó là bi n tr ng. Giá tr c a bi n tr ng là giá tr t ngng c a tr ng trong Table.

Chú ý: Khi có nhi u tên tr ng gi ng nhau trong các Table thì ta ph i ch rõ bi ntr ng ó c a Table nào theo cú pháp nh sau: [Tên Table]![Tên bi n]

Ví d : [SINHVIEN]![HOTEN] ho c [GIAOVIEN]![HOTEN]2. Bi n tham s : Có th hi u nh là bi n ngo i, khi tên bi n không gi ng b t c

tên tr ng nào trong CSDL thì Microsoft Access hi u ó là bi n tham s . Giá tr c a bi ntham s c nh p vào t bàn phím. Ví d : Trong Query có ch a bi n tham s và khithi hành Query này thì Microsoft Access hi n th lên h p h i tho i “Enter ParameterValue” i m c ích là yêu c u ta nh p giá tr cho bi n tham s ó. Ví d : Trong Query có bi n tham s : [Nganh Nao:].Khi thi hành, Query s hi n th ra h p tho i EnterParameter Value ta nh p giá tr cho bi n.

Select query không k t nhóm: T p h p li u t nhi u Table và s p th t Select query có k t nhóm:

ng h p s li u theo nhóm.

L p b ng thamchi u chéo d ngPivot Table theohàng và c t.

Page 5: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 32

Chú ý: Khi nh p giá tr t bàn phím vào,Access m c nhiên hi u giá tr ó có ki u Text,

u này có th d n n vi c tính toán sai. Do v ytrong tr ng h p ta mu n báo cho MicrosoftAccess hi u giá tr mà ta nh p vào thu c ki u dli u khác thì ta ph i quy nh l i. Trình t làm nhsau:

1. R_Click vào vùng thi t k ch nParameter ho c vào menu Query\Parameter.

p tho i xu t hi n nh bên c nh.2. Nh p tên bi n vào c t Parameter và ch n

ki u d li u cho bi n trong c t Data Type.3. L p l i b c 2 cho các bi n khác. Click

OK.

4.5.4. Bi u th c (expression): Là t p h p các toán t và toán h ng và k t qu tr v làt giá tr duy nh t. Có 2 lo i bi u th c:1. Bi u th c logic: Là bi u th c mà k t qu tr v là True ho c False, th ngthì bi u th c logic c dùng làm u ki n trong vùng Criteria2. Bi u th c tính toán c (Calculated Field): Là m t tr ng (Field) c

nh ngh a trong Query và hi n th k t qu d i m t d ng khác c a d li u ãc l u tr . Giá tr c thay i m i khi giá tr trong bi u th c thay i. Bi u th c

tính toán c không ph i là bi u th c logic. Lo i bi u th c này c nh p vàodòng Field theo cú pháp: Nhãn:Bi u th c.

4.5.5. Các ký t i di n: i di n cho m t ho c nhi u ký t ngay v trí nó xu t hi n. Doy, ta có th dùng ký t i di n làm u ki n trích l c ho c tìm ki m mà không c n

chính xác tên chu i. Ký t i di n c dùng khi b n ch bi t m t ph n giá tr mu n tìm.Ký t Công d ng Ví d

* i di n cho m t s ký t b t k . Wh* t ng ng v iwhat, white, và why,..

? i di n cho m t ký t b t k B?ll t ng ng v iball, bell, và bill

[ ] i di n cho m t ký t xu t hi n trongp d u ngo c []

B[ae]ll t ng ng v iball và bell nh ng khôngth là bill

[!] i di n cho m t ký t b t k không xu thi n sau d u !

B[!Ae]ll t ng ng v ibill và bull nh ng khôngth là bell

-i di n cho m t ký t trong kho ng. B n

ch nh vùng theo th t t ng d n (t An Z nh ng không th t Z n A)

B[a-c]d t ng ng v ibad, bbd, và bcd

# i di n cho m t s 1#3 T ng ng v i103, 113, 123

Chú ý:- Ký t i di n th ng c s d ng trong tr ng h p d li u c a b n có ki u

Text. ôi khi b n có th s d ng nó v i nh ng d li u có ki u khác ch ng h n nh dli u ki u Date (ngày) nh ng b n ph i qui nh l i môi tr ng trong Control Panel(Regional Settings)

- Khi b n dùng ký t i di n tìm m t d u *, d u ?, d u #, d u [ ho c d u - thìn ph i t nh ng thành ph n này trong c p d u ngo c []. Ví d : tìm ki m d u

ch m h i, b n ph i ánh [?] trong h p tho i tìm ki m. N u nh b n tìm d u - ho cnh ng ký t khác cùng x y ra m t lúc, b n ph i t d u - tr c ho c sau t t c nh ng ký

Page 6: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 33

khác bên trong c p d u ngo c []. (Tuy nhiên, n u nh b n có d u ! phía sau d u [, lúcnày b n ph i t d u [ phía sau d u !). N u nh b n ch tìm d u ! ho c d u ] b n không

n ph i t chúng trong c p d u ngo c []- B n không th tìm c p d u ngo c [] cùng m t lúc b i vì Microsoft Access hi u ó

là chu i r ng.4.5.6. Toán t :1. Toán t s h c

Toán t Cú pháp - Ý ngh a Ví d+, -, *, / C ng, tr , nhân, chia^ y th a. 2^3 =8, 3^3^3=27\ Chia l y ph n nguyên 7\2 = 3Mod Chia l y ph n d 7 mod 2 = 1

2. Toán t logicToán t Cú pháp - Ý ngh a Ví d

=, <> B ng, khác>, >= L n h n, l n h n ho c b ng<, <= Nh h n, nh h n ho c b ng

AND

Cú pháp: BT1 AND BT2 AND ..- V i BT1, BT2,… là các bi u th c logic.- Ý ngh a: Cho k t qu là True n u t t ccác bi u th c logic BT1, BT2, ... là True,ng c l i hàm cho k t qu là False.

(1>3) And (2<8): False(1<3) And (9>7): True

OR

Cú pháp: BT1 OR BT2 OR BT3 OR ...- V i BT1, BT2, .... là các bi u th c logic.- Ý ngh a: Cho k t qu là Flase n u t t

các bi u th c logic BT1, BT2, ... làFalse, ng c l i hàm cho k t qu là True.

(1>3) Or (2<8): False(1<3) or (9>7): True

NOT- Cú pháp: Not BT- Ý ngh a: Cho k t qu là True n u BT cógiá tr False, và ng c l i.

Not (3>9)=TrueNot ((2>1) And (1<9))=False

3. Toán t logicToán t Cú pháp - Ý ngh a Ví d

& Ghép chu i“C S ” & “ Tin H c” & “ 39 ng3/2” ( “C S Tin H c 39 ng3/2”

Like

- Cú pháp: <BT> Like <m u>- Trong ó: BT: Bi u th cchu i; <m u>: Là m t chu i ký

có th bao g m c ký t idi n.- Ý ngh a: Cho k t qu làTrue n u <BT> tho mãn<m u>, ng c l i cho k t quFalse

"aBBBa" Like "a*a" True"F" Like "[A-Z]" True"F" Like "[!A-Z]" False."a2a" Like "a#a" True."aM5b" Like "a[L-P]#[!c-e]"True."BAT123khg" Like "B?T*" True."CAT123khg" Like "B?T* False

Between

Cú pháp:<BT> Between GT1 And GT2

- Trong ó: BT là bi u th c,GT1, GT2 là các giá tr- Ý ngh a: Cho k t qu làTrue n u giá tr c a BT n mtrong kho ng GT1 n GT2,ng c l i cho k t qu là False

4 Between 2 And 9 True10 Between 1 And 3 False#08/10/1977# Between#01/10/1977# And #05/06/1979#True

Page 7: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 34

In

Cú pháp:- BT in(GT1, GT2, GT3,....)- Trong ó: BT là bi u th c,GT1, GT2 là các giá tr .- Ý ngh a: Cho k t qu là True

u giá tr c a BT n m trongkho ng các giá tr GT1, GT2,GT3,.., ng c l i hàm cho k tqu là False

3 In (1,2,4,3,6) True5 In (1,2,3,9) False

Format

- Cú pháp: Format ( x,n)- Trong ó x là s , n ki u nh

ng hi n th s- Ý ngh a: Cho k t qu là shi n th theo ki u nh d ng n(t ng t nh hàm làm tròntrong Excel)

- Format (1234.6455,"#,###.###")= 1,234.646- Format (1234.64558,"#,###.##")= 1,234.65- Format (1234.64558,"#,###.#")= 1,234.6- Format (1234.64558,"#,###")= 1,235

Is Null Cho k t qu là True n u giá tr c a m u tin t i m t tr ng là r ng,ng c l i hàm cho k t qu là False

Is NotNull

Cho k t qu là True n u giá tr c a m u tin t i m t tr ng khôngng, ng c l i hàm cho k t qu là False

4.6. T o truy v n ch n s li u (Select query)Microsoft Access cung c p hai ph ng ti n truy v n:- Truy v n b ng l nh c a ngôn ng SQL.- Truy v n b ng ví d QBE (Query By Example)

Tài li u này chúng ta ch t p trung vào công c truy v n b ng QBE.Ta t o m t Query theo yêu c u nh sau:

Hãy li t kê các khách hàng ã tham gia trong các phi u xu t và tr giá c a t ng phi u óthông tin g m: TENKH, TRGIA, THUE.Ta có c a s thi t k nh sau:

Xem Query k t q a sau khi thi t k

Vùng

ch

a cá

c ta

ble

ngu

nVù

ng l

i QBE

Page 8: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 35

hai table ngu n HOADON và DMKH (vi c xác nh Table ngu n nào là l thu c vàong câu h i c th ) ta t o ra Query ích tên PHIEUXUAT(TENKH, TRIGIA,

THUESUAT), nhìn vào c a s thi t k ta có các nh n xét sau:Tên Field c a query ích là:

- Tên c a field ngu n, ví d nh : TENKH.- Tên t m i, cách t TENMOI:BIEUTHUC, ( t tên field gi ng nh ph n t tên

trong ph n t o table).Ví d : THUESUAT:[THUE] (THUESUAT là Tên field m i, k n là d u “:”, sau cùnglà bi u th c ch g m 1 field [THUE]).Ta th y field LOAIHD tham gia trong thi t k query làm u ki n cho ta bi t Phi unào là phi u Xu t, nh ng khi xem k t q a thì không hi n c t này là do t i dòng Showta cho n .

4.6.1. Các thành ph n c b n trong Query c a s QBE- Vùng l i QBE: Ch a các tr ng (c t) c a các b ng mà truy v n mu n th

hi n d li u (t ng ng v i các m nh WHERE, ORDER BY, danh sách các c tho c bi u th c mà truy v n mu n hi n th trong câu l nh SELECT). Chi ti t các dòngtrong vùng l i QBE g m có:

Dòng Ý ngh aField Th hi n các field (c t) c a b ng íchTable Tên b ng t ng ng c a c t

Sort Cho phép s p x p th t c t t ng Ascendingho c gi m d n Descending.

Show Hi n ho c n c t này.

CriteriaBi u th c mu n l c trong truy v n. N u ghi u ki n trong cùng

t dòng thì t ng ng toán t logic AND, ng c l i n u ghiu ki n khác dòng nh ng cùng c t thì là toán t logic OR.

- Vùng ch a các b ng ngu n: N i ch a các b ng d li u ngu n cho m t truyn (t ng ng v i m nh FROM trong câu l nh SQL).

4.6.2. T o query ch Design View ây là d ng select query)

Page 9: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 36

1. c 1: T a sDatabase Click ch n ng nQuery, Click New. Khi ó xu thi n h p h i tho i NewQuery, n ch n DesignView và click OK.2. c 2: Xác nh cáctable/query ngu n.Trong h p tho i Show Table,

n ch n các table/queryngu n và click Add avào vùng ch a các b ng.Click Close óng h p tho iShow Table. Thông th ng

u các b ng ã c t oquan h trong c a s quan hthì khi a vào trong truy v nchúng v n còn gi nguyênquan h này. Tuy nhiên lúcchèn các b ng vào m t truy

n thì có m t s tr ng h pMicrosoft Access t o quan hcho các b ng n u các b ngnày ch a c t o quan htrên c a s quan h bênngoài.3. c 3: T o các field m i cho Query.Ch n các c t s hi n th trong truy v n b ng cách: Kéo chu t c a các c t t

ng xu ng vùng l i QBE ho c D_Click t i c t ó ho c ch n tên c t trongdanh sách các c t t i dòng Field trong vùng l i QBE (xem l i 4.6)4. c 4: Thi t l p các u ki n và thu c tính c a field, query (xem 4.7.3– 4.7.4).

d ng các thành ph n trong vùng l i QBE trên các c t t o truy v n cóp x p d li u (dòng Sort-n u s p x p nhi u dòng s u tiên s p x p t trái

sang ph i); l c d li u (dòng Criteria); hi n th d li u hay không (dòng Show).5. c 5: u query (File\Save).

Thí d :o truy v n hi n th danh sách các hóa n theo th t t ng d n c a s hóa n

và mã khách hàng thu c Kho 3 và Kho 10. Các thông tin hi n th g m có: SOHD (Shóa n), NGAYHD (Ngày hóa n), LOAIHD (Lo i Hóa n), MAKH (Mã khách hàng),TENKH (Tên khách hàng), DIACHIKH a ch khách hàng), MAKHO (Mã kho),TENKHO (Tên kho), DIACHIKHO a ch kho hàng), TRIGIA (Tr giá hóa n).

Query c thi t k theo yêu c u trên ch Design có d ng nh sau:

Page 10: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 37

Trong ó: Các thông tin cho truy v n này c n có là các c t: SOHD, NGAYHD, LOAIHD ,

TRIGIA m trong b ng HOADON; MAKH, TENKH, DIACHIKH n m trong b ngDMKH; MAKHO, TENKHO, DIACHIKHO n m trong b ng DMKHO. Trong thí d trên c t MAKHO s d ng so sánh l c ra các hóa n thu c

Kho 3 (KH3) và Kho 10 (KH10) (chúng ta ghi trên hai dòng khác nhau t o ratoán t OR).

u ý:- Thông th ng khi m t c t xu t hi n trong vùng l i QBE mà không hi n th ra

ngoài thì nó ch c s d ng v i hai m c ích: S p x p d li u ho c ghi u ki n l c li u cho truy v n.

- Ký t sao (*) i di n cho t t c các c t trong m t b ng.4.7. M t s thao tác trên Query4.7.1. M t s thao tác c b na. Xem tr c k t qu và th c hi n m t Query

Xem tr c k t qu : Click nút Datasheet View ho c vào View\DatasheetView.

Th c hi n truy v n: Click nút Run ho c vào Query\Run.u ý:

Nên xem tr c k t qu truy v n tr c khi cho th c hi n truy v n i v i các lo itruy v n (action query) làm thay i giá tr d li u nh : Update Query, AppendQuery, Delete Query, Make - Table Query.

u mu n quay l i ch thi t k khi ang ch y ho c xem tr c k t qu m ttruy v n, b n click nút Design View ho c vào View\Design View.

b. Thêm ho c xóa các b ng trong khi t o Query b ng QBETrong quá trình th c hi n m t Query, n u c n l y thông tin c a các c t trên m t

ng nào ó mà b ng này l i ch a c chèn vào vùng ch a các b ng c a truy v nQBE thì chúng ta ph i chèn thêm b ng ó vào. Ng c l i, n u m t b ng n m trong vùngch a các b ng c a truy v n mà không có s d ng n a (truy v n không c n n thôngtin c a b ng này) thì chúng ta s lo i b nó ra kh i truy v n.

Thêm b ng1. Trong c a s thi t k QBE ta m h p tho i Show Table: Click vào nút Show

Table ; ho c click ph i vào vùng ch a các b ng và ch n Show Table; ho c vàoQuery\Show Table.

2. a các table (b ng) c n thêm vào (xem 4.6.2).

Page 11: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 38

Xóa m t b ng trong truy v n:- Cách 1: Ch n b ng mu n xóa r i nh n phím Delete ho c ch n Query\Remove

Table.- Cách 2: Click ph i vào b ng mu n xóa, ch n Remove Table.

c. Chèn thêm dòng tên b ng (Table) vào vùng l i QBEôi khi m t truy v n òi h i ph i c n d li u trên nhi u b ng khác nhau. Tuy

nhiên, gi a các b ng này có th có các c t trùng tên nhau. Do ó, th y c c t thhi n trên vùng l i QBE là c a b ng nào thì chúng ta nên chèn dòng tên b ng (Table)vào vùng l i QBE.

Cách hi n/ n c t Table: View\Table Names ho c click ph i vào vùng l i, ch nTable Names.d. Chèn thêm c t vào vùng l i QBE: Insert\Columns

Trong quá trình t o Query, có th mu n chèn thêm m t c t m i n m tr c c thi n hành ho c có th hi n t i trong vùng l i QBE không còn m t c t tr ng nào t othêm các c t m i cho truy v n thì chúng ta ph i th c hi n chèn thêm m t c t vào truy

n.e. Xóa c t trong vùng l i QBE

Ch n c t c n xóa r i nh n phím Delete ho c vào Edit\Delete.4.7.2. T o các c t tính toán c ho c m t bi u th c trong truy v n.

Trong m t truy v n ngoài th hi n các c t d li u s n có trong các b ng, chúng tacòn có th t o các c t m i c tính toán t các c t có s n b ng cách xây d ng cácbi u th c tính toán.

Các toán t : +, -, *, /,.. và các hàm tính toán: YEAR, MONTH, DATE, DAY, IIF,…c dùng xây d ng các bi u th c c n thi t.

Ví d : T o query th hi n các hóa n v i các thông tin: S hóa n, Ngày hóan, Lo i Hóa n, Tháng l p hóa n (không hi n th ngày và n m).

Query ch Design View: (d li u ngu n l y t b ng HOADON)

Xây d ng Calculated Field: t con tr t i c t mu n t o Calculated Field. Sauó nh p bi u th c vào theo m t trong các cách sau:

- Cách 1: Nh p bi u th c vào v trícon tr- Cách 2: Dùng công c ExpressionBuilder: R_Click ch n Build, ho c

Click nút Build ho c nh nCtrl+F2 m h p tho iExpression Builder.bi u th c tính toán có liên quan nField c a table ngu n thì ta ghi nhsau:[TÊN_TABLE]![TÊN_FIELD]Sau ó nh p bi u th c vào khung tr ng và click OK sau khi nh p xong.

n có th chèn các Field, Controlu khi n), hàm (Function), h ng

Page 12: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 39

(Constants),... có s n vào bi u th cng cách hi n th các i t ng

mu n chèn và click úp vào nó.

u ý:- cho Query có th hi n th k t qu ngay lúc ch n, t t c nh ng thành ph n

trong bi u th c (ch ng h n nh Field) ph i có m t trong các Table ho c Query tham giaQuery hi n t i. (Ví d : Tháng hóa n: Month( [HOADON]![NGAYHD] ): Ta tham chi u

n tr ng NGAYHD trong Table HOADON tuy nhiên ta có th b tên c a table[HOADON] (n u nh trong table ngu n có 2 field [NGAYHD] n m trên 2 table khác nhauthì b t bu c ta ph i vi t tên Table [HOADON] kèm theo).

- N u b n s d ng m t tr ng (Field) ho c u khi n (Control) nào ó t Formho c Report thì b n ph i thi hành Form ho c Report ó tr c, n u không Query s hi u

ó nh là m t bi n tham s và b n ph i nh p giá tr cho tham s này khi thi hành query. d ng d ng này trong tr ng h p t Form b n truy n nh ng giá tr m t u khi n

(Control) nào ó cho Query.4.7.3. M t s thu c tính c a c t trong Query

Thông th ng khi ta s d ng bi u th c tính toán c (Calculated Field) trongQuery, ôi khi giá tr th hi n không úng nh ta mong mu n, thay i l i cách hi nth ta ph i quy nh l i thu c tính c a chúng. B c làm nh sau:

- t con tr t i c t mu n t thu c tính.- View \Properties ho c R_Click ch n Properties ho c Click bi u t ng trênthanh công c Query Design.- Trong h p tho i Field Properties, t l i thu c tính cho c t (n u c n), bao g m: + Description: Mô t c t. + Format: nh d ng d ng d li u th hi n trong c t. + Input Mask: M t n nh p li u.

+ Caption: Tiêu c t (xu t hi n ch Datasheet View ho c Run).Ví d : Mu n th hi n c t NGAYHD trong Query theo d ng mm/dd/yyyy (tháng

/ngày /n m) và tiêu c t là Ngày hóa n thì chúng ta nh d ng thu c tínhFormat t i c t này nh sau:

4.7.4. Thu c tính c a Query. qui nh l i thu c tính c a Query, R_Click vào vùng tr ng trong c a s thi t k

Query và ch n Properties.

Page 13: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 40

Ý ngh a c a m t s thu c tính nh sau:- Top Values: T ng s record s c

hi n th khi thi hành Query.- Unique Values: Có hai l a ch n:

+ Yes: N u có nhi u giá tr trùng nhauthì s hi n th m t giá tr duy nh t.

+ No: Hi n th t t c các giá tr- Unique Records: Có hai l a ch n:

+ Yes: N u có nhi u record trùng nhauthì s hi n th m t record duy nh t.

+ No: Hi n th t t c các recordChú ý: Hai thu c tính Unique Values và

Unique Records không th ng th i là Yes.

4.7.5. Quy nh thu c tính liên k t trong các Table/Query tham gia Query.Trong m t s tr ng h p hi n th k t qu c a Query theo úng nh nhu c u

a b n, ngoài vi c nh thu c tính liên k t (Join Properties) trong c a s liên k t(Relationships), b n có th nh l i thu c tính liên k t gi a các Table ho c Query thamgia truy v n. B c làm nh sau:

- R_Click vào s i dây liên k t mu n thay i và ch n Join Properties ho c D_Clickvào s i dây liên k t. S xu t hi n h p h i tho i Join Properties g m 3 l a ch n:

a ch n 1: Ch n l a này ch l y nh ng record có li u c a vùng liên k t c hai Table.

a ch n 2: Table bên trái l y h t các record, Table bên ph i ch l y nh ngrecord mà li u c a vùng liên k t có m t trong Table bên trái.

a ch n 3: Table bên ph i l y h t các record, Table bên trái ch l y nh ngrecord mà li u c a vùng liên k t có m t trong Table bên ph i.

- Ch n Option mong mu n và click OK.Ví d : Trong h p tho i trên, n u b n ch n 1 thì s hi n th nh ng Kho hàng cùng

xu t hi n c 2 table DMKHO và HOADON, n u ch n 2 lúc này s hi n th t t cnh ng kho có trong Table DMKHO và nh ng kho có liên quan trong Table HOADON,

u ch n 3 thì s hi n th t t c nh ng kho trong Table HOADON và nh ng kho bênTable DMKHO có liên quan.4.7.6. L u Query: Th c hi n t ng t nh i v i TableTóm l i: t c nh ng ph n v a trình bày trên u n m trong khuôn kh c a vi c thi t

m t Select Query. N u b n thi t k t c m t Select Query hoàn ch nh thì b n s d

Page 14: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 41

dàng chuy n chúng thành nh ng d ng Query khác (Update Query, Append Query,Delete Query, Make - Table Query).4.8. Truy v n nhóm d li u (Group)

4.8.1. Ý ngh a d ng truy v n tính toán d li u theo t ng nhóm có tính ch t t ng c ng,

th ng kê t ng h p s li u mà không quan tâm n chi ti t s li u bên trong c a t ngdòng.

4.8.2. Các b c th c hi n:- B n thi t k t tr c m t Select Query- View \Totals ho c R_Click vào vùng l i QBE ch n Totals ho c bi u t ng

trên thanh công c Query Design (khi ó trong vùng l i QBE có thêm dòng Total).- S d ng các hàm tính toán t i dòng Totals th c hi n các phép toán cho các

t trong truy v n.Hàm Ý ngh a

Group By Nhóm d li u trên các c tAvg Tính trung bình c ng cho các c t có ki u d li u sSum Tính t ng các c t có ki u d li u sCount m s giá tr khác r ngMin Tìm giá tr nh nh tMax Tìm giá tr l n nh tFirst Tìm giá tr u tiênLast Tìm giá tr cu i cùngExpression Bi u th c tính toán t các c t d li u khác trong b ngWhere u ki n l c d li u cho truy v n

Ví d :- Yêu c u: T o query tính t ng tr giá c a các hóa n nh p và xu t m i kho

hàng.- Query ch Design View:

- K t qu th c hi n:

Page 15: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 42

Trong ví d trên t i c t MAKHO, TENKHO, LOAIHD ta s d ng m nh GroupBy trong dòng Total nhóm d li u theo MAKHO, TENKHO, LOAIHD và c t Tong TriGia s d ng hàm Sum trong dòng Total tính t ng tr giá c a các hóa n xu t ho cnh p trong cùng t kho.Chú ý:

- Th ng trong truy v n nhóm tiêu c a các c t th c hi n phép tính: Sum,Count, First, ... s do Microsoft Access t o ra v i tên là Sumof, Countof, ... thay itên, ta có hai cách: (1) Ghi tiêu m i ngay trên c t ( ví d trên TONG TRI GIA ) ho c(2) Ghi vào thu c tính tiêu (Caption) c a c t trong b ng thu c tính c a c t.

- N u trên dòng Field ta có s d ng m t s hàm nào ó ch ng h n nh : SUM, IIF,... thì t i dòng Total t ng ng c a ta ph i ch n là Expression.

- N u m t c t nào ó có s d ng u ki n trong dòng Criteria thì dòng Total t ngng ph i là Where và không cho hi n th k t qu (t t d u t i dòng Show)

4.9. T o các Query hành ng (Action Query)u ý: i v i các Query hành ng là lo i query làm thay i d li u c a table

ngu n b n nên xem tr c k t qu và sau ó m i cho thi hành th c s lo i query này cót q a khi ta ti n hành Run

4.9.1. Update Query (Query c p nh t s li u)Trong quá trình nh p li u, vi c thay i s li u là u không th tránh kh i. Vi c

thay i d li u cho m t hay hai record thì u này ta không quan tâm cho l m nh ngu chúng ta thay i ng lo t hàng tr m ho c hàng ngàn record thì công vi c này th t

n th i gian và r t d x y ra sai sót. Chính vì lý do ó ta dùng Update Query thay i li u ng lo t trên m t hay nhi u Table.

i v i Update Query b n có th :- Gi i h n s thay i giá tr m t s record nào ó b ng cách ch nh t i dòng

u ki n (Criteria).- L y d li u t m t b ng khác (t t c các b ng c n d li u ph i có m t trong truy

n)o Update Query:

1. Trong ng n Query, click vào New ho c vào Insert\Query và ch n Design View.2. Ch n b ng có d li u c n c p nh t.3. Query \Update Query.Lúc này vùng l i QBE i khác i: (1) M t dòng Sort và dòng Show và (2) Xu t

hi n dòng Update To. Vi c thay i giá tr c a m t Field nào ó b ng cách ch n Fieldtrên dòng Field và giá tr m i c thay th c ch nh t i dòng Update To. Ngoài ra

n có th gi i h n vi c c p nh t b ng cách t u ki n t i dòng Criteria.

Page 16: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 43

Ví d 1: C p nh ttr ng DIENGIAIHD trongtable HOADON thànhHóa n Nh p hay Hóa

n Xu t tùy thu c vàolo i hóa n là Nh p hayXu t.

Ví d 2: C p nh t tr ng TRIGIATANG trong Table HOADON b ng 1.1*TRIGIAi v i các hóa n xu t trong tháng 01 n m 1999.

4.9.2. Delete Query (Query xóa s li u) d ng lo i Query này khi ta mu n xóa nhi u dòng trong m t hay nhi u b ng th a

mãn u ki n a ra. B n ph i c n th n v i lo i Query này vì d li u không th ph ci l i c sau khi xóa.

o Delete Query:1. Th c hi n nh select query tuy nhiên thêm các thao tác sau.2. Vào Query \Delete Query. Màn hình thi t k Delete Query c ng t ng t nh

Select Query nh ng có thêm dòng Delete.3. L n l t rê các tr ng sau vào vùng l i:

- Tr ng có d u * b ng có m u tin c n xóa. Dòng Delete c a c t này sxu t hi n t From.

- Các tr ng dùng l p u ki n l c. T Where s xu t hi n trong dòngDelete c a các tr ng này.

4. Chuy n sang ch Datasheet View xem tr c các m u tin s b xóa tr ckhi th c hi n Query xóa các m u tin này.

Page 17: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 44

Ví d : Xóa nh ng khách hàngcó a ch C n Th t b ngDMKH.

Chú ý:- N u nh ng Table liên k t v i nhau theo quan h m t - nhi u (One - To - Many) và

có qui nh thu c tính Cascade Delete Related Records thì khi b n xóa nh ng Recordbên u One thì t t c nh ng Record có quan h bên u Many s b xóa. B n ph i th t

n th n v i thao tác này vì khi nh ng Record b xóa thì không th c ph c h i và vi cxóa này c th c hi n m t cách t ng và không có m t s c nh báo nào.

- T t c nh ng Table/Query tham gia trong Delete Query ph i c liên k t v inhau. N u chúng ch a c liên k t v i nhau thì b n có th t o liên k t gi a chúng ngaytrong c a s thi t k Query.4.9.3. Append Query (Query n i s li u)

Là lo i query c dùng thêm d li u vào m t b ng. D li u c thêm vào cóth c l y t m t b ng khác ho c c nh p tr c ti p t bàn phím khi thi hành query.

o Append Query:1. Trong ng n Query, Click vào New ho c Insert\Query, ch n ti p Design View.2. N u c n l y d li u t m t b ng có s n thì b n thêm vào t h p tho i Show

Table, n u không b n óng h p tho i Show Table l i và sang b c k ti p.3. Ch n Query\Append Query m h p tho i Append. Trong h p tho i này, b n

ch table c n n i thêm s li u và click OK.

4. Khi ó trong vùng l i QBE xu t hi n thêm dòng Append To. Trong vùng l i,n t các tr ng; ho c các giá tr ; ho c bi n tham s mu n thêm vào t i dòng Field và

các tr ng mu n thêm s li u t i dòng Append To.+ N u b n ghi giá tr c th thì khi thi hành Query nó s nh n giá tr ó, lúc nào

ó b n mu n thêm giá tr khác thì b n ph i nh p l i giá tr m i. Cách này th ng khôngc s d ng.

+ N n b n s d ng bi n tham s thì khi thi hành Query thì nó s yêu c u b nnh p giá tr vào và nh ng giá tr này s c n i vào Field c ch nh trong dòngAppend To t ng ng.

Page 18: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 45

+ N u b n s d ng m t tr ng nào ó c a Table ngu n thì Microsoft Access l y d li u ngu n ó m i khi b n cho thi hành Query.

Ví d : o query thêm m t kho có mã kho là “KH11”, tên kho là “Kho 11” và a chkho là 140 - Lý T Tr ng - C n Th . Các giá tr này c nh p t bàn phím.

Query ch thi t k :

Chú ý: - B ng d li u ngu n (n u có) ph i có m t danh sách các b ng tham gia truy v n.- Giá tr c a khóa chính ho c nh ng tr ng có quy nh thu c tính Indexed là

Yes, No Duplicate thì d li u trùng l p s không c n i vào b ng.

4.9.4. Make-Table Query (Query t o b ng) d ng khi mu n sao chép c u trúc và/ho c d li u t m t ho c nhi u Table sang

t Table khác.o Make - Table - Query:

1. T o m t Select Query hoàn ch nh ch a các d li u c n thi t t o ra b ng m i.2. Vào Query\Make-Table Query.

3. Nh p tên b ng m i vào ô Table Name c a h p tho i Make-Table và click OK.Ví d : T o b ng m i có tên KHACHHANG_CTA t b ng DMKH ch ch a các

khách hàng có mã khách hàng b t u b ng “CTA”.ng d n: T o m t Select query ch a y thông tin v các khách hàng có

mã khách hàng b t u b ng “CTA” r i th c hi n b c 2 và 3 trên.4.10. Crosstab Query (Query tham chi u chéo)

d ng d ng Query này khi mu n th ng kê và trình bày các d li u theo d ng tómt nh th ng kê tr giá m i lo i hóa n c a t ng kho, th ng kê t ng s hóa n

xu t/nh p c a t ng kho,…Ví d : o query th ng kê tr giá c a m i lo i hóa n nh p xu t trên t ng kho.

li u ngu n: Table HOADON.4.10.1. T o Crosstab Query b ng Wizard

B1- Trong ng n Query, b n Click New,ch n Crosstab Query Wizard và click OK.

Page 19: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 46

B2- Ch n Table tham gia query(HOADON) và click Next.

B3- Ch n field làm tiêu dòng(row heading) và click Next: B n ch nfield MAKHO và Click nút > a quaSelected Fields, b n có th lo i b field

ã c ch n b ng cách ch n chúng vàClick nút <.

B4- Ch n field làm tiêu t (column heading) và click

Next: B n ch n Field LOAIHDtheo cách t ng t nh b c 3.

B5- Ch n field và hàmmu n th c hi n th ng kê và clickNext: Ch n SOHD và hàm Count

m SOHD.Tùy theo ki u d li u c a tr ngmu n th ng kê b n có th ch n

t trong s các hàm nh : Tínhng (sum), tính trung bình (avg),m (count), l y tr l n nh t/nh

nh t (max/min),…

Page 20: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 47

B6- t tên cho Query, ch n ch m query là xem k t qu (View the

query) ho c thi t k l i (Modify thedesign) và click Finish.

- Khi th c thi Query b n ct qu nh sau:

MAKHO Total Of SOHD NH P XU TKH1 4 2 2KH10 3 3KH2 1 1KH3 4 2 2KH4 2 2KH5 3 1 2KH7 1 1KH8 1 1

4.10.2.Crosstab Query b ng Design

* ch thi t k ,crosstab query c t o

ng Wizard trên có d ngnh sau:

* t o m t crosstab query theo cách t thi t k , b n th c hi n nh sau:B1: Ch n ng n Query, ch n New, ch n Design view i click OK.B2: a table/query ch a d li u ngu n vào vùng ch a table/query. Trong ví d trênlà b ng HOADON.B3: a các tr ng làm tiêu c t, tiêu dòng và th ng kê vào vùng l i c aquery. Trong vi d trên là MAKHO, LOAIHD và SOHD.B4: Vào Query\Crosstab Query. Lúc này, xu t hi n thêm dòng Crosstab và Totalvùng l i c a query. Trên dòng Crosstab b n ch n Row heading cho tr ng làmtiêu dòng, Column heading cho tr ng làm tiêu c t và Value trên tr ng

Page 21: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 48

mu n th ng kê. Trên dòng Total, b n ch n Group By cho tr ng làm tiêu c t vàdòng, và ch n hàm dùng th ng kê cho tr ng th ng kê.* u mu n t o thêm c t trong crosstab query (ví d : m t ng s hóa n nh pvà xu t trên m i kho), b n t o thêm m t c t (ví d : TongSoHD: SOHD) vào vùng

i, ch n hàm dùng th ng kê trên dòng Total (gi ng nh hàm trên dòng Totala c t th ng kê) và ch n Row heading trên dòng Crosstab c a c t này.

u ý:1. Crosstab Query Wizard ch l y d li u t m t Table/Query. Do ó n u mu n l y dli u t nhi u table/query, b n ph i ch n cách t thi t k .2. Trong m t crosstab query, b n có th ch n nhi u c t làm tiêu dòng nh ng ch

c phép ch n m t c t làm tiêu c t và m t c t dùng th ng kê.3. Không th truy n tham s cho m t Crosstab Query. N u mu n s d ng thông s choCrosstab Query, ta ph i t o m t Select Query trung gian có ch a thông s c n truy n.4.11. S d ng tham s trong truy v n4.11.1. Ý ngh a s d ng tham s :

Tham s trong truy v n dùng th c hi n các truy v n theo m t u ki n " ng"nào ó. u ki n này có th là:

M t bi n tham s mà giá tr c a nó s c nh p vào t bàn phím khi truyn c th c hi n.

Ho c là giá tr c a m t u khi n (control) n m trên m t bi u m u ang m ch c p nh t d li u.

Thí d : Th hi n t t c các hóa n nh p và xu t hàng c a m t kho b t k nàoó mà khi th c hi n truy v n ng i s d ng s nh p vào m t mã kho t ng ng mu n

xem.Nh n xét: Truy v n này s có tham s vào là m t mã kho (có ki u d li u chu i)

và tham s này ph i t t i dòng u ki n so sánh (Criteria) c t mã kho. T ó cóth l c ra các hóa n c a các kho hàng t ng ng có trong b ng hóa n.4.11.2. S d ng bi n tham s trong truy v n

1. T o query v i y các thông tin theo yêuu.

2. Vào menu Query\Parameters m h p tho iQuery Parameters.3. Nh p bi n tham s vào c t Parameter và ch nki u d li u thích h p cho tham s trong c t DataType. Ki u d li u này ph i gi ng v i ki u d li u

a c t trong b ng c n so sánh. Trong thí d trênchúng ta t o ra m t tham s có tên là Nh p MãKho có ki u d li u là chu i. L p l i b c này n umu n t o thêm các thông s khác.4. Nh p tên tham s gi a 2 d u ngo c vuôngvào dòng u ki n (criteria) t i c t mu n so sánhtrong vùng l i.

Page 22: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 49

5. L u query và ch y th . Khi th c hi n, access hi n th h p tho i Enter Parameter Value

ng i dùng nh p giá tr cho bi n tham s .

Ví d : màn hình ch thi t k c a query có s d ng tham s theo yêu c u c a ví dtrên nh sau:

4.11.3. Tham s c a truy v n nh n t Form th c thi Queryi v i lo i truy v n này, b n ch c n a tham s vào dòng u ki n c a c t

mu n so sánh theo cú pháp: [Forms].[Tên Form]![Tên u khi n]. Giá tr c a ukhi n (control) c ch nh n m trên m t bi u m u ang m ch c p nh t d li u

là tham s cho truy v n khi th c thi.Ví d : o query li t kê nh ng hóa n phát sinh trong kho ng th i gian c qui

nh trong 2 textbox Tungay và Denngay c a Form F_Hoadon ang m .Query theo yêu c u trên có th c thi t k nh sau:

Trong ó bi u th c so sánh trên dòng u ki n c a c t NGAYHD là:Between [Forms].[F_HOADON]![Tungay] And [Forms].[F_HOADON]![Denngay]4.12.Truy v n con4.12.1. Khái ni m:

Truy v n con (subquery) là m t truy v n ch n l a c dùng nh m t u ki nbên trong m t truy v n ch n l a hay truy v n hành ng khác.4.12.2. Cách t o truy v n con

1. T o truy v n con trong cùng nh t, ch y và xem k t qu .

Page 23: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 50

2. Vào menu View\SQL View, sao chép n i dung câu l nh SQL c a truy v ncon.

3. T o truy v n cha.4. Dán câu l nh SQL sao chép b c 2 vào dòng u ki n c a m t c t trong

truy v n cha. Câu l nh này n m phía sau m t trong các phép toán t so sánhnh : Not, in, >, <,… và c t trong c p d u ngo c.

* Trình t th c hi n m t truy v n có ch a truy v n con: Truy v n bên trong c pu ngo c n c p th p nh t s c th c hi n tr c tiên, sau ó l y k t qua truy v n con này th c hi n vi c so sánh v i truy v n cha bên ngoài. C

th các truy v n s l n l t c th c hi n t trong ra ngoài.4.12.3. Thí d v truy v n con

o truy v n th hi n các kho trong b ng danh m c kho ch a tham gia nh p xu thàng hóa.

Nh n xét: làm c truy v n này, chúng ta t o ra hai truy v n nh m tìm cácp h p sau:

1. T p h p danh sách các kho ang có trong danh m c kho.2. T p h p danh sách các kho ã tham gia nh p xu t hàng hóa.

So sánh gi a hai t p h p này tìm ra nh ng kho có bên t p h p các kho hi nang có nh ng không t n t i bên t p h p các kho ã tham gia nh p xu t hàng hóa.

Chúng ta th y r ng truy v n tìm danh sách các kho ã tham gia nh p xu t hànghóa s ph i c th c hi n tr c l y k t qu em so sánh v i danh sách các kho

ang có. Do ó truy v n tìm danh sách các kho ã tham gia nh p xu t hàng hóa làtruy v n con ( c th c hi n tr c) và truy v n tim danh sách các kho ang có làtruy v n cha ( c th c hi n sau).

Các b c th c hi n:

1. T o truy v n con tìm danhsách kho ã tham gia nh pxu t hàng hóa .

2. i dung câu l nh SQL:SELECT HOADON.MAKHOFROM HOADON;

Page 24: Chuong 04   query

Microsoft Access 2000 Ch-¬ng 4: Query

Trung t©m Tin häc Trang 51

3. o truy v n cha: Tìm danhsách kho ang có trong danh

c kho.4. Nh p bi u th c: Not In(SELECT HOADON.MAKHOFROM HOADON;) vào dòng

u ki n c a c t MAKHO trongtruy v n cha. Trong ó: Toán tNot in c dùng ch n cácph n t trong m t t p h pkhông có trong m t t p h pkhác, và câu l nh SQL trongngo c chính là câu l nh ã saochép b c 2.

u ý: S c t tr v c a truy v n con gi c ng là m t c t.