#name Error On Access Report
Contents |
of #name access 2013 Use Forms: Resolve #Name error in a
Ms Access #name In Report
form/report Author(s) Dev Ashish (Q) Why do I get a #NAME error for #error access a calculated control on a form or a report? (A) You are probably using the same name for a calculated text box as one of the terms access control source #name? in the expression. In the following example, Access produces a #NAME error if you enter the expression in a control named City, State, or ZIP: =[City] & "", "" & [State] & "" "" & [ZIP] This creates a circular reference that may be resolved by changing the name of the control that contains this expression to something (anything) other than City, State, or ZIP. © 1998-2010, Dev Ashish & Arvin Meyer, All rights reserved. Optimized for Microsoft Internet Explorer
be down. Please try the request again. Your cache administrator is webmaster. Generated Sun, 02 Oct 2016 16:27:15 GMT by s_hv1000 (squid/3.5.20)
help? Post your question and get tips & solutions from a community of 418,439 IT Pros & Developers. It's quick & easy. Reports with unbound fields #Name? error P: 16 beat1078 I have a report that I create using https://bytes.com/topic/access/answers/514816-reports-unbound-fields-name-error unbound text boxes to link to an open form. When you click on a cmdbutton on the form the report is supposed to print out information from the form. It works fine until I close the database and restart http://allenbrowne.com/RecordCountError.html it. That is when I receive the #Name? error. Nothing that I have tried works to resolve the issue. My text box names do not include references to the information I am requesting in the control source (txtNme for field #name error name and =reports![ReportName]![FieldName] for control source) If anyone can help I would greatly appriciate it. --Jason Jul 22 '06 #1 Post Reply Share this Question 3 Replies 100+ P: 179 comteck This can be caused when the name that you supplied as the source of the control's value is not valid. You use the ControlSource property to specify the source of the control's value. For example, you might have misspelled the name, or the source might have been renamed or #name error on deleted. You may also see #Name? in a control if you place an expression in the control's ControlSource property and you insert a space before the equal sign that starts the expression. Make sure that all the fields specified in your ControlSource actually exist in the underlying table or the RecordSource.. As well, if you're using an expression in the ControlSource, make sure there's an equal sign in front of the expression. Hope this helps. comteck Jul 22 '06 #2 reply P: 16 beat1078 Comteck, I triple checked my expression in the controlsource. It reads exactly as this: =Forms!frmInputForm![PERSON SSN] No space in front of the equal sign. I even used the expression builder to make sure I didn't mistype anything. When I start a new report and just put one unbound box in and use this control source everything works until I close access and then open the file again. That is the only thing that triggers this and then it will not work again. It prints with the #Name? on the printout as well so I know it is just not in print preview that I am seeing this. I also have the form open while I am previewing this report so the data it is supposed to access is right there. I am all out of ideas. --Jason Jul 24 '06 #3 reply P: 16 beat1078 To all that contemplated this post: I
controls don't exist, you cannot sum them. In forms The problem does not arise in forms that display the new record. It does occur if the form's Allow Additions property is Yes, or if the form is bound to a non-updatable query. To avoid the problem, test the RecordCount of the form's Recordset. In older versions of Access, that meant changing: =Sum([Amount]) to: =IIf([Form].[Recordset].[RecordCount] > 0, Sum([Amount]), 0) Access 2007 and later have a bug, so that expression fails. You need a function. Copy this function into a standard module, and save the module with a name such as Module1: Public Function FormHasData(frm As Form) As Boolean 'Purpose: Return True if the form has any records (other than new one). ' Return False for unbound forms, and forms with no records. 'Note: Avoids the bug in Access 2007 where text boxes cannot use: ' [Forms].[Form1].[Recordset].[RecordCount] On Error Resume Next 'To handle unbound forms. FormHasData = (frm.Recordset.RecordCount <> 0&) End Function Now use this expression in the Control Source of the text box: =IIf(FormHasData([Form]), Sum([Amount]), 0) Notes Leave the [Form] part of the expression as it is (i.e. do not substitute the name of your form.) For Access 97 or earlier, use RecordsetClone instead of Recordset in the function. A form with no records still has display problems. The workaround may not display the zero, but it should suppress the #Error. In reports Use the HasData property property, specifically for this purpose. So, instead of: =Sum([Amount]) use: =IIf([Report].[HasData], Sum([Amount]), 0) If you have many calculated controls, you need to do this on each one. When Access discovers one calculated control that it cannot resolve, it gives up on calculating the others. Therefore one bad expression can cause other calculated controls to display #Error, even if those controls are bound to valid expressions. For details of how to do this with subreports, see Bring the total from a subreport onto a main report. Home Index of tips Top