Freeze fields with a command button click

P

PJ

How would I lock multiple fields so a user can not change based on a click of
a button. There is a date field so once it hit month end I would like to
freeze a user from changing the record. How is that possible?


Thanks
 
P

PieterLinden via AccessMonster.com

PJ said:
How would I lock multiple fields so a user can not change based on a click of
a button. There is a date field so once it hit month end I would like to
freeze a user from changing the record. How is that possible?

Thanks

Note that you cannot lock anything at table level. If the user has access to
update/delete queries that modify data, this won't work.

Sub cmdLockControls_Click()
With Me.Controls("ControlToLock")
.Enabled = False
.Locked = True
End with
End sub

You would have to have a boolean field in your table containing the status of
the record. Something like IsLocked... then in the OnCurrent event of the
form,

With Me.Controls("ControlToLock")
.Enabled = Not me!IsLocked
.Locked = Me!IsLocked
End with
 
D

Daryl S

PJ -

Use the On Current event so this occurs each time a new record is displayed
(use your fieldnames):

If Me.DateField < DateSerial(Year(Date()),Month(Date(),1) Then
Me.Field1.Locked = True
Me.Field2.Locked = True
...
Me.Fieldn.Locked = True
Else
Me.Field1.Locked = False
Me.Field2.Locked = False
...
Me.Fieldn.Locked = False
End If
 
P

PJ

Thanks again Daryl. I guess I am not getting this. Would this go on the
form's current event. I wanted a button that I would click on that at any
given time I can click on and it would lock 6 fields and you could only read
them. Where would they below code go?

Thanks!!
 
D

Douglas J. Steele

One approach would be simply to call the form's Current event in the
button's Click event:

Private Sub MyButton_Click()

Call Form_Current()

End Sub
 
D

Daryl S

PJ -

As Douglas said, you can call the code from a button. If you don't run it
also on the On Current event, then when a user scrolls to a new record, the
formatting won't adjust to the new values. That is why I suggested the
form's On Current event.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top