[AccessD] Code Help Please

O'Connor, Patricia (OTDA) Patricia.O'Connor at otda.state.ny.us
Fri Mar 7 09:03:47 CST 2008


Thanks A.D. this information is good to have 
Maybe we can have this posted in some format on the DB website for easy
reference

**************************************************
* Patricia O'Connor    
* Information Technology Specialist 3 (Programming) 
* OTDA - BDMA
* (W) mailto:Patricia.O'Connor at otda.state.ny.us
* (w) mailto:aa1160 at nysemail.state.ny.us
**************************************************
 

> 
--------------------------------------------------------
This e-mail, including any attachments, may be confidential, privileged or otherwise legally protected. It is intended only for the addressee. If you received this e-mail in error or from someone who was not authorized to send it to you, do not disseminate, copy or otherwise use this e-mail or its attachments.  Please notify the sender immediately by reply e-mail and delete the e-mail from your system. 


-----Original Message-----

> From: accessd-bounces at databaseadvisors.com 
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of A.D.Tejpal
> Sent: Friday, March 07, 2008 03:39 AM
> To: Access Developers discussion and problem solving
> Cc: A.D.Tejpal
> Subject: Re: [AccessD] Code Help Please
> 
> Naming of Bound Controls On Forms / Reports (Visa Vis Control 
> Source) ================================
> 
> Max,
> 
>     So long as certain precautions are observed, it should be 
> perfectly ok to name a pure bound control the same as the 
> field serving as its control source. Done correctly, it 
> should never cause any problem. No need to get unduly 
> overwhelmed by advice to the contrary.
> 
>     2 - This subject was examined recently (Nov-Dec 2007) in 
> Access MVP's forum, culminating in comprehensive guidelines, 
> placed at the end of this post. These guidelines are now 
> displayed at Steve Schapel's web site as well (url below):
> http://accesstips.datamanagementsolutions.biz/controlname.htm
> 
> 
>     3 - Certain interesting findings related to controls on 
> forms / reports are also placed below.
> 
>     3.1 - Forms - If a field name in record source is 
> referred in VBA code whether directly or with Me qualifier 
> followed by dot, bang or parenthesis (containing field name 
> in a string), and no control having this name is physically 
> present on the form, the code refers directly to the field 
> and value is the only property exposed. 
> 
>     3.2 - Forms - If a bound control having its name 
> identical to the control source is present on the form and 
> this name is referred in VBA code whether directly or with Me 
> qualifier, it automatically refers to the control. 
> Intellisense exposes all the properties for the control. 
> Value (which was the only available property when field was 
> being referred) becomes the default property of this control. 
> In other words, a bound control having its name identical to 
> control source acts somewhat like a super-incarnation of the 
> field itself, with additional properties over and above the 
> original Value property.
> 
>     3.3 - Forms - If an unbound control having its name 
> identical to a field in record source is present on the form 
> and this name is referred in VBA code whether directly or 
> with Me qualifier, it automatically refers to the control 
> (not the field in record source)
> 
>     3.4 - Forms - If a bound control having its name 
> identical to the control source is present on the form and it 
> is desired that VBA code should refer only to the source 
> field (not the control), it can be done by using the syntax:  
>  Me.Recordset("FieldName")
> 
>     Note - The value returned by using 
> Me.Recordset("FieldName") is always in synch with the current 
> record (Absolute position of recordset matches current 
> record). On the other hand, if RecordsetClone were used, it 
> would always open at the first record position and return the 
> value accordingly, irrespective of current record position 
> (additional code is needed to navigate to a particular record).
> 
>     3.5 - Forms & Reports - Calculated controls having 
> expressions using names of controls / fields:
>         (a) In plain expression, if a control having that 
> name exists physically, the control prevails. If no such 
> control exists, field gets picked up. 
>         (b) If aggregate expression is involved (e.g. Sum() 
> etc.), the field prevails even if a control of identical name exists.
> 
>     3.6 - Reports - Fields in record source are not amenable 
> to direct reference via VBA code. Only controls actually 
> existing on the report are reliably recognized in VBA.
> 
> 
>     4 - Guidelines - as evolved in Access MVP's forum
> 
> =======================================
> Naming of controls w.r.t. field names (General Guidelines)
> ----------------------------------------------------------
> 
>     1 - For controls referenced in code or expressions, the 
> names should not be the default names such as "text13". It is 
> best to modify the default name to something meaningful that 
> eases maintenance of application.
> 
>     2 - An unbound or calculated control should not have its 
> name identical to any of the fields contained in the record 
> source. As a standing precaution, suitable prefix like Txt 
> (or txt), Cbo (or cbo) etc should be used while naming such controls.
> 
>     3 - It is perfectly Ok if the name of a pure bound 
> control is the same as its control source (unless, for some 
> reason, you need a different name for the bound control - see 
> para 4 below). It can also prove convenient in readily 
> distinguishing the bound controls from others. However, in 
> such an arrangement, care has to be exercised on following lines:
>         (a) If the role of an erstwhile bound control bearing 
> a name identical to its control source is subsequently 
> changed to that of an unbound or calculated control, its name 
> should be modified simultaneously (including suitable prefix 
> as per 2 above) so as to differentiate it from field names.
>         (b) If the control source of a bound control is 
> subsequently changed, its name should be changed 
> simultaneously, matching the new control source.
> 
>     4 - There is no objection however, to rename even bound 
> controls, say by prefixing with Txt (or txt), Cbo (or cbo) 
> etc. if the developer is keen to do so. In such a case, care 
> should be taken to use the actual field name (and not the 
> control name) while using the content in aggregate 
> expressions in calculated controls e.g. =Sum([FieldName]). It 
> would also be desirable to give meaningful names to such 
> calculated controls e.g. txtTotal, or txtAvg etc.
> 
>     5 - For a control bearing the name of a particular field 
> in record source, NEVER bind it to some other field.
> 
>     Note - In allowing the names of bound controls to be 
> identical with the control source, if the developer is not 
> confident enough that the discipline envisaged in para 3 (a) 
> & (b) above would be strictly observed, it might prove safer 
> to rename all such controls in the beginning itself, as per 
> para 4 above. In order to make such a task less taxing,  
> suitable tool like Arvin Meyer's FixNames utility (link given 
> below) can be used if desired.
> http://www.datastrat.com/Download/FixNames2K.zip
> ==========================================
> 
> 
> Best wishes,
> A.D.Tejpal
> ------------
> 
>   ----- Original Message ----- 
>   From: Max Wanadoo 
>   To: 'Access Developers discussion and problem solving' 
>   Sent: Friday, March 07, 2008 02:40
>   Subject: Re: [AccessD] Code Help Please
> 
> 
>   Sounds like a good disciple then.  I will start to adopt it.
>   Thanks all
>   Max
>    
> 
>   -----Original Message-----
>   From: accessd-bounces at databaseadvisors.com
>   [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of 
> Charlotte Foust
>   Sent: Thursday, March 06, 2008 9:05 PM
>   To: Access Developers discussion and problem solving
>   Subject: Re: [AccessD] Code Help Please
> 
>   I'm with Patricia, even in dotNet.  I may be the only one 
> in my shop who
>   renames religiously, but I do it.  There's little I hate as much as
>   switching back and forth between design view and the code 
> window trying to
>   figure out which control I'm addressing when just a minor 
> amount of time at
>   the start lets me know exactly which control I need to 
> address without all
>   that effort.  Plus circular references can pop up 
> unexpectedly in places
>   where they're harder to track down, so I buy insurance.
> 
>   Charlotte Foust 
> 
>   <<Snipped>>
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 
>





More information about the AccessD mailing list