Force user to click on Main Form First??

  • Thread starter TheLee via AccessMonster.com
  • Start date
T

TheLee via AccessMonster.com

Hello -
Is it possible to force a user to select a field in the Main form prior to
inputing any info into the subforms? Or is it possible for the Main form to
assign and ID to the record when a user begins filling out the subform?

Thanks -
Lee -
 
J

Jeanette Cunningham

One way is to use the Before Insert event of the subform.

Private Sub Form_BeforeInsert(Cancel As Integer)
If Me.Parent.NewRecord Then
Cancel = True
MsgBox "Please enter the main form record first."
End If
End Sub


Another way is to hide or disable the subform and then use the
BeforeInsert event of the main form to show/enable it. Then it becomes
available as soon as they type the first character into the main form.

You also need to test the NewRecord property in the Current event of the
main form so you can then disable/hide the subform again.


Jeanette Cunningham MS Access MVP -- Melbourne Victoria Australia
 
T

TheLee via AccessMonster.com

Hi Jeanette,
Will this also work if it is a tabbed subform? Sorry, I should have mentioned
this in my original post.

I don't have any experience using code in the db. I messed around with it for
a bit but couldn't get it to work.

Thanks -
Lee


Jeanette said:
One way is to use the Before Insert event of the subform.

Private Sub Form_BeforeInsert(Cancel As Integer)
If Me.Parent.NewRecord Then
Cancel = True
MsgBox "Please enter the main form record first."
End If
End Sub

Another way is to hide or disable the subform and then use the
BeforeInsert event of the main form to show/enable it. Then it becomes
available as soon as they type the first character into the main form.

You also need to test the NewRecord property in the Current event of the
main form so you can then disable/hide the subform again.

Jeanette Cunningham MS Access MVP -- Melbourne Victoria Australia
Hello -
Is it possible to force a user to select a field in the Main form prior to
[quoted text clipped - 4 lines]
Thanks -
Lee -
 
J

Jeanette Cunningham

It should.
To use the code, you would open the subform in design view.
On the subform's property sheet, on the Events tab, find the event called
Before Insert

On the same as that event, click the button with 3 dots on in (it's on the
right)

Access will open the code window

Copy and paste this code into the code window

'start of code -------------
Option Compare Database
Option Explicit

Private Sub Form_BeforeInsert(Cancel As Integer)
If Me.Parent.NewRecord Then
Cancel = True
MsgBox "Please enter the main form record first."
End If
End Sub
'end of code -------------------

Notes:
Now check the very first lines of code at the top of the code window.
If you see
Option Compare Database
more than once, delete the copies until there is only one occurrence of
Option Compare Database

Do the same for
Option Explicit

Now on the menu at top of the screen, choose
Debug, then compile.
Save and close the code window.
Save and close the form.
Test the form to see how the code works.


Jeanette Cunningham MS Access MVP -- Melbourne Victoria Australia



TheLee via AccessMonster.com said:
Hi Jeanette,
Will this also work if it is a tabbed subform? Sorry, I should have
mentioned
this in my original post.

I don't have any experience using code in the db. I messed around with it
for
a bit but couldn't get it to work.

Thanks -
Lee


Jeanette said:
One way is to use the Before Insert event of the subform.

Private Sub Form_BeforeInsert(Cancel As Integer)
If Me.Parent.NewRecord Then
Cancel = True
MsgBox "Please enter the main form record first."
End If
End Sub

Another way is to hide or disable the subform and then use the
BeforeInsert event of the main form to show/enable it. Then it becomes
available as soon as they type the first character into the main form.

You also need to test the NewRecord property in the Current event of the
main form so you can then disable/hide the subform again.

Jeanette Cunningham MS Access MVP -- Melbourne Victoria Australia
Hello -
Is it possible to force a user to select a field in the Main form prior
to
[quoted text clipped - 4 lines]
Thanks -
Lee -
 
T

TheLee via AccessMonster.com

Hi Jeanette -
Thank you very much for the info. Unfortunately it looks like I cannot do
this on the Tabbed Form. It does not have a Before Insert event. The main
form does though.

The issue is a user can fill out the subform prior to making an entry in the
main form. Then when they go back and enter info in the main form it wipes
out the info they entered in the subform. Maybe there is a way to force the
main form to assign an OrderID when the user clicks on the tabbed form??

Thanks -
Lee

Jeanette said:
It should.
To use the code, you would open the subform in design view.
On the subform's property sheet, on the Events tab, find the event called
Before Insert

On the same as that event, click the button with 3 dots on in (it's on the
right)

Access will open the code window

Copy and paste this code into the code window

'start of code -------------
Option Compare Database
Option Explicit

Private Sub Form_BeforeInsert(Cancel As Integer)
If Me.Parent.NewRecord Then
Cancel = True
MsgBox "Please enter the main form record first."
End If
End Sub
'end of code -------------------

Notes:
Now check the very first lines of code at the top of the code window.
If you see
Option Compare Database
more than once, delete the copies until there is only one occurrence of
Option Compare Database

Do the same for
Option Explicit

Now on the menu at top of the screen, choose
Debug, then compile.
Save and close the code window.
Save and close the form.
Test the form to see how the code works.

Jeanette Cunningham MS Access MVP -- Melbourne Victoria Australia
Hi Jeanette,
Will this also work if it is a tabbed subform? Sorry, I should have
[quoted text clipped - 32 lines]
 
J

Jeanette Cunningham

Look on the subform for the Before Insert event.
The subform is inside the subform control on the tab control.


Jeanette Cunningham MS Access MVP -- Melbourne Victoria Australia


TheLee via AccessMonster.com said:
Hi Jeanette -
Thank you very much for the info. Unfortunately it looks like I cannot do
this on the Tabbed Form. It does not have a Before Insert event. The main
form does though.

The issue is a user can fill out the subform prior to making an entry in
the
main form. Then when they go back and enter info in the main form it wipes
out the info they entered in the subform. Maybe there is a way to force
the
main form to assign an OrderID when the user clicks on the tabbed form??

Thanks -
Lee

Jeanette said:
It should.
To use the code, you would open the subform in design view.
On the subform's property sheet, on the Events tab, find the event called
Before Insert

On the same as that event, click the button with 3 dots on in (it's on the
right)

Access will open the code window

Copy and paste this code into the code window

'start of code -------------
Option Compare Database
Option Explicit

Private Sub Form_BeforeInsert(Cancel As Integer)
If Me.Parent.NewRecord Then
Cancel = True
MsgBox "Please enter the main form record first."
End If
End Sub
'end of code -------------------

Notes:
Now check the very first lines of code at the top of the code window.
If you see
Option Compare Database
more than once, delete the copies until there is only one occurrence of
Option Compare Database

Do the same for
Option Explicit

Now on the menu at top of the screen, choose
Debug, then compile.
Save and close the code window.
Save and close the form.
Test the form to see how the code works.

Jeanette Cunningham MS Access MVP -- Melbourne Victoria Australia
Hi Jeanette,
Will this also work if it is a tabbed subform? Sorry, I should have
[quoted text clipped - 32 lines]
Thanks -
Lee -
 

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