ACC: GotoRecord Macro Action Behaves Unexpectedly (141627)
The information in this article applies to:
- Microsoft Access 2.0
- Microsoft Access for Windows 95 7.0
- Microsoft Access 97
This article was previously published under Q141627
Moderate: Requires basic macro, coding, and interoperability skills.
SYMPTOMS
The GotoRecord macro action doesn't behave as you would expect when you use
it in an AutoKeys macro. Instead of changing the record of the active form,
it changes the record of a form in the background.
CAUSE
These symptoms appear when you use the GotoRecord action in an AutoKeys
macro while a form is opened with a Timer event running.
RESOLUTION
This resolution assumes that you are familiar with Visual Basic for
Applications and with creating Microsoft Access applications using the
programming tools provided with Microsoft Access. For more information
about Visual Basic for Applications, please refer to your version of the
"Building Applications with Microsoft Access" manual.
NOTE: Visual Basic for Applications is called Access Basic in Microsoft
Access version 2.0. For more information about Access Basic, please refer
to the "Building Applications" manual.
To achieve the desired result of selecting the next or previous record on
the active form when you press a predefined key, follow these steps:
- Create a module and type the following line in the Declarations section
if it is not already there:
Option Explicit
- Type the following procedures:
In Microsoft Access 7.0 and 97:
Function GotoPreviousRecord()
On Error Goto GotoPreviousErrorHndlr
' Screen.ActiveForm.Name forces the GotoRecord action
' to be applied to the active form.
DoCmd.GoToRecord acForm, Screen.ActiveForm.Name, acPrevious
ExitGotoPreviousRecord:
Exit Function
GotoPreviousErrorHndlr:
MsgBox Error$
Resume ExitGotoPreviousRecord
End Function
Function GotoNextRecord()
On Error Goto GotoNextErrorHndlr
' Screen.ActiveForm.Name forces the GotoRecord action
' to be applied to the active form.
DoCmd.GoToRecord acForm, Screen.ActiveForm.Name, acNext
ExitGotoNextRecord:
Exit Function
GotoNextErrorHndlr:
MsgBox Error$
Resume ExitGotoNextRecord
End Function
In Microsoft Access 2.0:
Function GotoPreviousRecord()
On Error Goto GotoPreviousErrorHndlr
' Screen.ActiveForm.Name forces the GotoRecord action
' to be applied to the active form.
DoCmd GotoRecord A_FORM, Screen.ActiveForm.Name, A_PREVIOUS
ExitGotoPreviousRecord:
Exit Function
GotoPreviousErrorHndlr:
MsgBox Error$
Resume ExitGotoPreviousRecord
End Function
Function GotoNextRecord()
On Error Goto GotoNextErrorHndlr
' Screen.ActiveForm.Name forces the GotoRecord action
' to be applied to the active form.
DoCmd GotoRecord A_FORM, Screen.ActiveForm.Name, A_NEXT
ExitGotoNextRecord:
Exit Function
GotoNextErrorHndlr:
MsgBox Error$
Resume ExitGotoNextRecord
End Function
- Create an AutoKeys Macro and assign each key stroke to the macro action
RunCode. The RunCode's Function Name argument is the appropriate custom
function's name. If you used the examples above, it is either
GotoPreviousRecord() or GotoNextRecord().
REFERENCES
For more information about AutoKeys, search the Help Index for "AutoKeys,"
or ask the Microsoft Access 97 Office Assistant.
Modification Type: | Major | Last Reviewed: | 5/7/2003 |
---|
Keywords: | kbprb KB141627 |
---|
|