
B o m t c s d li u trong Access ả ậ ơ ở ữ ệ
Sau đây là 10 th thu t b o m t c s d li u Access ủ ậ ả ậ ơ ở ữ ệ
C s d li u là kho ch a d li u quan tr ng c n đ c b o v . B n có th sơ ở ữ ệ ứ ữ ệ ọ ầ ượ ả ệ ạ ể ử
d ng nh ng ph n m m b o m t chuyên nghi p đ c s d li u, nh ng đ cóụ ữ ầ ề ả ậ ệ ể ơ ở ữ ệ ư ể
ph n m m đó ch c h n b n s ph i tr m t kho n phí không nh . Ng c l i,ầ ề ắ ẳ ạ ẽ ả ả ộ ả ỏ ượ ạ
b n có th s d ng m t s tính năng b o m t c a Access đ b o m t c s dạ ể ử ụ ộ ố ả ậ ủ ể ả ậ ơ ở ữ
li u m t m c đ nh t đ nh.ệ ở ộ ứ ộ ấ ị
Nh ng th thu t d i đây s giúp b n khai thác đ c m t s tính năng b oữ ủ ậ ướ ẽ ạ ượ ộ ố ả
m t s n có c a Microsoft Access.ậ ẵ ủ
1. S d ng macro AutoExec đ ki m tra và thi t l p l i cài đ tử ụ ể ể ế ậ ạ ặ
S d ng macro AutoExec đ ki m tra và thi t l p l i các tùy ch n b o m t có th bử ụ ể ể ế ậ ạ ọ ả ậ ể ị
thay đ i trong các phiên làm vi c tr c đó. AutoExec là m t macro đ c bi t có thổ ệ ướ ộ ặ ệ ể
th c hi n m c s d li u. Đ t o m t macro AutoExec, ch c n đ t tên cho m tự ệ ở ơ ở ữ ệ ể ạ ộ ỉ ầ ặ ộ
macro AutoExec m i. Ví d , macro Startup() (trong hình) có ch c năng xác đ nh ng iớ ụ ứ ị ườ
dùng, th c hi n ki m tra và cài đ t các thu c tính b o m t tr c khi ng i dùng truyự ệ ể ặ ộ ả ậ ướ ườ
c p.ậ
2. n c a s DatabaseẨ ử ổ
Nh ng tùy ch n kh i đ ng trong hình B cho phép b n xác đ nh các thu c tính c a cữ ọ ở ộ ạ ị ộ ủ ơ
s d li u khi m . Hai trong s nh ng thu c tính này giúp c s b o d li u b o m tỡ ữ ệ ở ố ữ ộ ơ ở ả ữ ệ ả ậ
h n:ơ

* Display Database Window: H y ch n tùy ch n này đ n c a s Database khi ai đóủ ọ ọ ể ẩ ử ổ
m c s d li u. Do đó ng i dùng s không th truy c p tr c ti p vào b t c đ iở ơ ở ữ ệ ườ ẽ ể ậ ự ế ấ ứ ố
t ng nào.ượ
* Use Access Special Keys: B tùy ch n này đ ng i dùng không th s d ng phímỏ ọ ể ườ ể ử ụ
F11 làm hi n c a s Database.ệ ử ổ
Hai cài đ t này h tr cho nhau, vì n u không b ch n tùy ch n ặ ỗ ợ ế ỏ ọ ọ Use Access Special
Keys ng i dùng có th n phím ườ ể ấ F11 đ làm hi n c a s Database.ể ệ ử ổ
Đ truy c p vào nh ng tùy ch n ể ậ ữ ọ Startup, vào menu Tools\ Startup. Trong Access
2007, click vào nút Office\ Access Options\ Current Database trong c a s trái và b nử ổ ạ
s th y nh ng tùy ch n này trong ẽ ấ ữ ọ Application Options. Access 2007 không có c a sử ổ
Database, nh ng b n có th làm n ư ạ ể ẩ Navigation Pane theo cách t ng t . Tùy ch n đóươ ự ọ
n m trong ằNavigation, ngay bên d i ướ Application Options.
Vi c b ch n tùy ch n ệ ỏ ọ ọ Display Database s h y l nh ẽ ủ ệ Startup. Ng i dùng có thườ ể
lo i nh ng tùy ch n này b ng cách gi phím ạ ữ ọ ằ ữ Shift trong khi m s s d li u. Đây làở ơ ở ữ ệ
th thu t nh c nh cho b n nh ng s r t nguy hi m n u ng i khác bi t đ c. Ngoàiủ ậ ắ ở ạ ư ẽ ấ ể ế ườ ế ượ
ra ng i dùng có th đ a nhi u đ i t ng vào m t c s d li u tr ng đ tránhườ ể ư ề ố ượ ộ ơ ở ữ ệ ố ể
nh ng cài đ t kh i đ ng.ữ ặ ở ộ
3. Ch n phím Shiftặ
B n có th s d ng chính giao di n đ n c a s ạ ể ử ụ ệ ể ẩ ử ổ Database. Nh ng vi c s d ngư ệ ử ụ
phím Shift l i gây nguy hi m cho c s d li u. B n có th h y b vi c s d ng phímạ ể ơ ở ữ ệ ạ ể ủ ỏ ệ ử ụ
Shift b ng cách đ i giá tr c a thu c tính ằ ổ ị ủ ộ AllowBypassKey thành False khi đóng c sơ ở
d li u. Tuy nhiên, b n cũng có th g i đo n mã sau t m t tác v đóng b t kì:ữ ệ ạ ể ọ ạ ừ ộ ụ ấ
Public Sub SetStartupOptions(propname As String, _
propdb As Variant, prop As Variant)
'Set passed startup property.

