Microsoft KB Archive/136058

= ACC: How to Convert Macros to Visual Basic for Applications =

Article ID: 136058

Article Last Modified on 1/19/2007

-

APPLIES TO


 * Microsoft Access 95 Standard Edition
 * Microsoft Access 97 Standard Edition

-



This article was previously published under Q136058



Moderate: Requires basic macro, coding, and interoperability skills.



SUMMARY
You can do a lot with macros. You can open and close forms, show and hide toolbars, and run reports. However, if you want more control over your application's behavior, you can convert your macros to Visual Basic for Applications code. To help you convert existing macros to Visual Basic for Applications code, you can use the Microsoft Access Macro Conversion Wizard. This article explains how to use the Macro Conversion Wizard, and how it converts your macro actions.



MORE INFORMATION
To convert a macro to Visual Basic for Applications code, follow these steps:
 * 1) Open the sample database Northwind.mdb.
 * 2) In the Database window, click the Macros tab, and select a macro, for example, the Customer Labels Dialog macro.
 * 3) On the File menu, click Save As/Export.
 * 4) In the Save As box, click Save As Visual Basic Module, and then click OK.
 * 5) In the Convert Macro box, select the "Add error handling/trapping to generated functions" option and the "Include macro comments" option.
 * 6) Click Convert.

The Macro Conversion Wizard does the following when it converts a macro to Visual Basic code:

 It creates a new module of procedures using the same names from the Macro Names column in the original macro.  It converts macro actions to appropriate DoCmd methods in Visual Basic. For the several macro actions that do not have a DoCmd equivalent, the Macro Conversion Wizard does the following:    No DoCmd Equivalent   Solution ---

AddMenu              The wizard comments out these lines in the code and notifies the user.

MsgBox               Uses the MsgBox function.

RunApp               Uses the Shell function to run another application.

RunCode              Uses the Call statement and runs the function directly in Visual Basic.

SendKeys             Uses the SendKeys statement.

SetValue             Sets the value directly in Visual Basic.

StopAllMacros        Uses the End statement.

StopMacro            Uses the Exit Function statement.  Expressions in the macro's Condition column are converted to If...Then statements. If the Condition column contains a full reference to a control in a form or report (for example, Forms!MyForm![LastName]), Microsoft Access uses If...Then statements. If the reference refers to a control name only (for example, [LastName]), then Microsoft Access uses a With...End With or a CodeContextObject statement.

