Avatar of Michael Paravicini
Michael ParaviciniFlag for Chile

asked on 

Is it possible to lock or disable the current row of a datasheet in a split form?

Hello, is it possible to lock or disable the current row of a datasheet in a split form? Once the user has made any changes to the current row I would like to freeze it and not allow any further changes. However, he should be allowed to change any other row of the same datasheet? Not sure this works but thanks for any help. Rg Michael
Microsoft Access

Avatar of undefined
Last Comment
Michael Paravicini
ASKER CERTIFIED SOLUTION
Avatar of Dale Fye
Dale Fye
Flag of United States of America image

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
Avatar of PatHartman
PatHartman
Flag of United States of America image

Dale's suggestion assumes that in your BeforeUpdate event for the form, you populate the date completed field

Me.txtDateCompleted = Now()
Avatar of Mark Edwards
Mark Edwards
Flag of United States of America image

As previously discussed, you now have a way to identify when/if a row is changed.  
The next train of thought is "what is the logic for keeping the row locked after moving off the changed record"?  Is it forever, or just during the time that the form is open.  If the user closes the form and reopens it, can they re-edit the same record, or should it be locked?

Usually, a split form uses editing controls in the form-part of the form to edit data for the selected record, and the datasheet part is used to view/select the record that is to be edited in the form-part.  Once a record is determined to need to be locked - by whatever method you want to make that determination - the next thought is how to "lock the controls that display the data so the data can't be edited".

One method is to toggle the "Locked" property of the controls to "True" if the row needs to be locked, and set the "Locked" property to "False" if it can be edited.  This code should run in the form's Current event, which is where you put code that needs to run based on when a row is selected.  You would need to do the same for any controls in the form-part of the split form,  
It should be noted that in a datasheet, the only row that is in play is the selected row - none of the other rows matter until they are selected.

I'm sure there are other ways, but that's how I would do it....
Avatar of Michael Paravicini

ASKER

Thank you so much. The suggested solution works perfectly. Cheers Michael
Microsoft Access
Microsoft Access

Microsoft Access is a rapid application development (RAD) relational database tool. Access can be used for both desktop and web-based applications, and uses VBA (Visual Basic for Applications) as its coding language.

226K
Questions
--
Followers
--
Top Experts
Get a personalized solution from industry experts
Ask the experts
Read over 600 more reviews

TRUSTED BY

IBM logoIntel logoMicrosoft logoUbisoft logoSAP logo
Qualcomm logoCitrix Systems logoWorkday logoErnst & Young logo
High performer badgeUsers love us badge
LinkedIn logoFacebook logoX logoInstagram logoTikTok logoYouTube logo