[AccessD] Allow edits = False is Allowing Edits!

Heenan, Lambert Lambert.Heenan at aig.com
Mon Nov 14 11:03:30 CST 2016


I seem to recall that if, when a form was opened, any change in code to any bound data field would result in the AllowEdits property being ignored.  Is there any automatic "editing" of new records going on? Adding a date edited value or anything like that?


Lambert  

-----Original Message-----
From: AccessD [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin
Sent: Monday, November 14, 2016 11:32 AM
To: 'Access Developers discussion and problem solving'; 'Off Topic'
Subject: [AccessD] Allow edits = False is Allowing Edits!

Dear Lists:

 

(Access 2010, Windows 10, all bound forms)

 

Client wants one user to not be able to add change delete any data except for one field in one form.  No worries.  I already have hooks in for Access level per user (read only, read/write, administrator). And there's not many forms and only a few that have data entry/edit. So I made a new access level
- 2. (1 is read only, three is read/write). Since the client wasn't using these controls that change was easy.

 

So in the dirty event of those forms I put:

 

Private Sub Form_Dirty(Cancel As Integer)

 

If gintAccessLevel < 3 Then

    MsgBox "Read Write Access Required", , vbExclamation

    Cancel = True

End If

 

End Sub

 

And that works perfectly for all of them.  Except for three. (Which are all similar but attached to different table. )

 

So I cleverly modified the Dirty event of this form to read 

 

Private Sub Form_Dirty(Cancel As Integer)

    MsgBox "!"

If gintAccessLevel < 3 Then

    MsgBox "Read Write Access Required", , vbExclamation

    Cancel = True

End If

 

End Sub

 

And after entering a number and leaving that field.No ! appears.  A breakpoint on the MsgBox statement confirms that the dirty event is not triggering.

 

 

But there's more than one way to skin a cat. So in the open event of one of those forms I put:

 

If gintAccessLevel < 3 Then

    Me.AllowAdditions = False

    Me.AllowEdits = False

    Me.AllowDeletions = False

Else

    Me.AllowAdditions = True

    Me.AllowEdits = True

    Me.AllowDeletions = True

End If

 

Poop!  Still allows editing.

 

Could the allow edits property be getting changed? So in the after update event of one of the fields I put:

 

Private Sub fldSocietyCourseOfferingNumberOfParticipants_AfterUpdate()

    MsgBox Me.AllowEdits

End Sub

 

And when I put something into the
fldSocietyCourseOfferingNumberOfParticipants the message read False!

 

And yet, it will save that value.

 

So I changed the code in the after update event of fldSocietyCourseOfferingNumberOfParticipants to read:

 

Private Sub fldSocietyCourseOfferingNumberOfParticipants_AfterUpdate()

    

    MsgBox "! " & gintAccessLevel

If gintAccessLevel < 3 Then

    MsgBox "Read Write Access Required", , vbExclamation

    Me.undo

End If

 

End Sub

 

And it obediently prints ! 2.  And that works - it undoes the change.  But I would not like to have to put that code in the after update event of every field on the three recalcitrant forms.

 

So now, of course, I'm looking for some either obvious or obscure reason why these three forms are misbehaving.  Any suggestions welcome

 

MTIA

 

 

Rocky Smolin

Beach Access Software

760-683-5777

 <http://www.bchacc.com> www.bchacc.com

 <http://www.e-z-mrp.com> www.e-z-mrp.com

Skype: rocky.smolin

 

 

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list