ACC2: SQL Statement in Macro Condition Causes GP Fault

ID: Q119807


The information in this article applies to:


SYMPTOMS

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

When you run a macro that has an SQL statement as part of a conditional expression, you may receive a general protection (GP) fault.


RESOLUTION

Use the DLookup() function, or a user-defined function, instead of an SQL statement to return the value to be used in the conditional expression.


STATUS

Microsoft has confirmed this to be a problem in Microsoft Access version 2.0. This behavior no longer occurs in Microsoft Access version 7.0.


MORE INFORMATION

SQL statements cannot be used in expressions within macro conditions. You must instead use a function that only returns one value.

Steps to Reproduce Problem


  1. Create the following new table and then save it as Table1. Do not create a primary key on the table.
    
          Table: Table1
          --------------------
          Field Name: Field1
             Data Type: Number 


  2. View the table in Datasheet view and enter 5 in the first record. Do not enter any other records.


  3. Create the following new macro and then save it as Macro1:
    
          Macro Name   Condition                        Macro Action
          -----------------------------------------------------------
          Macro1       (Select Field1 from Table1;)>1   Beep 


  4. Run the macro. You will receive a GP fault.



REFERENCES

Microsoft Access "User's Guide," version 2.0, Chapter 24, "Using Conditions in Macros," pages 620-623

For more information about using conditions in a macro, search for "Conditions," and then "Using Conditions in a Macro" using the Microsoft Access Help menu.

Additional query words: gpf


Keywords          : kberrmsg kbusage McrCond 
Version           : 2.0
Platform          : WINDOWS 
Issue type        : kbbug 

Last Reviewed: April 6, 1999