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