ACC: Error Message Running Macro with SQL Statements (103176)



The information in this article applies to:

  • Microsoft Access 1.0
  • Microsoft Access 1.1
  • Microsoft Access 2.0
  • Microsoft Access for Windows 95 7.0
  • Microsoft Access 97

This article was previously published under Q103176

SYMPTOMS

Advanced: Requires expert coding, interoperability, and multiuser skills.

When you run an action query SQL statement, either in a RunSQL macro statement or as the RowSource property for a control in a secured database, you may receive the following error message:

In Microsoft Access 7.0 and 97:

RunTime Error'3112': Record(s) can't be read; No Read Data permission on 'TableName'

In Microsoft Access versions 1.x and 2.0:
Permissions denied

CAUSE

SQL statements used in a RunSQL macro or as the RowSource property for a control are not real objects; instead, they are compiled and built when they are run. Because they are not real objects in the Database window, they do not have an owner, and the Run With Owners Permissions property is ignored when they are run. If you do not have permissions for the underlying table, you will receive the error message mentioned in the "Symptoms" section.

RESOLUTION

Set the RowSource property to an intermediate query object that was created by the owner of the secured table. The query object should have the Run With Owner's Permissions property set.

STATUS

This behavior is by design.

REFERENCES

For more information about the RunPermission Property, search the Help Index for "RunPermission Property," or ask the Microsoft Access 97 Office Assistant.

Modification Type:MinorLast Reviewed:1/26/2005
Keywords:kbprb kbusage KB103176