title: No longer able to use field names of underlying DAO recordset in VBA code
body: <p>Does anybody know what the setting is to allow VBA access to the fields in the Form's underlying DAO Recordset please? I know this is possible as evidenced by the answer at <a href="https://stackoverflow.com/a/19018261/470014">https://stackoverflow.com/a/19018261/470014</a></p>
  
  <p>For some reason I am no longer able to use the field names of the underlying DAO recordset (which happens to be a query) in my VBA code. </p>
  
  <p>So I used to be able to do </p>
  
  <p><code>myvalue = FieldName</code> </p>
  
  <p>rather than </p>
  
  <p><code>myvalue = Me.Recordset.Fields("FieldName").Value</code></p>
  
  <p>I realise this probably isn't the best practice but I have a lot of legacy code working like this and now the database forms are regularly falling over so I'm faced with a massive unexpected clean up job to get it working again.</p>
  
  <p>I thought I was imagining it so I restored an old copy of the database and sure enough I am able to use the fieldname on it's own but not in the latest version. The only thing I can think of that has changed is that the database got corrupted by someone inadvertently working on it in Access 2010 so I created a new database and imported all of the objects from the old one. I have checked the VBA libary references and Options and they are identical. This makes me think it must be a database setting but I have been through them all and can't see any differences.</p>
  
  <p>Also Intellisense used to list the underlying fieldnames along with the regular form controls but this is no longer the case either.</p>
  
  <p>Update: 
  I have found that <code>myvalue = Me!FieldName</code> works but for some reason I used to be able to do <code>myvalue=FieldName</code> but that if I do that the value is always <code>Empty</code>.</p>