title: VBA for Access, run-time error 451: Property let procedure not defined and property get procedure did not return an object
body: <p>So I have one of my object's private variable which is an array: o_exception, declared as:</p>
  
  <pre><code>Private o_exception() as string
  </code></pre>
  
  <p>I can fully test it when initialising its values: lower bound, upper bound, values, everything is ok.</p>
  
  <p>I am trying then to define a let property to be able to access the values of the array from outside the object:</p>
  
  <pre><code>Property Get exception()
  On Error GoTo ERREUR
  exception = o_exception
  On Error GoTo 0
  End Property
  </code></pre>
  
  <p>I am still fully able to identify my property as an array:</p>
  
  <pre><code>lbound(myObject.exception) is available
  ubound(myObject.exception) is available
  isArray(myObject.exception) returns a yes
  </code></pre>
  
  <p>But</p>
  
  <pre><code>myObject.exception(0) 
  </code></pre>
  
  <p>gives me the following error:</p>
  
  <pre><code>run-time error 451: Property let procedure not defined and property get procedure did not return an object
  </code></pre>
  
  <p>I don't have a let, as I don't need it, and I have very similar code running with the very same structure on other objects. My only clue now is that, as myObject is defined as a member of another object (a collection), I must access it by typing:</p>
  
  <pre><code>myCollection.myObject.exception(0)
  </code></pre>
  
  <p>By the way, replacing the Property Get by a Public Function gives the very same error ...</p>