Dim dbs As Object
Dim prp As Object
Set dbs = CurrentDb
On Error Resume Next
dbs.Properties(propname) = prop
If Err.Number = 3270 Then
Set prp = dbs.CreateProperty(propname, _
propdb, prop)
dbs.Properties.Append prp
End If
Set dbs = Nothing
Set prp = Nothing
End Sub
Khi g i th t c, c n đ m b o ph i l a ch n đúng tùy ch n kh i đ ng. Ví d :ọ ủ ụ ầ ả ả ả ự ọ ọ ở ộ ụ
Call SetStartupOptions("AllowBypassKey", dbBoolean, False)
Sau khi cài đ t thu c tính này cho ti n trình đóng, c s d li u s vô hi u hóa phímặ ộ ế ơ ở ữ ệ ẽ ệ
Shift.
Ngoài ra b n có th cài đ t b t kì thu c tính kh i đ ng nào. Ví d làm n c a sạ ể ặ ấ ộ ở ộ ụ ẩ ử ổ
Database:
Call SetStartupOptions("StartupShowDBWindow", dbBoolean, False)
B n có th cài đ t nh ng tùy ch n đóng và m c s d li u v i m t ngo i l . Đó làạ ể ặ ữ ọ ở ơ ở ữ ệ ớ ộ ạ ệ
thu c tính ộAllowBypassKey ph i đ c cài đ t khi đóng c s d li u, và b n c n đ tả ượ ặ ơ ở ữ ệ ạ ầ ặ
tham chi u t i th vi n ế ớ ư ệ Data Access Objects (DAO). N u không th t c này s gây raế ủ ụ ẽ
l i tham chi u.ỗ ế
Tuy nhiên, n u ai đó bi t s d ng phím Shift cũng có th bi t cách khôi ph c l i nóế ế ử ụ ể ế ụ ạ
b ng cách thay đ i giá tr c a ằ ổ ị ủ AllowBypassKey thành True. Trong tr ng h p này b nườ ợ ạ
s ph i áp d ng ph ng pháp b o m t nhóm làm vi c đ ch cho phép admin truy c pẽ ả ụ ươ ả ậ ệ ể ỉ ậ
vào thu c tính này.ộ
4. Chia c s d li uơ ở ữ ệ
Vi c b o v m t c s d li u nh s d dàng h n r t nhi u so v i c s d li u l nệ ả ệ ộ ơ ở ữ ệ ỏ ẽ ễ ơ ấ ề ớ ơ ở ữ ệ ớ
v i nhi u đ i t ng d li u và giao di n. B n có th chia m t c s d li u l n thànhớ ề ố ượ ữ ệ ệ ạ ể ộ ơ ở ữ ệ ớ
hai c s d li u nh , trong đó c s d li u th nh t ch a b ng và quan h (đ cơ ở ữ ệ ỏ ơ ở ữ ệ ứ ấ ứ ả ệ ượ
g i là backend), và c s d li u còn l i ch a các đ i t ng giao di n (còn g i làọ ơ ở ữ ệ ạ ứ ố ượ ệ ọ
frontend). Hai c s d li u này giao ti p thông qua các b ng đã đ c liên k t. M tơ ở ữ ệ ế ả ượ ế ộ
đi m quan tr ng là ng i dùng trong frontend không th thay đ i thi t k b ng trongể ọ ườ ể ổ ế ế ả
backend. (có nhi u cách đ phân chia c s d li u nh ng bài vi t này ch h ng vàoề ể ở ở ữ ệ ư ế ỉ ướ
m c đích b o m t).ụ ả ậ

