VBA: Select Next Record on Subform After Refresh

Donovan Moore
Donovan Moore used Ask the Experts™
on
I have an MS Access application that uses a dialog box with various selection criteria to run a report.  Once the report has run, I update a timestamp that displays on an underlying subform.

What I'd like to do, is to run the report, and on closing the report, refresh the subform (contained within a separate form beneath the dialog box), and select the next record in the subform.

Summary:

 1. Run report from dialog box with selection criteria.
 2. On report close, refresh the subform within the underlying form.
 3. Select the next record that follows the one previously run.

Hopefully, this makes some kind of sense.  I think this SHOULD be relatively easy, but I'm getting stuck on syntax.

Please let me know what else I can provide.
SubformRecordSelect.png
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Mike EghtebasDatabase and Application Developer

Commented:
re:>  refresh the subform within the underlying form.

Why you need to refresh? Has its date changed?

When you close the report, the focus returns to the form and OnActive event of the form fires.

I will give you more detailed info later. In a public variable, you will store the PK of the record you want the form to show e=when the report is closed. Then in OnActive event, you can use bookmark to move to the record with PK you have stored in the public variable we talked about.

Mike
Donovan MooreConsultant

Author

Commented:
Sorry for not explaining - running the report sets the generated date.  I want to refresh the subform to show the new date.
Mike EghtebasDatabase and Application Developer

Commented:
Public lngPK as Long
for now put this in a module outside the form, later on we may be able to bring inside the form in question.


In on Active event of the main form (not subform) have:

Me!SubromName,FormRefreshSubform

In subform after decorations have

Public Sub  FormRefreshSubform()
  MsgBox "FormRefreshSubform fires ok"
End Sub

Apply these until first you get "FormRefreshSubform fires ok" message. We will continue.

Mike
Database and Application Developer
Commented:
Q1: Can you store the next recod PK in lngPK variable? if not sure then:

Q2:What is the field name for PK in the subform?
Q3: What field the subform sorted by?
-------------
replace the MsgBox "..." with the following lines:

Public Sub  FormRefreshSubform()
  'MsgBox "FormRefreshSubform fires ok"
  Me.Requery
  Me.Recordset.FindFirst "ID=" & lngPK
End Sub

Change ID to whatever you have on the subform.
Donovan MooreConsultant

Author

Commented:
I got it working...differently than what was suggested, but you certainly got me pointed in the right direction.  Thanks!

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial