Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsFormsForms ProgrammingQueriesModules / DAO / VBAReports / PrintingMacrosDatabase DesignSecurityConversionImporting / LinkingSQL Server / ADPMultiuser / NetworkingReplicationSetup / ConfigurationDeveloper ToolkitsActiveX ControlsNew UsersGeneral 1General 2
Access DirectoryToolsTutorialsUser Groups
Related Topics
SQL ServerOther DB ProductsMS OfficeMore Topics ...

MS Access Forum / Forms / March 2008

Tip: Looking for answers? Try searching our database.

Disable Form text fields after Data entry

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Ajay - 31 Mar 2008 02:01 GMT
I have designed a Database but users seem to edit records after printing off
reports.
Is there any way that to disable form fields after Data entry in the same
form??
Daniel Pineault - 31 Mar 2008 02:12 GMT
You can use the afterupdate event on the control in conjunction with the
form's current event to chack and see if there is a value in the control and
enable/disable it accordingly.

You can test the controls value using something like

If isnull(me.controlname) or me.controlname="" then
   'Enable control
   Me.controlname.Enable = True
   'Etc
Else
   'Disable control
   Me.controlname.Enable = False
   'Etc
End if
Signature

Hope this helps,

Daniel Pineault
For Access Tips and Examples: http://www.cardaconsultants.com/en/msaccess.php
If this post was helpful, please rate it by using the vote buttons.

> I have designed a Database but users seem to edit records after printing off
> reports.
> Is there any way that to disable form fields after Data entry in the same
> form??
Linq Adams - 31 Mar 2008 02:42 GMT
You don't really want the controls disabled until after the record jhas been
saved, because on looking over the record, the user may want to change an
entry. Assuming that the only fields you want to Disable are textboxes:

Private Sub Form_Current()
Dim ctrl As Control

If Not Me.NewRecord Then
 For Each ctrl In Me.Controls
   If TypeOf ctrl Is TextBox Then
    If Not IsNull(ctrl) Or ctrl <> "" Then
      ctrl.Enabled = False
    Else
      ctrl.Enabled = True
    End If
   End If
 Next
Else
For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox Then
 ctrl.Enabled = True
End If
Next
End If

End Sub

I don't really like the looks of Disabled controls, so I would use the Locked
property instead. It keeps the users from changing the data, once entered and
the record is saved, but it doesn't gray out the textboxes.

Private Sub Form_Current()
Dim ctrl As Control

If Not Me.NewRecord Then
 For Each ctrl In Me.Controls
   If TypeOf ctrl Is TextBox Then
    If Not IsNull(ctrl) Or ctrl <> "" Then
      ctrl.Locked = True
    Else
      ctrl.Locked = False
    End If
   End If
 Next
Else
For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox Then
 ctrl.Locked = False
End If
Next
End If

End Sub

Signature

There's ALWAYS more than one way to skin a cat!

Answers/posts based on Access 2000/2003

John W. Vinson - 31 Mar 2008 03:03 GMT
>I have designed a Database but users seem to edit records after printing off
>reports.
>Is there any way that to disable form fields after Data entry in the same
>form??

Sounds like some user training would be more appropriate. Surely you want to
be able to bring up existing records and correct errors in them, do you not!?

You may also want to have the Form automatically move to a new record upon
opening, so users don't naively overwrite the first record in the
recordsource. You can put a line of code in the form's Load event

Private Sub Form_Load()
DoCmd.GoToRecord acDataForm, Me.Name, acNewRecord
End Sub

or - if users should routinely only add records and never even see old ones -
set the Form's Data Entry property to True.
Signature


            John W. Vinson [MVP]

Stockwell43 - 31 Mar 2008 16:32 GMT
Hi Ajay,

I have to agree with John, it appears as though some user training would
help. However, I go through this same thing everyday and they still mess
something up.

I would go with Daniel's code. It will allow you to enter data and change
whatever needs to be change before the record is added. If you find something
needs to be corrected, that should be a supervisor or manager (one for
security reasons and also gives managetment who is making all these errors
that need to be fixed). Please a password field and a command button on the
form so that when the password is entered it will unlock or enable the fields
and allow you to edit as many records as needed until you close the form then
it will reset itself.

I know it seems like a unecessary process to through but you do what you
gotta do to keep the peace. :o)

> I have designed a Database but users seem to edit records after printing off
> reports.
> Is there any way that to disable form fields after Data entry in the same
> form??
John W. Vinson - 31 Mar 2008 16:49 GMT
>I have to agree with John, it appears as though some user training would
>help. However, I go through this same thing everyday and they still mess
>something up.

<wry grin> Yeah, you build a fool-proof application and the fools just get
better at it.
Signature


            John W. Vinson [MVP]

 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.