[AccessD] need ideas

John W. Colby jcolby at colbyconsulting.com
Wed Feb 19 07:53:01 CST 2003


>because other items on the form can cause the option group to change
values.

Lol. Giving us the complete situation would help.

You can call the click sub in the class instance for the appropriate group
to cause it to run the code for that group that toggles the label back
color.

    ldclsYesNoGrp2.mfra_Click

Or, simply add a method to the class where you set the value of the group
and call the click event.  In the class (at the bottom) add:

'.Comments  :
'.Parameters:
'.Sets      :
'.Returns   :
'.Created by: John W. Colby
'.Created   : 2/19/2003 8:41:45 AM
Function SetGrpVal(lngVal As Long)
On Error GoTo Err_SetGrpVal
    mfra.Value = lngVal
    mfra_Click
Exit_SetGrpVal:
Exit Function
Err_SetGrpVal:
    Select Case Err
    Case 0      '.insert Errors you wish to ignore here
        Resume Next
    Case Else   '.All other errors will trap
        Beep
        MsgBox Err.Description, , "Error in Function dclsYesNoGrp.SetGrpVal"
        Resume Exit_SetGrpVal
    End Select
    Resume 0    '.FOR TROUBLESHOOTING
End Function

Then, to demo the usage, in the form (in my demo database) in the OnOpen
event add:

    ldclsYesNoGrp2.SetGrpVal 2

Notice that now as the form opens, the initialization is done, then one of
the groups is told to set it's value to 2.  Since the class knows how to do
this and toggle the back colors as well - problem solved.

Use  ldclsYesNoGrpX.SetGrpVal Y wherever you need to set the group via code
- where X = the group class instance, and Y = the value to set it to.

BTW, in case anyone is wondering, the overhead for classes is pretty
minimal.  My classes have a LOT more stuff that they do to set up and tear
down.  Yet the incremental memory use for my classes averages about 450
bytes / class instance.  In addition, on the machine I was testing with at
that time (most likely my old dual PII 233), the speed cost was ~.5ms /
class instance loaded.  I was testing with a form that was loading 100 class
instances.  The time to load the classes was ~50 ms.

The thing to understand about classes is that as the first class opens, all
of it's code loads into memory.  Each additional instance of the class only
uses memory for it's class global variables (in the header).  Thus it isn't
like you are having to load the entire thing again and again.

John W. Colby
Colby Consulting
www.ColbyConsulting.com

 -----Original Message-----
From: 	accessd-admin at databaseadvisors.com
[mailto:accessd-admin at databaseadvisors.com] 
Sent:	Tuesday, February 18, 2003 11:14 PM
To:	accessd at databaseadvisors.com
Subject:	RE: [AccessD] need ideas

John & Lambert,

I think I'm starting to understand using classes. Although in this case I
may still have to use a sub because other items on the form can cause the
option group to change values. I've tried AfterUpdate and that doesn't cause
a color change when the option group is changed via code and the OnChange
event is not available for the option group.

Thanks a bunch for your help!
JB


----------------------------------------------------
Is email taking over your day?  Manage your time with eMailBoss.  
Try it free!  http://www.eMailBoss.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: winmail.dat
Type: application/ms-tnef
Size: 3256 bytes
Desc: not available
URL: <http://databaseadvisors.com/pipermail/accessd/attachments/20030219/92809da0/attachment-0002.bin>


More information about the AccessD mailing list