Solved

MS Access - Record navigation

Posted on 2012-12-29
8
584 Views
Last Modified: 2012-12-29
Is it possible to trap or detect that the record navigation buttons have been clicked with the mouse?

On a few of the forms  I need to know when the user navigates to a NEW record through either the > or >* button.

I haven't found a way to detect they have been used.  The users are used to being able to navigate through the records with the buttons but in a few cases a new record needs some initialization before the user can enter data.

If I can't detect the click can I prevent the user from navigating to a new record?
The forms have an ADD RECORD button that provides the initialization through code before the user can enter data.

mlmcc
0
Comment
Question by:mlmcc
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
  • 2
  • +2
8 Comments
 
LVL 29

Accepted Solution

by:
IrogSinta earned 350 total points
ID: 38729808
Setting the AllowAdditions property of the form to No will prevent them from navigating to a new record.
0
 
LVL 75

Assisted Solution

by:DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform) earned 100 total points
ID: 38729814
In the Current event of a Form, you can test for a New Record:

If Me.NewRecord = True then
   ' do something
Else
   'do something else
End If

mx
0
 
LVL 29

Expert Comment

by:IrogSinta
ID: 38729818
Alternatively, you can add a check on the form's OnCurrent event like so:
If NewRecord Then 
    Call Initialize routine
End If

Open in new window

0
Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

 
LVL 48

Assisted Solution

by:Dale Fye (Access MVP)
Dale Fye (Access MVP) earned 50 total points
ID: 38729855
As MX and IrogSinta have said, to detect a new record, use the Form_Current event  and the NewRecord property of the Form.

Occassionally, you will find that you need some functionality to occur before the user leaves the current record.  If there have been no changes to that record then the Form_AfterUpdate event will not fire, so you may end up creating your own set of navigation buttons.  I usually put mine in the Forms footer and turn off the default navigation buttons.

You will also find this technique handy if you do any work with unbound forms.
0
 
LVL 30

Expert Comment

by:hnasr
ID: 38730273
Try this:
declare a global variable in a module
Set global variable to true if button clicked
In Form_Current event check for global variable and use your initialization code if true, then set to false

Global bln_navigation As Boolean ' in a module

Private Sub Command22_Click() 'the button to navigate or to add
    bl_navigation = True
    DoCmd.GoToRecord , , acNext
End Sub

Private Sub Form_Current()
    If bln_navigation = True Then 'got here through button
        'your code here
        bln_navigation = False
    End If
End Sub 

Open in new window

0
 
LVL 100

Author Closing Comment

by:mlmcc
ID: 38730297
IrogSinta - A simple solution.  I just had to add code to the ADD/New record button to allow additions and turn it off when they saved the record.

 DatabaseMX - Your method would work but a little more involved than I wanted to do.

 fyed -  Good additional information.

increased points to 500

mlmcc
0
 
LVL 75
ID: 38730302
" but in a few cases a new record needs some initialization before the user can enter data."
Which is exactly what I posted ... so, I guess I'm confused.
0
 
LVL 100

Author Comment

by:mlmcc
ID: 38730310
I just found it easier to do all the code behind the ADD/NEW record button rather than adding code to the form's OnCurrent event.

mlmcc
0

Featured Post

PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Overview: This article:       (a) explains one principle method to cross-reference invoice items in Quickbooks®       (b) explores the reasons one might need to cross-reference invoice items       (c) provides a sample process for creating a M…
This article describes two methods for creating a combo box that can be used to add new items to the row source -- one for simple lookup tables, and one for a more complex row source where the new item needs data for several fields.
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question