Upload
nguyenac
View
217
Download
0
Embed Size (px)
Citation preview
7/28/2019 Baomat
1/7
Hu nh ai mn mt ng dng Microsoft Access cng xi mt trong nhng (hoc tt c) cch
sau bo v c s d liu (CSDL), hng kha tay, kha chn nhng nhn vin t m, thch
quy:
1. Bo v m lnh VBA (Visual Basic for Application) bng cch chn mc Properties trn trnhn Tools ca ca s son tho Microsoft Visual Basic ri chn trang Protection trn hp thoi
Project Properties. Cui cng, chn Lock project for viewing, km theo l mt khu bo v. Vi
cch ny, cu trc v d liu cc bng (table) vn c th c xem v sa i.
2. Dng chc nng Make MDE file ngn khng cho sa i m lnh, thit k biu mu
(form) v thit k bo biu (report). Vi cch ny, cu trc v d liu cc bng (table) vn c
th c ly i chuyn vo tp tin .MDB khc m xem v sa i.
3. Dng chc nng Encrypt / Decrypt database m ha CSDL, ngn khng cho ccchng trnh tin ch hay x l vn bn gii m nhng vn c th dng Access m.
4. Dng chc nng Set database password quy nh mt khu cho CSDL. Cch ny hi
phin nu c mt bng trong CSDL khc lin kt (link) vi n. Nu qun mt khu th khc
lun ch sao!
5. Thit k mt biu mu khi ng, trong yu cu cho bit tn v mt khu, dng hp
thoi Startup (t danh sch Display Form/Page) quy nh phi m biu mu ny trc tin
mi ln m CSDL. Nh cch ny, ta c th giu lun ca s Database, ni c th xem v chn
cc thnh phn ca CSDL sa cha.
Trong nhng cch trn, cch th 5 vn c th b vt qua bng cch nhn v gi phm Shift
trong lc m CSDL. khc phc, ta c th dng Visual Basic gn tr False cho thuc tnh
AllowBypassKey v hiu ha phm Shift khi m CSDL.
Gi s bn c mt CSDL tn dbLock.MDB. Mi ln ngi ta m n, bn mun biu mu
frmKhoiDong lun c hin th trc tin bng cch xc nh Display Form/Page l
frmKhoiDong. thay i thuc tnh AllowBypassKey, bt buc phi m CSDL, gn tr mi cho
thuc tnh ny, ng CSDL li th ln m sau mi c p-ph. Bn nh, cn kha lm sao
ngi ta khng m c m mnh m c, ngha l ta phi c cha kha m. Cha y
chnh l mt biu mu khc, chng hn c tn l frmChiaKhoa.
Khi thay i thuc tnh AllowBypassKey c ri, chc chn biu mu frmKhoiDong c
7/28/2019 Baomat
2/7
hin th khi m CSDL. Cho nn ta t cha kha thng qua biu mu ny bng cch v mt
iu khin no y (min sao n c th tc x l tnh hung Click l c), chng hn nhn
lblChiaKhoa, ri t thuc tnh Visible l No v thm dng lnh DoCmd.OpenForm
frmChiaKhoa vo th tc x l tnh hung Click. Bn phi nh v tr nhn lblChiaKhoa li
cha kha ra nh. Nh vy, vn cn li nm biu mu frmChiaKhoa.
Bn m ca s son tho Microsoft Visual Basic, chn mc References bo m Microsoft
DAO xx.xx Object Library (trong , phin bn xx.xx c th l: 2.5 hoc 3.51 hoc 3.6 ty
theo phin bn Access, d nhin nn chn phin bn mi nht) c chn trong danh sch
Available References.
Hnh 1: Biu mu cn thit k
Hnh 1 l biu mu frmChiaKhoa cn thit k, bao gm mt vn bn txtPassword nhn
mt khu m ngi cn m kha phi g vo, mt nt lnh cmdLock thc hin vic kha
CSDL v mt nt lnh cmdUnlock thc hin vic m kha CSDL. Xong, bn g cc th tc x
l nh on m 1. Trc khi quy chuyn ny trn mt CSDL, bn nn sao chp phng h
CSDL trnh s c kha c ri nhng khng m c (do bn g nhm cc dng lnh).
on m 1
'Hm ChangeProperty thay i cc thuc tnh ca CSDL
Function ChangeProperty(strPropName, varPropType, varPropValue)
Dim dbs As Database, prp As Property
Const conPropNotFoundError = 3270
7/28/2019 Baomat
3/7
Set dbs = CurrentDb
On Error GoTo Change_XuLyLoi
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True
Change_KetThuc:
Exit Function
Change_XuLyLoi:
'Thuc tnh khng thy
If Err = conPropNotFoundError Then
Set prp = dbs.CreateProperty(strPropName, _
varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
'Khng bit li g
ChangeProperty = False
Resume Change_KetThuc
End If
End Function
7/28/2019 Baomat
4/7
'X l tnh hung chn nt [Kha database]
Private Sub cmdLock_Click()
Biu mu ny c np trc
ChangeProperty "StartupForm", dbText, "frmKhoiDong"
ChangeProperty "StartupShowDBWindow", dbBoolean, False
ChangeProperty "StartupShowStatusBar", dbBoolean, False
ChangeProperty "AllowBuiltinToolbars", dbBoolean, False
ChangeProperty "AllowFullMenus", dbBoolean, False
ChangeProperty "AllowBreakIntoCode", dbBoolean, False
ChangeProperty "AllowSpecialKeys", dbBoolean, False
Khng cho xi phm Shift b qua biu mu frmKhoiDong
ChangeProperty "AllowBypassKey", dbBoolean, False
MsgBox "C s d liu c kha! ng c s d liu, _
ri m li mi c p-ph.", vbOKOnly, "eChip Security"
cmdExit.SetFocus
cmdUnlock.Visible = True
7/28/2019 Baomat
5/7
cmdLock.Visible = False
End Sub
'X l tnh hung chn nt [M database]
Private Sub cmdUnlock_Click()
Khng cn biu mu khi ng na
ChangeProperty "StartupForm", dbText, ""
ChangeProperty "StartupShowDBWindow", dbBoolean, True
ChangeProperty "StartupShowStatusBar", dbBoolean, True
ChangeProperty "AllowBuiltinToolbars", dbBoolean, True
ChangeProperty "AllowFullMenus", dbBoolean, True
ChangeProperty "AllowBreakIntoCode", dbBoolean, True
ChangeProperty "AllowSpecialKeys", dbBoolean, True
ChangeProperty "AllowBypassKey", dbBoolean, True
MsgBox "C s d liu c m kha ! _
ng c s d liu, ri m li mi c p-ph.", _
vbOKOnly, "eChip Security"
cmdExit.SetFocus
txtPassword = ""
cmdLock.Visible = True
7/28/2019 Baomat
6/7
7/28/2019 Baomat
7/7
txtPassword.Visible = False
End Sub
'Khi ngi ta g mt khu v nhn phm Enter
Private Sub txtPassword_LostFocus()
If txtPassword = "echip" Then
cmdUnlock.Visible = True
End If
End Sub
Theo Echip