Đ chia c s d li u, vào menu ể ơ ở ữ ệ Tools\ Database Utilities\ Database Spliter sau đó
làm theo h ng d n. Trong ướ ẫ Access 2007, click Access Database trong nhóm Move
Data c aủ tab Database Tools.
5. Tránh s d ng Compact On Closeử ụ
Nh ng ai đã t ng s d ng Access có l đ u bi t đ n tác d ng c a vi c nén c s dữ ừ ử ụ ẽ ề ế ế ụ ủ ệ ơ ở ữ
li u t ng xuyên. Quá trình nén s t o ra m t b n sao c a c s d li u, ki m tra cácệ ườ ẽ ạ ộ ả ủ ơ ở ữ ệ ể
đ i t ng, xóa b d li u t m th i và s p x p l i nh ng ph n v trên đĩa. Tóm l i,ố ượ ỏ ữ ệ ạ ờ ắ ế ạ ữ ầ ỡ ổ ạ
nén giúp c s d li u luôn n đ nh.ơ ở ữ ệ ổ ị
Tùy ch n ọCompact On Close, đ c tích h p đ u tiên trong Access 2000, giúp nén cượ ợ ầ ơ
s d li u t đ ng khi k t thúc phiên làm vi c. Không may, ti n trình này l i gi l iở ữ ệ ự ộ ế ệ ế ạ ữ ạ
c nh ng file không c n thi t. N u th y nh ng file t m th i nh ả ữ ầ ế ế ấ ữ ạ ờ ư db1.mdb, db2.mdb,
… trong folder ch a c s d li u c a b n, chúng có th là m t s n ph m ph c aứ ơ ở ữ ệ ủ ạ ể ộ ả ẩ ụ ủ
tính năng nén.
Nh ng file th a này có th gây ra r c r i cho b n n u ai đó vào folder cũng có th truyữ ừ ể ắ ố ạ ế ể
c p c vào nh ng file t m th i. Đó là m t l h ng b o m t. Có 2 cách đ b o v cậ ả ữ ạ ờ ộ ỗ ổ ả ậ ể ả ệ ơ
s d li u c a b n:ở ữ ệ ủ ạ
* Th ng xuyên ki m tra và xóa nh ng file t m. (Tuy nhiên đây không ph i là bi nườ ể ữ ạ ả ệ
pháp thi t th c và th m chí không có hi u qu ).ế ự ậ ệ ả
* Không s d ng tính năng Compact On Close. Thay vào đó nên nén c s d li u theoử ụ ơ ở ữ ệ
cách th công. Đây là cách t t nh t đ b o v c s d li u kh i l h ng trên.ủ ố ấ ể ả ệ ơ ở ữ ệ ỏ ỗ ổ
6. n các đ i t ngẨ ố ượ
Vi c n đi nh ng đ i t ng nh b ng, truy v n, form, … không ph i là ph ng phápệ ẩ ữ ố ượ ư ả ấ ả ươ
b o v h u hi u, vì n u ng i dùng tìm th y thì h có th thay đ i chúng. Tuy nhiênả ệ ữ ệ ế ườ ấ ọ ể ổ
nh ng đ i t ng này s đ c b o m t h n n u ng i dùng không bi t t i s t n t iữ ố ượ ẽ ượ ả ậ ơ ế ườ ế ớ ự ồ ạ
c a chúng. Vi c n các đ i t ng ch đ n thu n giúp h n ch l i gây m t d li u màủ ệ ẩ ố ượ ỉ ơ ầ ạ ế ỗ ấ ữ ệ
không có tác d ng b o m t. Đ n m t đ i t ng trong c a s Database (hayụ ả ậ ể ẩ ộ ố ượ ử ổ
Navigation), b n ch c n ph i chu t lên đ i t ng, ch n ạ ỉ ầ ả ộ ố ượ ọ Properties sau đó ch n tùyọ
ch n ọHidden Attribute.
Tuy nhiên, nh ng ng i dùng Access có th làm hi n nh ng đ i t ng này b ng cáchữ ườ ể ệ ữ ố ượ ằ
vào menu Tools\ Options, ch n tab ọView sau đó h y ch n tùy ch n ủ ọ ọ Hidden Objects
trong m c ụShow. Trong Access 2007, ph i chu t vào thanh menu ả ộ Navigation, ch nọ
Navigation Options\ Show Hidden Objects\ OK.
Nh đã nói, vi c n các đ i t ng không có tác d ng b o m t. N u b n s d ngư ệ ẩ ố ượ ụ ả ậ ế ạ ử ụ
ph ng pháp này, c n nh r ng nh ng module n v n hi n th trên ươ ầ ớ ằ ữ ẩ ẫ ể ị Visual Basic
Editor (VBE). H n n a, ch nên n nh ng đ i t ng quan tr ng vì khi ng i dùngơ ữ ỉ ẩ ữ ố ượ ọ ườ
truy c p vào mà không th y c a s Database h s tìm ki m nó. B n không th nh pậ ấ ử ổ ọ ẽ ế ạ ể ậ

