[AccessD] Setting Default control sizes in advance

Heenan, Lambert Lambert.Heenan at aig.com
Fri Apr 7 08:44:36 CDT 2006


There's actually a much simpler way to do this, and it only requires you use
the AutoFormat feature.

Here's the drill:

Design a form with the font and colors and whatever that client1 want, and
then save it as an autoform form design, calling the style  "Client1" (you
do that by selecting AutoFormat from the Format menu and then hit the
'Customize' button.

Then do the same for Client2, design a from to suite that need and save it
as an autoformat style. These form styles are global to Access. You will see
them available in every application you work on.

Now, whenever you want to build a form for Client1 open up their
application, select one of the existing forms, and choose the client1 style
from the AutoFormat dialog. You do this because, having made a choice in the
AutoFormat dialog, that choice becomes the default style that will be used
by the form wizards.

Then when working on Client2's application, do the same thing - select their
style from the Autoformat dialog, and presto, you can build forms to their
liking with the wizards.

No need to spend hundreds of man-hours building a framework! <vbg>

Lambert

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of John Colby
Sent: Friday, April 07, 2006 2:05 AM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Setting Default control sizes in advance


Arthur,

>Solutions requested!
>Client A wants 12 point Arial everywhere.
>Client B wants 10 point Times Roman everywhere.

Frameworks and SysVars.

I have not done that specific thing, but since my framework loads a class
for each form instance and each control type, for each instance of that
control type, it would be trivial for the text class to set the font/pitch
etc as the class loads.  That is the framework part.

SysVars say "for this FE make this property this specific value".  In other
words, I can have a SysVar named "CtlTxtBoxFont" the value of which is
Ariel, and another SysVar named "CtlTxtBoxFontPitch" the value of which is
12.  The clsFrm would have to be programmed to know about this SysVar, and
load that pair of SysVars,into its SysVar collection (each form class has a
collection to hold SysVars specific to that form), and then the clsCtlTxtBox
would have to ask the form what Font and Pitch to use.

I actually do this kind of thing, and in fact have the ability to have
SysVars specific to a particular form.  I do this by having a generic SysVar
such as CtlTxtBoxFontPitch which is set to 12 in the SysVarTable.  When the
form loads it looks for SysVars with its (the form's) name in the
SysVarName, for example frmClientCtlTxtBoxFontPitch.  Since When the
frmClient loads it scans all the SysVars looking for its name in every
SysVar.  If it finds any it strips its name out and "overrides" the generic
value with the value specific to itself.  Thus while all forms will load
CtlTxtBoxFontPitch and end up with a value of 12, frmClient may simply have
so many controls that it isn't feasible to use a 12 pitch so I can set
frmClientCtlTxtBoxFontPitch to 10 and only frmClient will use a 10 pitch
font.

I actually have this capability set up in my framework (SysVars and the
ability to override them for any specific form). For me it would be almost
trivial to set up to do something like you propose.

I did a similar thing with date formats.  Using DAO I drill down to discover
what type of data is being pulled out (for text boxes specifically).  If the
data type is a date, I have a default date format defined in a SysVar.  Thus
I can set a consistent date format via a sysvar, and if the client wants a
different data format, it is a simple matter of changing a single sysvar.

A framework is a very powerful concept and once set up and functioning can
allow implementation of behaviors that vary from front end to front end and
client to client.  

Sysvars allow the programmer to have "steering logic" in the application.
With default values in the SysVars you can have your applications "just
work" a specific way, and yet easily override that for a specific reason,
even down to the form level if desired.

John W. Colby
www.ColbyConsulting.com 


-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller
Sent: Friday, April 07, 2006 12:12 AM
To: 'Access Developers discussion and problem solving'
Subject: [AccessD] Setting Default control sizes in advance

Occasionally I have posed on this site as a person who knows what he is
doing. Forgive me for that, since I know nothing. I have a client who wants
every single control on every single form to be sized 12 point not the
default 10. 
I have another client who is quite satisfied with 10 point.
Is there a way to establish a compiler directive or global var or whatever,
such that in App 1 the AutoForm will respect 12 point while in App 2 the
AutoForm will respect 10 point? (I only mention AutoForm because if it works
there then I assume it will work everywhere.) This same question probably
also extends to font (client A likes Arial, client B likes Times Roman). Can
this be done? Or must I continue with this inane form-by-form selection and
resizing ad nauseum? Solutions requested! Client A wants 12 point Arial
everywhere. Client B wants 10 point Times Roman everywhere. I begin most of
my forms based on an underlying query. I also (unlike many on this list)
define every lookup etc. thoroughly at the table level (i.e. in the BE I
state that CustomerID in the Orders table is a lookup into the Customers
table). I do this so that I can inherit the definition in all subsequent
forms and reports. I realize that many of you do not do this, and I don't
want this to get sidetracked into a discussion about that. I want to
concentrate on the question of how to default all AutoForms (and custom
forms too) to default to control-font-size = 10 v. 12 and control-font =
Arial v. Courier or something else. Can this be done, and if so how? TIA,
Arthur

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

-- 
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