title: Record cannot be read; no read permission on 'MSysObjects'
body: <p>I'm trying to get a list of all tables from an Access 2007 ACCDB format database using Excel VBA.</p>
  
  <p>I have followed this post:</p>
  
  <p><a href="https://stackoverflow.com/questions/201282/how-to-get-table-names-from-access">How can I get table names from an MS Access Database?</a></p>
  
  <p>Using:</p>
  
  <pre class="lang-sql prettyprint-override"><code>SELECT MSysObjects.Name AS table_name
  FROM MSysObjects
  WHERE
          (((Left([Name],1))&lt;&gt;"~")
      AND ((Left([Name],4))&lt;&gt;"MSys")
      AND ((MSysObjects.Type) In (1,4,6)))
  order by MSysObjects.Name
  </code></pre>
  
  <p>but I'm getting this error.</p>
  
  <blockquote>
    <p>Record cannot be read; no read permission on 'MSysObjects'</p>
  </blockquote>
  
  <p>I want to be able to get the table names only using a SQL statement and not the <code>OpenSchema</code> method.</p>
  
  <p>I think the problem is with Access. I'm not sure.</p>
  
  <p>Does anybody have any idea?</p>