Solved

VBA: Select Next Record on Subform After Refresh

Posted on 2014-11-07
5
544 Views
Last Modified: 2014-11-08
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
0
Comment
Question by:Donovan Moore
[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
  • 3
  • 2
5 Comments
 
LVL 34

Expert Comment

by:Mike Eghtebas
ID: 40429890
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
0
 

Author Comment

by:Donovan Moore
ID: 40429892
Sorry for not explaining - running the report sets the generated date.  I want to refresh the subform to show the new date.
0
 
LVL 34

Expert Comment

by:Mike Eghtebas
ID: 40429895
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
0
 
LVL 34

Accepted Solution

by:
Mike Eghtebas earned 500 total points
ID: 40429899
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.
0
 

Author Closing Comment

by:Donovan Moore
ID: 40430711
I got it working...differently than what was suggested, but you certainly got me pointed in the right direction.  Thanks!
0

Featured Post

Get your Disaster Recovery as a Service basics

Disaster Recovery as a Service is one go-to solution that revolutionizes DR planning. Implementing DRaaS could be an efficient process, easily accessible to non-DR experts. Learn about monitoring, testing, executing failovers and failbacks to ensure a "healthy" DR environment.

Question has a verified solution.

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

With User Account Control (UAC) enabled in Windows 7, one needs to open an elevated Command Prompt in order to run scripts under administrative privileges. Although the elevated Command Prompt accomplishes the task, the question How to run as script…
AutoNumbers should increment automatically, without duplicates.  But sometimes something goes wrong, and the next AutoNumber value is a duplicate.  This article shows how to recover from this problem.
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.
With Microsoft Access, learn how to start a database in different ways and produce different start-up actions allowing you to use a single database to perform multiple tasks. Specify a start-up form through options: Specify an Autoexec macro: Us…

622 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