Rồi vào Field chọn trờng cần sắp xếp, vào Short chọn kiểu sắp xếp và vào Criteria và mục or để chọn điều kiện lọc sau đó chọn nut Save As Query để chạy đợc tệp ảnh ta phải làm nh sau: +
Trang 1Ngôn ngữ lập trinh access 1:
1) môi trờng làm việc của Access:
Microsoft Access là 1 bộ của Microsofft ofice nên mọi cách vào cửa sổ làm
việc dều giống word, excel…
2) vào làm việc với Access:
Vào File > New > Blark Database rồi chọn địa chỉ đặt th mục làm việc rồi chọn Create
* thẻ Genegal gồm có các mục sau:
+ Field size: độ dài của trờng.
+ Format: Định dạng cho trờng.
+Input mask: dịnh dạng khi ta nhập DL.
+ Caption: chỉ định 1 chuỗi kt dùng làm nhãn cho vùng trong biểu mẩu + Default value: chỉ dịnh giá trị mặc định ban đầu ma Access tự động gán
cho vùng làm việc khi thêm 1 mẫu tin mới
+ validution rule: ẩn định biểu thức dùng làm quy tắc để ẩn định giới han
và kiểm tra những giá trị lợp lệ của những DL nhập cho vùng
+ Validution text: chỉ định 1 chuỗi văn bản thông báo khi ta sử dụng nhập
DL không thoả mãn quy tắc đã chỉ định ở mục trớc
+ Required: chỉ định cho rõ DL nhập cho vùng bắt buộc hay không.
+ Alow zero length: chỉ rõ DL nhập cho vùng có chấp nhận chuỗi KT rỗng
hay không
* các kiểu DL:
+ Text: kiểu chuỗi kt có độ dài tối đa là 255 kt.
+ Memo: là kiểu chuỗi kt lớn dùng để soạn thảo văn bản.
+ Number:
- Byte: nhận số kt dới 255.
- Integer: kiểu số nguyên.
- long integer: kiểu só nguyên cớ lớn.
Trang 2- Single: kiểu số thực.
- ………
+ Date/time: kiểu ngày giờ, rồi vào Format để chọn các kiểu thích hợp + Auto number: kiểu đếm.
+ Yes/No: kiểu logic.
+ OLE object: kiểu này dùng để đa ảnh,nhạc vào
4) tạo khoá: ta kích đầu dòng của trờng cần làm khoá để bôi đen cả trờng
rồi chọ nút Pmary Key
Chú ý:
* Access không phân biệt khoá chính và khoá phụ mà chỉ phân biệt có khoá
hay không
* phải tạo thật dúng khoá cho trờng, nếu tạo không đung thì bài toán sẽ
không đợc nh yêu cầu hay chạy sai, bị lỗi
* thờng là 1 bảng chỉ có 1 khoá trở xuống ( trừ trơng hợp đặc biệt)
* khi chọn khoá và kéo liên kết phải đúng yêu cầu theo mỗi quan hệ:
+ nếu kéo từ trờng không khoá sang trờng khoá hây ngợc lại chiều thì quan
Ta nên nhập DL bằng tiếng việt để dễ dàng quán lý, trớc khi vào nhập thì ta
định dạng phông chữ cho bảng, mỗi bảng nhập ta phải định dạng 1 lần
6) Tìm kiếm:
Ta mở bảng ra rồi kích vào đầu tiên của trờng cần tìm kiếm rồi vào nut Find
Vào mục Match chọn Any part of Finld Rồi đánh kt cần tim rồi nhấn Field
Next.
7) Sắp xếp và lọc DL:
+ nên chọn các trờng đớc sắp xếp ở cạnh nhau bằng cách kích vào trên trờng
và rê trờng lại gần nhau
+ vào Reconds > Fider > Advanced Filer short:
Trang 3Rồi vào Field chọn trờng cần sắp xếp, vào Short chọn kiểu sắp xếp và vào
Criteria và mục or để chọn điều kiện lọc sau đó chọn nut Save As Query
để chạy đợc tệp ảnh ta phải làm nh sau:
+ vào lớp Form > Create Form by using Wizad rồi chọn bảng và các ờng cần đa ra > Next > Next > Next > chọn kiểu chạy và Finish
tr-9) tạo trờng kết nối với trờng trờng khác để khi nhập ta chỉ cần láy từ trờng đó là đợc:
Sau khi nhập tên trờng ta chọn kiểu cho trờng là Lockup Wizard > Next > chọn bảng cần kết nôi rồi nhấn Next > chọn trờng cần hiển thị khi kết nối +
Next > chọn trờng cần sắp xếp và kiểu sắp xếp + Next > xoá dấu ở mục Hide key column để hiện cả các mục mà ta đã chọn hiển thị + Next > chọn
trờng cần láy dữ liệu + Next > Finish > yes
Chú ý:
Khi ta liên kết láy DL từ trờng khác thì ta chọn hay nhập trùng thì nó không bảo lỗi vậy ta phải làm nh sau để nó bảo lỗi:
???????????????????????????????????????????????????????????????????
10) Thay đổi trong trờng:
Chọn bảng cần thay đổi chọn Design rồi tiến hành sữa chữa
11)Đặt Password cho tệp làm việc:
Vào Tools > Secunity > Unset Database Pasword rồi tiến hành đặt
password nh ở các Ofice khác
12) Tạo mỗi quan hệ cho các bảng:
B1: Ta mỏ Database có các bảng cần liên kết rồi vào nút Relatiónhops
Nừu cha có các bảng thì ta phải Add vào bằng các kích phải chuột vào
Relationships chọn Show table rồi Add vào.
B2: tạo các liên kết giữa các bảng.
Sau khi kéo liên kết cho 2 bảngt bất kỳ thì máy sẽ hiện lên bảng sau
Trang 4Ta Bật hộp kiểm tra Enforce Referential Integrity nếu
- Trờng của bảng chính là khóa chính
- Các trờng quan hệ có cùng kiểu dữ liệu
- Cả 2 bảng thuộc cùng một CSDL
Khi bật hộp này sẽ có các tùy chọn:
+ Cascade Update Related Fields: bật hộp kiểm tra này nếu muốn Access tự
động cập nhật giá trị của các vùng liên hệ khi vùng khóa chính của bảng chính thay đổi.( ta nên chọn mục này)
+ Cascade Delete Related Fields: bật hộp kiểm tra này nếu muốn Access tự
động xóa bỏ giá trị của các vùng liên hệ khi vùng khóa chính của bảng chính
bị xóa { Xóa các bản ghi quan hệ }
Khi ta Click vào mục Jon Type ta sẽ có các mục sau:
+ Only include rows where the joined fields from both tables are equal: chỉ gồm những dòng nơi mà các trờng kết nối từ cả 2 bảng là tơng đơng (=)+ Include all records from “Huyen” and only those records from “Dslop” where the joined fields are equal: bao gồm tất cả các bản ghi từ “Huyen” và chỉ những bản ghi từ “Dslop” nơi các trờng kết nối tơng đơng nhau
+ Include all records from “DSlop” and only those records from “Huyen” where the joined fields are equal: bao gồm tất cả các bản ghi từ “Dslop” và chỉ những bản ghi từ “Huyen” nơi các trờng kết nối tơng đơng nhau
Chú ý:
* khi có quan hệ 1 – nhiều thì chọ mục 3.
* khi có chỉ quan hệ 1 – 1 thì chọn mục 1 hay nhiều – 1.
* để xoá bỏ liên kết ta chỉ cần kích phải chuột vào liên kết chọn Delete B3: chọn lệnh Create cứ làm nh thế đến khi kết nối xong thì đòng
Relationships.
truy vấn(Query):
Trang 5chú ý: khi thực hiện truy vẫn với DL đợc lấy từ nhiều bảng thì phải đa
đầy đủ các bảng quan hệ cần thiết vào và kéo quan hệ đúng yêu cầu quan hệ của bài toán yêu cầu
A) truy vấn thờng:
- Truy vấn là một công cụ mạnh của Access dùng để tổng hợp dữ liệu từ các bảng, sắp xếp và tìm kiếm dữ liệu.
Truy vấn sẽ dùng các cách nh lọc DL.
Các ví dụ của nó đợc thực hành trong phần thục hành dới đây.
Tạo bảng truy vấn thông tin:
B1 Trong cửa sổ Database của CSDL QLCBGV, chọn mục Query, bấm nút
New → Design View (hay Design query Vizad) → OK Access sẽ mở hộp
Show Table Chọn thẻ Table để hiện danh sách bảng.
B2 Chọn các Table liên quan đến CSDL sau đó bấm nút Add, bấm nút Close
để đóng cửa sổ Show Table
B3 Tạo mối quan hệ giữa các Table (phải kéo từ bảng con về bảng cha tức
là kéo từ bảng có DL về bảng tổng quát).
B4 Chọn các trờng đa vào truy vấn: kéo tên các trờng (ví dụ: MACB,
HOTEN, NS, TENDV) vào dòng Field (hay vào trờng Field để chọn cũng
Vào hàng Cretirea hoăc hàng Or để chọn diều kiên cho danh sách đa ra
* đối với trờng tính toán thì ta làm nh sau:
+ nếu tính trờng đợc đa vào:
Ta kéo trờng đó vào sau đó thêm vào trờng đó công thức tính và trớc công thức phải là dấu –:–
+ nếu tính cột trơng mà cha có trong bảng đa:
Ta chỉ cần đặt tên cho trờng đó rồi thực hiện phép tính giống nh trên
+ nếu tên trờng của công thức có kt trống:
Sau dấu “[” ta không đợc đem vào kt trống vì nếu đem vào thi máy sẽ bắt nhập thông số do đó máy sẽ tính sai kết quả
Trang 6* mét sè §K kh¸c :(läc theo th¸ng, n¨m, ngµy):
Ta chØ cÇn trong « ®iÌu kiÖn ta ghi theo CT:
+ Lice–*/number/*–: nÕu muèn tim theo th¸ng(trong tv), theo ngµy (trong ta)
Hay CT sau:
+ Lice–*/*/number–: theo n¨m
+ Lice–number/*/*–: nÕu muèn tim theo ngµy(trong tv), theo th¸ng (trong ta)
B6 Ra khái cöa sæ truy vÊn
B7 Thùc hiÖn truy vÊn: chän truy vÊn, nhÊn nót Open
+ T×m th«ng tin TS cã Tæng ®iÓm>= a víi a nhËp vµo tõ bµn phÝm
+ T×m th«ng tin TS cã tæng diÓm >a vµ <b víi a,b nhËp vµo tõ bµn phÝm.Gi¶i (ghi vµo hµng DK nh sau):
+ >=[nhap a de tim diem tong >=a]
+ (>[nhap a de tim diem tong >a]) and(<[nhap b de tim diem tong >b])
c) truy vÊn theo nhãm DK ( truy vÊn tham kh¸o
B1: vµo query gièng truy vÊn b×nh thêng.
B2: vµo Menu Query > Crosstab query
B3: thùc hiÖn truy vÊn.
VD1:
Víi table canbo: macb, tencb, khoa, makhoa,to(toan,ly,hoa),–
Thùc hiªn dÓ da ra c¸c bang nh sau:
Trang 7kéo trờng makhoa, tên khoa, tổ xuống dòng Fietl.
Rồi chon chế độ nh sau:
Crosstab Row heading Row heading colum heading value Sort (các chí tiêu sắp xếp nếu có)
Creceria (các điều kiện nếu có)
Table2:
Kéo trờng Tổ , makhoa vào:
Total Group By Group By count
Crosstab Row heading colum heading value
Sort (các chí tiêu sắp xếp nếu có)
Creceria (các điều kiện lọc DL)
Chú ý: trờng dùng để làm cột colum heading thì chỉ có 1 trờng đợc làm,
còn số trờng dùng để làm hàng Row heading thì tuỳ ý
c) truy vấn sửa dữ liệu:
các bớc truy vẫn:
B1: tạo truy vẫn giống nh truy vẫn thờng (khi ta chọn bảng thì chọn đủ
bảng để tạo quan hê giữa 2 hay nhiểu bảng có DL quan hệ và kéo trờng vào thì ta kéo những trờng cần thay đổi giá trị hoặc những trờng có điều kiện vào)
B2: vào menu Query > Update query, sau đó vào ô điều kiện để chọn dk
cho những bản ghi cần thay đổi vào Update to để chọn giá trị cần thay đổi:+ có thể là giá trị: 5, 7, TN, 001 thì trờng đó đợc nhận gt nhập vào đó.+ có thể là công thức: bdiem1.mon1+0.5: trờng bdiem1.mon1 đợc cộng vào
gt là 0.5
Chú ý: DL của bảng gốc sẽ bị thay đổi sau khi chạy lệnh.
d) truy vấn xoá dữ liệu:
Trang 8B1) thực hiện truy vẫn thông thờng đến add bảng.
B2) Add dấu * vào và những trờng cần lấy ĐK để xoá cho bản ghi B3) chọn chế độ nh bảng sau:
2 trờng trên là đại diện cho 2 nhóm trờng: bảng xoá bản ghi , và trờng
điều kiện.
Chú ý: DL trong bảng gốc sẽ bị xoá.
d) truy vấn bổ sung dữ liệu:???????????????????????? B1) thực hiện truy vẫn thông thờng đến add bảng.
B2) Add các trờng cần lấy giá trị và trờng DK vào.
B3) vào nenu Query > Append table rồi chọn bảng để đa ra DL cần đem
vào và đem vào trờng nào thì ghi vào các ô Uppend to
Chú ý:
Nếu tên bảng đã trùng với bảng đã tạo thì:
Nếu trờng Add vào mà trùng với bảng đã tạo thì DL sẽ đem vào trờng đó
B4) mở bảng cần Add ra để xem DL.
e) truy vấn tạo bảng:
B1) thực hiện truy vẫn thông thờng đến add bảng.
B2) Add các trờng cần lấy giá trị và trờng DK vào.
B3) vào nenu Query > Make-table query rồi đánh tên bảng cần tạo.
e) truy vấn con:
truy vẫn con cũng giống nh truy vẫn bình thờng nhng ở ô điều kiện ta làm nh sau:
kích chuột phải chọn Buld– rồi vào cửa sổ đánh lệnh SQL, lệnh SQL phải
đặt trong 2 giấu ngoặc “()”
VD1: đa ra ds những sv co mã=001.
Giải: vết câu lệnh ở ĐK của cột SBD:
(select sbd from [ho so sinh vien] where sbd=”001”)
VD2: đa ra ds sv có quê quán = quê quán của sv có sbd=001.
Giải: viết câu lệnh ĐK ở cột [que quan]:
(select [que quan] from [ho so sinh vien] where SBD=”001”)
Tạo form:
Trang 9A tạo form winzab:
Các bớc thực hiên tạo Form Winzad:
Vào Form > New > Desing View > OK để vào Form Desing
Sau đó tạo các nút cho Form:
+ Label: Để viết chữ (tên trờng, chú thích ).
+ Text Box: là mục để sau này hiện DL nếu có DL cho ô.
+ Combo Box: dùng để khi chạy Form thì mình chọn 1 trong những DL thì
Form sẽ cũng hiển thì các thông tin tơng ứng cho nó
+ tạo nút Combo box su đó tắt bảng liên kết của nó
+ kích chuột phải vào Form chọn Propeties sau đó kích vào combo mói tạo,
vào thẻ All chọn các mục:
Column Wictths: chọn = 0 để che khuất cột thứ nhất của nó.
*) tạo Combo lấy DL từ bảng:
+ tạo nút Combo.
+ chọn mục I Want the combo box to jock up the value in table or query rồi chọn Next
+ chọn table hay query cần đem DL vào rồi chon Next.
+ chọn các trờng cần lấy vào combo rồi chọn Next.
+ chọn trờng cần sắp xếp rồi chọn Next.
Trang 10Sau khi xuất hiện bảng Winzad ta chọn mục Record navigation và chọn tiếp mục Go to Next record > Next > Next > ta đặt tên cho nút rồi chọn
Finish.
+ tạo bằng Design:
Sau khi tạo xong nút thì ta ấn Cancel sau đó kích phải vào Form chọn
Propeties sau khi xuất hiện bảng ta vào chọn Command cần làm và chọn
thẻ Event kích vào dấu “…” của mục Click on rồi chọn mục Code Bulder
> OK sau đó ghi thêm lệnh nh sau:
On Error GoTo baoloi
DoCmd.GoToRecord , , acNext
Exit Sub
baoloi:
MsgBox "ban ghi da ve cuoi cung roi xin vui long dung lai"
* Tạo nút Previw (lùi 1 bản ghi):
+ tạo bằng Winzad:
Sau khi xuất hiện bảng Winzad ta chọn mục Record navigation và chọn tiếp mục Go to Previous record > Next > Next > ta đặt tên cho nút rồi chọn Finish
+ tạo bằng Design:
Sau khi tạo xong nút thì ta ấn Cancel sau đó kích phải vào Form chọn
Propeties sau khi xuất hiện bảng ta vào chọn Command cần làm và chọn
thẻ Event kích vào dấu “…” của mục Click on rồi chọn mục Code Bulder
> OK sau đó ghi thêm lệnh nh sau:
On Error GoTo ductinh
DoCmd.GoToRecord , , acPrevious
Exit Sub
ductinh:
MsgBox "ban ghi da ve dau roi xin ban vui long dung lai"
* tạo nút chuyển về đầu bản ghi:
Sau khi tạo xong nút thì ta ấn Cancel sau đó kích phải vào Form chọn
Propeties sau khi xuất hiện bảng ta vào chọn Command cần làm và chọn
thẻ Event kích vào dấu “…” của mục Click on rồi chọn mục Code Bulder
> OK sau đó ghi thêm lệnh nh sau:
On Error GoTo baoloi2
Trang 11* tạo nút về cuối bản ghi:
Sau khi tạo xong nút thì ta ấn Cancel sau đó kích phải vào Form chọn
Propeties sau khi xuất hiện bảng ta vào chọn Command cần làm và chọn
thẻ Event kích vào dấu “…” của mục Click on rồi chọn mục Code Bulder
> OK sau đó ghi thêm lệnh nh sau:
Nh ở phân giới thiệu lý thuyết
Phần ii: truy vẫn dữ liệu:
Các ví dụ đều lấy bảng quán lý sinh viên:
Bảng hssv:
hoten,SBD,diachi,quequan,ngaysinh,diemtrungbinh,tongdiem,xeploai Bảng phach1:SBD,maphach1.
Giải:
Tao tao Query nh sau:
Chọn New > Design Vew > OK (Query > Create Query in Design Vew)>
Add các bảng cần lấy DL,tạo liên kết rồi vào mục Table chọn tên bản của ờng cần lấy, vào Field chọn tên trờng cần lấy, vào Sort để chọn kiểu sắp xếp,vào Show để chọn , vào Criteria và or để chọn điều kiện lọc
Trang 12tr-PhÇn iii: truy vÉn d÷ liÖu:
1) T¹o Form ®¨ng nhËp:
Ta vµo thuéc tÝnh Input Mask cña Text ch÷a Passworld
Råi chän muc hiÓn thÞ Passworld > Next >Finish
Ta t¹o cac nót lÖnh nh sau:
Trang 13If Text2 = "ductinh" Then
DoCmd.Quit
Một só yêu cầu ở Formschinh:
2) tạo form menu (lay dùng Database qlsinhvien):
Form menu gồm có các mục sau:
- tim kiem theo tensv(sbd).
- tim kiem theo ten khoa.
- tim kiem theo ten lop.
- tim kiem theo ten tinh.
- tim kiem tong hop.
+ thong ke:
- thong ke theo ten sv.( có thể không cũng đợc)
Trang 14- thong ke theo lop.
- thong ke theo khoa.
- thong ke theo tinh.
- thong ke theo xep loai.
- thong ke tong hop.
- tim kiem theo sbd:
B1: tạo Form tong hop: có đầy đủ các trờng, từ các bảng.
B2: tạo Form có com bo để chọn sbd:
Chọn thuộc tính cho Conbo này là:
Row Source:hssv
Trang 15Column Court (số cột):2
Column Heads: yes(No)
Column Wicths (độ rộng của cột đầu):0
Bound Column:2(để láy dl tù cột thứ 2)
B3: kéo form tong hop vao và lien kết:
kích phải chuột vào Forms / Propeties:
link child fields: chọn tên trờng mà combo lấy DL(hoten ) link mater fields: tên combo ở trên (combo0, combo1–.)
- Tin kiem theo khoa:
B1: tạo Form có com bo để chọn tên khoa:
Chọn thuộc tính cho Conbo này là:
Row Source:bang khoa
Column Court (số cột):2
Column Heads: yes(No)
Column Wicths:0
Bound Column:2
B2: kéo form tong hop vao và lien kết:
kích phải chuột vào Forms / Propeties:
link child fields: chọn tên trờng mà combo lấy DL(ten khoa ) link mater fields: tên combo ở trên (combo0, combo1–.)
Trang 16- tim kiếm thông tin theo lớp:
B1: tạo Form có com bo để chọn tên lớp:
Chọn thuộc tính cho Conbo này là:
Row Source:bang lop
Column Court (số cột):2
Column Heads: yes(No)
Column Wicths:0
Bound Column:2
B2: kéo form tong hop vao và lien kết:
kích phải chuột vào Forms / Propeties:
link child fields: chọn tên trờng mà combo lấy DL(ten lop ) link mater fields: tên combo ở trên (combo0, combo1–.)
- Tìm kiem thông tin theo tên tỉnh:
B1: tạo Form có com bo để chọn tên tỉnh:
Trang 17Chọn thuộc tính cho Conbo này là:
Row Source:bang tinh
Column Court (số cột):2
Column Heads: yes
Column Wicths:0
Bound Column:2
B2: kéo form tong hop vao và lien kết:
kích phải chuột vào Forms / Propeties:
link child fields: chọn tên trờng mà combo lấy DL(ten tinh )
link mater fields: tên combo ở trên (combo0, combo1–.)
- Tim kiếm tổng hợp (có thể làm từng nút 1 để thử):
B1: tạo Form có các combo để chọn sbd, tên khoa, tên lop, tên tỉnh:
Chọn thuộc tính cho các Conbo này là:
Row Source: hssv, bang khoa, bang lop, bang tinh.
Column Court (số cột):2
Column Heads: yes
Column Wicths:0
Bound Column:2
B2: kéo form tong hop vao và lien kết:
kích phải chuột vào Forms / Propeties:
link child fields: chọn tên trờng mà các combo lấy DL(hoten ) chú ý: phải có dấu phẩy ngăn cách giữa Các tên mà các combo nhận: VD: ho ten,ten tinh,ten lop–
link mater fields: tên combo ở trên (combo0, combo1–.):
chú ý: phải có dấu phẩy ngăn cách giữa các combo:
VD:
Trang 18+ Ta làm các queries thống kê sau:
- thong ke theo ten sv.( có thể không cũng đợc)
- thong ke theo lop.
- thong ke theo khoa.
- thong ke theo tinh.
- thong ke theo xep loai.
- thong ke tong hop.
Làm theo mẫu sau:
- Làm thống kê theo lớp:
Trang 19Chú ý: để có hàng Tolral: ta kích hoạt nút
- Thống kê theo khoa:
- thống kê theo tỉnh:
Trang 21Row Source: bang khoa
Column Court (số cột):2
Column Heads: yes
Column Wicths:0
Bound Column:2
Rồi save form này với tên là Form1.
B2: Vào Qyeries Desize :
đem các trờng cần lấy vào
Sau đó dánh ở ô diều kiện của cột ten khoa lệnh sau:
Forms!form1!combo1(tên combo ở trong form trên).value
Và Save với tên là Query1
Sau đó kéo Query1 vào Form1 rồi ẩn Finish, và tiến hành vào liên kết nh xấp form
B3: vào Report làm 1 Report Winzad đê chạy tất các trờng của Query1 B4: vào Form1 tạo Command Winzad chạy Report:
Sau khi kéo command vào form rồi chọn Report openations / Preview
report > chọn report trên > vào text chọn In DL > Next > Finish.
* Kết thúc:
Vào Macro để tạo Macro ket thuc:
Trang 22** T¹o Macro cã tªn lµ nhap D lieu:
Macro name: Active: Cac thuéc tÝnh kh¸c: nhap bang HSSV OpenForm Formname: nhap bang HSSV nhap bang Khoa OpenForm Form name: nhap bang khoa nhap bang lop Openform Form name: nhap bang lop nhap bang tinh Openform Form name: nhap bang tinh nhap bang xep loa Openform Form name: nhap bang xep loai
** T¹o Macro Tim kiem:
** T¹o Macro Thong ke: