Microsoft KB Archive/103176

= ACC: Error Message Running Macro with SQL Statements =

Article ID: 103176

Article Last Modified on 1/18/2007

-

APPLIES TO


 * Microsoft Access 1.0 Standard Edition
 * Microsoft Access 1.1 Standard Edition
 * Microsoft Access 2.0 Standard Edition
 * Microsoft Access 95 Standard Edition
 * Microsoft Access 97 Standard Edition

-



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.

