Làm form chỉ cho nhập không cho sửa, xoá

  • Thread starter chihienphuco
  • Ngày gửi
T

tung dung

Sơ cấp
20/4/09
18
0
0
TP.HCM
#22
Form cho nhập,không sửa xoá

xin chào,nếu chỉ cho nhập mới không thì với Data Entry = Yes là đủ,nhưng Bạn muốn tới lui để cho xem nhưng không cho sửa xoá khi đả có Data thì phải làm cách khác,bây giờ có 2 vấn đề đặt ra là:
1-không cho sửa xoá với người khác...còn Bạn thì sao!!??
2-là khoá luôn không ai có thể sửa xoá,kể cả Bạn...?
nếu là trường hợp thứ 2 thì,Bạn vào From-Design-Properties-Data(Allow Edits=No,Allow Deletions=No,Allow Additions =True),SubForm củng vậy,tôi xin giải thích thêm là nếu Bạn chọn Allow Additions =No luôn thì khi mở Form mà chưa có Record nào thì cái Form sẻ trắng bệt ra như tấm vách nhìn :004:,Ta sẻ khoá Allow Additions ở thủ tục Form_Load như sau:

If Not IsNull([1 cái field nào đó]) Then
Form.AllowAdditions = False
Else
Form.AllowAdditions = True
Form.Refresh

lưu ý,cái field [1 cái field nào đó] phải có thuộc tính Required=Yes
kế tiếp,bạn làm 2 nút lịnh(ex:Thêm,Xong):

nút Thêm On_click:

Form.AllowAdditions = True
Docmd.record goto đâu đó...
Me.SubForm.Form.AllowAdditions = True(SubForm không cần nút nào cả)
field.SetFocus(là 1 fields nào đó trong Form)
A.Visible = False(không Set cái nầy củng được nhưng về kỷ thuật lập trình thì để nhìn cho nó hiện đại)
Form.Refresh

nút Xong On_click:

Form.AllowAdditions = False
Me.SubForm.Form.AllowAdditions = False
A.Visible = True(nếu có False thì mới có True)
A.SetFocus
Form.Refresh

Bây giờ thì tới Bạn,nếu Bạn muốn sửa xoá thì Bạn làm thêm 1 cái Text nhỏ,Input Mask=Password(ex:TextSuaxoa)
TextSuaxoa_ApterUpdate()
IF TextSuaxoa = ".....gì đó" then
Form.AllowEdits = True
Form.AllowDeletions = True
Me.SubForm.Form.AllowEdits = True
Me.SubForm.Form.AllowDeletions = True
Form.Refresh
else
beep
MsgBox"muốn la gì thì la ...."

EndIf

đây là cách đơn giản nhất,còn cao cấp hơn thì Bạn dùng thêm về kỷ thuật Phân Quyền
 
M

mvp2006

Sơ cấp
16/10/08
36
0
0
TPHCM
#23
Vấn đề này mình thường làm như sau
Phân quyền đơn giản
ở table User bạn thêm 1 field Admin (Yes/No)
ở form khởi động bạn gán biến chung mAdmin = field admin

Ở form bạn nhập liệu

Private Sub Form_Load()
Khoa
If madmin then
cmdSua.enabled=true
cmdXoa.enabled=true
else
cmdSua.enabled=false
cmdXoa.enabled=true
endif
End sub

Private Sub cmdThem_Click()
MoKhoa
End sub

Private Sub cmdSua_Click()
MoKhoa
End sub

Private Sub cmdGhi_Click()
Khoa
End sub


Private Sub MoKhoa()
text.Enabled = true
text.Locked = false
SubForm.Form.AllowAdditions = true
SubForm.Form.AllowDeletions=true
SubForm.Form.AllowEdits=true
End sub

Private Sub Khoa()
text.Enabled = false
text.Locked = true
SubForm.Form.AllowAdditions = false
SubForm.Form.AllowDeletions=false
SubForm.Form.AllowEdits=false
End sub
 
H

huy77cc

Sơ cấp
17/4/18
1
0
1
31
#25
cho mình hỏi với, mình có 1 bảng HOCSINH, mỗi lần mở form cập nhật ra xem dù mình chưa thêm gì cả là MALOP trong bảng HOCSINH đã tự động thay đổi tại người đầu tiên trong bảng HOCSINH là sao?
 

Thành viên trực tuyến

  • Nguyen Ly 88

Xem nhiều