nh ng đ i t ng n vào m t c s d li u n u quá trình nh p không phù h p.ữ ố ượ ẩ ộ ơ ở ữ ệ ế ậ ợ
B n có th l p trình đ n đi m t đ i t ng b ng mã VBA sau:ạ ể ậ ể ẩ ộ ố ượ ằ
CurrentDb.TableDefs(tablename).Attributes = dbHiddenObject
T phiên b n Office 2000 tr v tr c, vi c s d ng mã đ gán thu c tính n vào m từ ả ở ề ướ ệ ử ụ ể ộ ẩ ộ
b ng r t r c r i vì Access coi b ng đó là b ng t m th i. Và trong l n nén ti p theoả ấ ắ ố ả ả ạ ờ ầ ế
Access s xóa b nó cùng v i d li u. Vì vây tránh s d ng ph ng pháp này khi làmẽ ỏ ớ ữ ệ ử ụ ươ
vi c v i các phiên b n đó.ệ ớ ả
7. Ch n thông báo l iặ ỗ
Khi xu t hi n l i trong mã, VBA hi n th thông báo l i. N u ng i dùng nh n đ cấ ệ ỗ ể ị ỗ ế ườ ậ ượ
thông báo đó và click vào nút Debug h s ti p c n đ c v i module ch a l i đó trongọ ẽ ế ậ ượ ớ ứ ỗ
VBE. Trong tr ng h p này ng i dùng có toàn quy n đ i v i đo n mã. Thôngườ ợ ườ ề ố ớ ạ
th ng, ng i dùng s không bi t x lý và yêu c u ng i l p trình giúp đ . Trái l i,ườ ườ ẽ ế ử ầ ườ ậ ỡ ạ
cũng có tình hu ng ng i dùng xóa b t t c đo n mã đó.ố ườ ỏ ấ ả ạ
Trong giai đo n phát tri n, kh năng truy c p nhanh vào mã giúp ti t ki m th i gian.ạ ể ả ậ ế ệ ờ
Nh ng khi qu n lý c s d li u thì đó là m t th m h a. T t nh t, trong m i th t cư ả ơ ở ữ ệ ộ ả ọ ố ấ ỗ ủ ụ
nên b sung m t s tính năng x lý l i đ ch n thông báo và lo i b nút ổ ộ ố ử ỗ ể ặ ạ ỏ Debug.
8. Đ t m t kh u b o v c s d li uặ ậ ẩ ả ệ ơ ở ữ ệ
Vi c thi t l p m t kh u cho c s d li u s gi i h n quy n truy c p cho t ng ng iệ ế ậ ậ ẩ ơ ở ữ ệ ẽ ớ ạ ề ậ ừ ườ
dùng c th cũng r t quan tr ng m c dù hi n nay có nhi u ch ng trình nhóm ba cóụ ể ấ ọ ặ ệ ề ươ
th phá b m t kh u c a c s d li u.ể ỏ ậ ẩ ủ ơ ở ữ ệ
Đ cài đ t m t kh u b n ch c n th c hi n các thao tác sau:ể ặ ậ ẩ ạ ỉ ầ ự ệ

