69
Baøi 4.
4.1. CHC NNG VÀ CÁC CÁCH TO LP QUERY
Query là công c to các vn tin d liu t Table. Trong Access 2007 ta
có ba cách to ra mt Query.
Query Wizard: cho ta mt cách nhanh chóng to ra mt Query n
gin. Tuy nhiên vi cách này cho ta rt ít la ch và kim soát.
Query Design: Vi cách này Access cung cp cho ta mt li QBE
(Query by Example) to lp Query mt cách trc quan sinh ng.
Ch xem SQL: Vi cách này cho ta cách to lp Query mt cách
mnh m và chuyên nghip. Ngi dùng to ra Query bng chính ngôn
ng truy vn d liu SQL (Structured Query Language). Do cách này
ch s dng cho nhng ngi lp trình chuyên nghip am hiu v ngôn
ng SQL.
4.2.
4.2.1. SELECT QUERY
Table
4.2.2. ACTION QUERY
a) MAKE TABLE QUERY
TableTable
b) UPDATE QUERY
Table.
c) APPEND QUERY
TableTable
d) DELETE QUERY
Table
4.2.3. CROSSTAB QUERY
nh thg Table
70
4QueryTable T_DIEMSV
4.3.
4.3.1. CÁC HÀM S HC
a) HÀM ROUND
Cú pháp: ROUND(Expression [,numdecimalplaces])
: Expression là biu thc s cn làm tròn. Numdecimalplaces
Công dng: Tr v con s c làm tròn có s s l nh bi
numdecimalplaces
: round(123.4567) = 123, round(123.4567,1) = 123.5, round(123.4567,2)
= 123.46
b) HÀM FIX và INT
Cú pháp: Int(number); Fix(number)
: number là mt con s.
Công dng: Tr v phn nguyên ca con s nh bi number.
Ví d: FIX(8.4) =INT(8.4) = 8; FIX(-8,4)=-9, INT(-8.4)=-8
: i vi s âm FIX làm tròn xung, INT làm tròn lên. Nu Number là
Null thì hàm tr v tr Null.
c) HÀM ABS
Cú pháp: Abs(number)
number là mt con s.
Công dng: Tr v tr tuyi ca mt con s.
Ví d: Abs(-1) = Abs(1) = 1
: Nu tham s number là Null thì hàm tr v tr Null. Nu tham s
number là mt bii to thì tr v s 0.
d) HÀM SUM
Cú pháp: Sum(expr)
expr là biu thc chunh ct cha d liu s mà ta mun
cng.
Công dng: Tr v tng ca mt tp hp các giá tr trong cnh trên
Query.
Ví d: Sum([SOLUONG]*[DONGIA])
e) HÀM AVG
Cú pháp: Avg(expr)
71
expr là biu thc chunh ct cha d liu s mà ta mun
tính trung bình.
Công dng: Tr v trung bình cng ca mt tp hp các giá tr trong ct xác
nh trên Query.
Ví d: Avg([SOLUONG]*[DONGIA])
f) HÀM COUNT
Cú pháp: Count(expr)
expr là biu thc chunh ct cha d liu không rng mà ta
mum.
Công dng: m s Record tr v ca mt Query.
Ví d: Count([MANV]
4.3.2. CÁC HÀM V CHUI
a) HÀM LEN
Cú pháp: Len(String | Varname)
String là mt chui ký t. Varname là tên bin kiu chui.
Công dng: Hàm tr v chinh bi chui hoc chiu dài ca giá tr
bin chui.
Ví d:
b) HÀM LEFT
Cú pháp: Left(string, length)
String là chui ký t mà ta cn ly nhng ký t bên trái ca nó.
Công dng: Tr v length ký t bên trái ca chui string.
Ví d:
c) HÀM RIGHT
Cú pháp: Right(string, length)
String là chui ký t mà ta cn ly nhng ký t bên phi ca nó.
Công dng: tr v length ký t bên phi ca chui string.
Ví d:
d) HÀM MID
Cú pháp: Mid(string, start[, length])
String là chui mà ta cn ly các ký t tr v. Start là s nguyên
nh v trí ký t u tiên cn ly. Length con s nh s ký t ca
chui cn ly.
Công dng: Tr v chui con ca chui string.
Ví d:
e) HÀM INSTR
Cú pháp: InStr([start, ]string1, string2[, compare])
Start là v trí bu tìm. String1 chui m. String 2 chui con.
Công dng: tr v v trí tìm thu tiên ca chui con trong chui m.
Tham
Constant
Value
Description
vbUseCompareOption
-1
Option Compare statement.
vbBinaryCompare
0
.
72
vbTextCompare
1
.
vbDatabaseCompare
2
. So sánh theo thông tin
trong Database.
string1 is zero-length
0
string1 is Null
Null
string2 is zero-length
start
string2 is Null
Null
string2 is not found
0
string2 is found within string1
start > string2
0
Ví d:
f) HÀM LCASE
Cú pháp: LCase(string)
String là chui ký t.
Công dng: Chuyn các ký t trong chui thành chui vi các ký t ng.
Ví d:
g) HÀM UCASE
Cú pháp: UCase(string)
String là chui ký t.
Công dng: Chuyn các ký t trong chui thành chui vi các ký t hoa.
Ví d: trung tam tin hocTRUNG TAM TIN HOC
h) HÀM LTRIM, RTRIM, TRIM
Cú pháp: LTrim(string), RTrim(string), Trim(string)
String là chui ký t.
Công dng: Ct b các ký t trng u chui (Ltrim), cui chui (Rtrim),
và c u và cui (Trim).
Ví d:
Tin hoc
R Tin hoc
Tin hoc
i) HÀM SPACE
Cú pháp: Space(number)
73
number là s ký t trng cn tr v.
Công dng: tr v mt chui các ký t trng.
Ví d :
4.3.3. CÁC HÀM V NGÀY THÁNG
a) HÀM DATE
Cú pháp: Date()
Công dng: Tr v n tng h trong máy).
Ví d : Date() = 28/07/2008
b) HÀM TIME
Cú pháp: Time()
Công dng: Tr v gi hin tng h trong máy).
Ví d : Time() = 11:31:54 AM
c) HÀM NOW
Cú pháp: Now()
Công dng: Tr v ngày và gi hin tng h trong máy).
Ví d : now() = 28/07/2008 11:15:47 AM
d) HÀM DAY
Cú pháp: Day(date)
date là biu thc có kiu ngày
Công dng: Tr v mt con s t n 31 cho bit ngày trong tháng.
Ví d: Day(#22/06/2006#) = 22
e) HÀM MONTH
Cú pháp: Month(date)
date là biu thc có kiu ngày
Công dng: tr v mt con s t n 12 cho bit tháng trong .
Ví d: month(#22/06/2006#) = 6
f) HÀM YEAR
Cú pháp: Year(date)
date là biu thc có kiu ngày
Công dng: tr v mt con s i di cho
Ví d: year(#22/06/2006#) = 2006
g) HÀM WEEKDAY
Cú pháp: Weekday(date)
Trong : date là biu thc có kiu ngày.
74
Công dng: Tr v mt con s i din cho ngày ca tun.
sau:
Constant
Value
Description
vbSunday
1
Sunday
vbMonday
2
Monday
vbTuesday
3
Tuesday
vbWednesday
4
Wednesday
vbThursday
5
Thursday
vbFriday
6
Friday
vbSaturday
7
Saturday
Ví d: Weekday(#22/06/2006#) = 5
4.3.4. NH DNG
HÀM FORMAT
Cú pháp: Format(expression[, Format])
Trong : expression là biu thc cn nh dng. Format là
Format
Numbers
S dng ký hiu nh dng s có sn hoc t nh ngha
Dates and times
S dng ký hiu nh dng ngày gi có sn hoc t nh ngha
Date and time serial
numbers
S dng ký hiu nh dng ngày gi hoc s có sn
Strings
S dng nh dng chui do t mình nh ngha.
D
1-30
Dd
1-30
Ww
1-51
Mmm
Hin th tên tháng vit tt bng ting Anh
Y
1-355
Yyyy
100-9666
Ví d:
:
75
Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#
' Tr v gi h thng theo nh dng long time.
MyStr = Format(Time, "Long Time")
' Tr v ngày h thng theo nh dng long date.
MyStr = Format(Date, "Long Date")
MyStr = Format(MyTime, "h:m:s") ' Tr v
MyStr = Format(MyTime, "hh:mm:ss AMPM") ' Tr v
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' Tr v
' Jan 27 1993".
' Nu không có tham s Format thì hàm s tr v mt chui.
MyStr = Format(23) ' Tr v
nh dng do ngi dùng nh ngha.
MyStr = Format(5459.4, "##,##0.00") ' Tr v
MyStr = Format(334.9, "###0.00") ' Tr v
MyStr = Format(5, "0.00%") ' Tr v "500.00%".
MyStr = Format("HELLO", "<") ' Tr v
MyStr = Format("This is it", ">") ' Tr v
4.3.5. HÀM IU KIN
HÀM IIF
Cú pháp: IIf(expr, truepart, falsepart)
Trong : expr là biu thc logic có giá tr ng hoc sai. Truepart là giá tr
mà hàm tr v khi expr là ng. Falsepart là giá tr mà hàm tr v khi expr là
sai.
Ví d: IIfàm tr v
và ngc li s tr v
76
4.4. NG PHNG PHÁP DESIGN VIEW
4.4.1.
a) C TO
T màn hình giao din chính Chn phiu Create-> Trong ngn Other Click
chut vào mc Query Design.
: Màn hình ca phiu Create
Mt ca s thit k QBE xut hin cùng vi hp thoi Show Table
: Màn hình thit k Query cùng vi hp thoi Show Table.
Query
Chn các Table ly d liu to Query, ri nhn Add (hoc ch cn nhp kép
chut vào tên Table cn chn)
Click chut vào nút Close ng ca s Show Table
Queryách chn ging nh
là cách chn trong lúc s dng phng pháp Advanced Filter/ Sort).
77
Sort:
Show:
Criteria Or:
Ví : Query
Table T_KHAC
: Màn hình thit k Query theo ví d.
b) C KT QU HOC THC HIN QUERY
XemClick chut vào nú
: t View và nú
Click chut vào nú
78
: Query trên.
c) TO CT TÍNH TOÁN TRONG QUERY
-
<>:<>
TableQuery
-
TRIGIA:[SOLUONG]*[DONGIA]
-
THANG:MONTH([NGAY])
NAM:YEAR([NGAY])
-
Table
Table
Query Table
Table
TRIGIA:[SOLUONG]*[T_CTHOADO
Table T_CTHOADON).
d) KHAI BÁO THUC TÍNH CA MT CT TRONG QUERY
Click
Query
Medium Date.
79
:
:
4.4.2. NG KÊ
belect Query
Click chut vàê
80
:Nút Totals trên thanh Toolbar.
Group By: Chn cho các ct cn kt nhó thng kê.
Sum: T
Avg: T
Min: L
Max: L
Count: mu tin
First: L
Last: L
Expression: B
Where: Query.
: Query thng kê s lng nhp, xut ln nht và nh nht ca tng
khách hàng:
: Query
81
: Queryêu cu trên.
Chú ý:
- Khi chy Query, tên ct mà ta chn trong dòng Total là mt tên hàm thì tên ct
s c thành lp theo nguyên tc <tên hàm> Of <tên ct>. Nh ví d trên khi
chn hàm Max và hàm Min cho ct s lng khi chy Query ta có 2 ct là
MaxOfSoluong và MinOfSoluong.
- Mun tên ct theo ý mun khác vi nguyên lý trên thì trên dòng Field ta có th
nh ngha tên ct theo cú pháp: <tên ct>:<tên field>.
Ví d:
:Ví d nh ngha tên ct.
82
:Kt qu khi chy Query.
4.5. QUERY
4.5.1.
trong QueryQuery
Query.
4.5.2.
a) KH NH NGHA THAM S
- Click chut vào nút Parameters trên Toolbar
:Nút Parameters trên Toolbar.
:
83
-
a tham s vào).
b)
hoc tên tham s cng có th s dng làm
biu thc khi thành lp ct mi trên dò
Ví d 1: Table T_Hoadon và T_CTHOADON theo dõi các hóa n
c lp trong khong thi gian t mt tháng n mt tháng nào c mà ngi
dùng nhp t bàn phím:
Trong Parameters nh ngha 2 bin nh hình 4.15
Trong li QBE thit lp nh sau:
:Cách s dng tham s trong Query
7: p liu khi chy Query
84
4.6.
4.6.1. CROSSTAB QUERY
Crosstab Query là hình thc thng kê d liu trong các Table theo nguyên tc ly giá
tr ca các mu tin trên mt ct nào gom nhóm li thành lp ra các ct mi
thng kê s liu theo tng nhóm hàng ngang và ct dc.
: T Table T_Nhanvien to Query thng kê s nhân viên nam, n theo tng
phò
18: CrossTab Query thng kê s nhân viên nam n theo phòng
ban
4.19.
- T màn hình thit k Query li QBE ta Click chut vào nút Crosstab trên
Toolbar.
-
4.20 :
- Trên li QBE xut hin thêm hai dòng mi là Total và Crosstab
Dòng Total có các giá tr nh ta phân tích trên.
Dòng Crosstab cha ba giá tr chn la mang ý ngha nh sau:
Row Heading: Chn cho ct mà ta mun giá tr ca ct hin th
theo dòngên dò
ên dòng Crosstab ta chn Row Heading thì
Column Heading: Chn cho ct nào mun ly giá tr ca các mu tin
trên ct gom li thành tng nhóm mi giá tr ca nhóm to thành tiêu
mt ct mi thng kê s liu. y là
85
Value:
:
Mt Crosstab Query phi có ít nht mt ct trong dòng Crosstab ta chn giá tr
Row Heading, duy nht mt ct chn Colunm Heading và duy nht mt ct
c chn làm Value.
Nu ct nào mà trên dòng Crosstab ta chn giá tr là Colunm Heading thì trên
dòng Total ca nó ta phi chn giá tr là Group by. Nu ct nào mà trên dòng
Crosstab ta chn già tr là Value thì trên dòng Total ca nó ta phi chn giá trí
khác Group by.
4.6.2. MAKE TABLE QUERY
Make Table Query là loi Query có chc nng to ra Table mi. Table mi này có
cu trúc và ni dung c chn lc t các Table khác.
a) VÍ
mu tin
b)
- T li QBE ta chn và xây dng các ct ging nh Select Query.
- T màn hình thit k Query li QBE ta Click chut vào nút Make Table trên
Toolbar.
-
4.21 : Click
- Hp thoi t tên Table mi xut hin
86
4.22 :
Nhp t
Click
4.23 :
xem trc d liu ca Table mi khi c to lp ta Click chut vào nút
View.
t vào nút Run.
87
4.24:
:
25 : T
26 :
88
27 :
4.6.3. UPDATE QUERY
Update Query là loi Query có chc nng cp nht li giá tr ca các trng trong
Table theo mt công thc nào .
a) VÍ
b)
T màn hình Create bm vào Query Design.
T màn hình thit k Query li QBE ta Click chut vào nút Update trên
Toolbar.
-
4.28 : Click
89
29 :
mu tin
4.30
4.31 : T_THEODOINHANVIEN
4.6.4. APPEND QUERY
90
Append Query là loi Query có chc nng ly d liu t Table này nhp ni
thêm làm d liu ca Table kia.
a) VÍ
mu tin
mu tin Nam)
b)
T màn hình Create bm vào Query Design.
-HOSONV).
T màn hình thit k Query li QBE ta Click chut vào nút Append trên
Toolbar.
-
4.32 :
4.33 :
mu tin
91
4.34 :
4.35 :
4.36 :
4.6.5. DELETE QUERY
Là loi Query có chc nng xóa các mu tin trong Table thõa mãn mt iu kin
nào .
a) VÍ
T
b)
T màn hình Create bm vào Query Design.
n xóa d liu to Query-HOSONV).
T màn hình thit k Query li QBE ta Click chut vào nút Delete trên
Toolbar.
92
-
4.37 :
4.38 : Q_XoaDaLapGiaDinh.
Query
4.39 :