[AccessD] Max of 20 values

jwcolby jwcolby at colbyconsulting.com
Sat Jul 23 09:21:19 CDT 2011


And further, given that you are working with such numbers of controls I would start leaning towards 
a class solution.  Does this need to go into multiple forms?  If so leaning further toward a class 
solution.  Are the controls following a naming convention?  Leaning further...

 From you original email I got that the user just entered any controls they wished, not every 
control.  And you said nothing about multiple forms or tabs.

John W. Colby
www.ColbyConsulting.com

On 7/23/2011 10:12 AM, Arthur Fuller wrote:
> 1. Pls forgive me my senior moments, JC.
> 2. You're such a classy guy, I just knew you'd come up with a set of
> classes.
>
> The problem is perhaps in the UI rather than the logic. So far, there is no
> prevention upon the user entering M1 then M3 then M20 and leaving all the
> others out. Granted, this style of data-entry doesn't make sense, but given
> user-sensibilities (the newly politically correct way to phrase Dumbass
> MoFo), I need to guard against such ostensibly intelligent responses to my
> form. I suppose that one possibility is in each AfterUpdate, force the Focus
> to the next in sequence.
>
> All that said, I shall work on implementing your approach. I just imported
> your code and aside from a couple of vbcrlfs if worked fine. The part I
> don't like is the specific reference to the active control. I have looked at
> ActiveControl and maybe that's the path I should follow. I want to compress
> this into one clean function that receives the currently active control and
> the currently defined maximum, and then reset the MaxGroupReading to the
> greater of these two values, so I can copy+paste said "=ComputeMax()" into
> all 20 of the AfterUpdate events and be done with it.
>
> Your last comment (about passing in the form) has immediate potential. In
> the real case, I have to do this four times, with fields numbered M1..M20,
> M21..M40, M41...M60 and M61...M80. Each of these lives on a separate tab's
> subform, but the algorithm remains the same throughout. There may or may not
> be data on everything beyond M20, as defined by the Parent form. If a
> WorkStation has only two LightCurtains, then LC1 and LC3 are defined with
> measures, and the others are not. (Please don't ask me why the sequence goes
> LC1, LC3, LC2 and LC4 -- I'm just a grunt programmer in the trenches, not a
> certified P.Eng). I just do what I'm told... which argument didn't work at
> Nuremberg and perhaps won't pass in Toronto, but that's my argument and I'm
> sticking to it.
>
> A.
>
> On Sat, Jul 23, 2011 at 9:46 AM, jwcolby<jwcolby at colbyconsulting.com>wrote:
>
>> Bubble sort?
>>
>> Arthur!!!
>>
>> I think a set of classes... ;)
>>
>> Actually a simple function where you pass the control with the data just
>> entered and the MaxReading control.  The function compares the value just
>> entered with max reading and sets maxreading to the new value if the new
>> value is bigger.
>>
>> function SetMaxReading(ctlJustEntered as control, ctlMaxReading as control)
>>
>>         if ctlJustEntered.Value>  ctlMaxReading.value then
>>                 ctlMaxReading.value = ctlJustEntered.Value
>>         endif
>> end function
>>
>> If you need to set dirty false then pass in the form as well.
>>
>> John W. Colby
>> www.ColbyConsulting.com
>>
>>
>>



More information about the AccessD mailing list