Resyncing a Subform Record in Microsoft Access

Provided by Luke Chung, FMS President

Microsoft Access

When a Microsoft Access form with a linked subform is opened, it automatically defaults to the first record in the subform. You may want to highlight another record as the current one.

Similarly, when the master record is updated (without moving to another record), the subform resets itself to the first record when you prefer to keep pointing to the same subform record.

If you have the ID of the subform row that should be the current one, use it to move to that record with the subform's RecordsetClone object and bookmark property.

Add the ResyncSubformRecord procedure to your form's module and call it like this to resync your subform record to the one you want:

Call ResyncSubformRecord(Me, "subformName", "MyField", lngValue)

Sub ResyncSubformRecord(frm As Form, strSubformName As String, strFieldName As String, lngID as Long)
  ' Comments: Update a subform to make a specific record the current one
  ' Params  : frm              Form object with the subform (usually Me if invoked from the parent form)
  '           strSubformName   Name of subform with data to resync
  '           strFieldName     Field to specify the search criteria
  '           lngID            ID value in the field to find (usually the primary key value)
  
  Dim rst As DAO.Recordset

  ' Create a recordset to the subform records
  Set rst = frm.Controls(strSubformName).Form.RecordsetClone
  
  ' Find the first record with the specified value. 
  ' This is designed for a numeric value. If it's a string, add quotes around it
  rst.FindFirst "[" & strFieldName & "] = " & lngID
  
  If Not rst.NoMatch Then
    ' If the value is found, resync the subform record by using the recordset's Bookmark property 
    frm.Controls(strSubformName).Form.Bookmark = rst.Bookmark
  End If

  rst.Close
End Sub

Additional Information

Note that you need to do this AFTER you make changes to the subform that could cause it to reset the current record. For instance, these commands would reset the current record:

  • Requery
  • Setting edit permissions like AllowAdditions, AllowDeletions and AllowEdits

Table Design

Query Design

Form Design

Form Tips and Mistakes

Copy Command Button and Keep Picture

Module VBA to Forms and Controls

Form Navigation Caption

Resync Record in a Subform

Synchronize Two Subforms

Multiple OpenArgs Values

Late Bind Tab Subforms

Subform Reference to Control Rather than Field

Tab Page Reference

Shortcut Keys


Combo Box Top 6 Tips

Properties and Validation

Select First Item

Cascading Combo Boxes

Zip, City, State AutoFill

Report Design

Suppress Page Headers and Footers on the First Page of Your Report

Add the NoData Event

Annual Monthly Crosstab Columns

Design Environment

Add Buttons to the Quick Access Toolbar

Collapse the Office Ribbon for more space

VBA Programming

Basics: Forms and Controls

Run VBA Code from a Macro

Use Nz() to Handle Nulls

Avoid Exits in the Body of a Procedure

Shortcut Debugging Keys

Set Module Options

Math Rounding Issues

Rename a File or Folder

Avoid DoEvents in Loops

Age Calculations

Weekday Math

Send Emails with DoCmd.SendObject

Source Code Library

Microsoft Access Modules Library

Microsoft Access Modules

VBA Error Handling

Error Handling and Debugging Techniques

Error Number and Description Reference

Basic Error Handling

Pinpointing the Error Line

Performance Tips

Linked Database

Subdatasheet Name

Visual SourceSafe

Deployment

Runtime Downloads

Simulate Runtime

Prevent Close Box

Disable Design Changes

Broken References

Remote Desktop Connection Setup

Terminal Services and RemoteApp Deployment

Reboot Remote Desktop

Missing Package & Deployment Wizard

Avoid Program Files Folder

Unavailable Mapped Drives

Microsoft Access Front-End Deployment

System Admin

Disaster Recovery Plan

Compact Database

Compact on Close

Database Corruption

Remove 'Save to SharePoint Site' Prompt from an Access Database

Class Not Registered Run-time Error -2147221164

Inconsistent Compile Error

Decompile Database

Bad DLL Calling Convention

Error 3045: Could Not Use

Converting ACCDB to MDB

SQL Server Upsizing

Microsoft Access to SQL Server Upsizing Center

Microsoft Access to SQL Server Upsizing Center

When and How to Upsize Access to SQL Server

SQL Server Express Versions and Downloads

Cloud and Azure

Cloud Implications

MS Access and SQL Azure

Deploying MS Access Linked to SQL Azure

SQL Server Azure Usage and DTU Limits

Visual Studio LightSwitch

LightSwitch Introduction

Comparison Matrix

Additional Resources

Connect with Us

 

Free Product Catalog from FMS