[AccessD] events question

Susan Harkins ssharkins at gmail.com
Tue Dec 11 13:10:20 CST 2007


I can't wait to try this A.D. Thanks!

Susan H.


> Using common function for MouseMove over multiple controls
> ==========================================
>
>    1 - MouseMove over a given control does not necessarily imply that the 
> control in question is the active control. This rules out the use of an 
> omnibus function based upon ActiveControl. Instead, it becomes necessary 
> that even if a common function of generic nature is used for all controls, 
> name of each individual control making the call has to be passed as an 
> argument.
>
>    2 - Evidently, conventional approach in calling such a function from 
> MouseMove events of multiple controls involves tedious work by the 
> developer. Repetitive entries of function name (with control name as 
> argument) are needed either in VBA code in MouseMove event for each of the 
> controls in question, or directly as similar entries against OnMouseMove 
> property on Event tab in properties dialog box of each such control.
>
>    3 - An interesting alternative that makes the whole process remarkably 
> simpler, is suggested below:
>
>    3.1 - With form in design view, select all controls required to make 
> use of the common function. Set the tag property of these controls to "MM" 
> (simply enter MM without any enclosing quotes).  Save.
>
>    3.2 - Go to VBA window and place the sample code as given below, in 
> form's module. Save and compile. Come out of VBA window, save and close 
> the form.
>
>    3.3 - As the form loads, OnMouseMove event property of all the above 
> controls will get set to function Fn_MMove(), correctly passing the name 
> of control as argument in each case.
>
>    3.4 - As per the common function Fn_MMove() given below, back color of 
> all the above text boxes (having "MM" as the tag property) will change to 
> red on mouse move.
>
> A.D.Tejpal
> ------------
>
> Sample code in form's module
> '==================================
> Private Sub Form_Load()
>    On Error Resume Next
>    Dim ct As Control
>
>    For Each ct In Me.Controls
>        If ct.Tag = "MM" Then
>            ct.OnMouseMove = _
>                "=Fn_MMove('" & ct.Name & "')"
>        End If
>    Next
>    On Error GoTo 0
> End Sub
> '--------------------------------------------------
>
> Private Function Fn_MMove(StrTxtBoxName As String)
>    Me(StrTxtBoxName).BackColor = vbRed
> End Function
> '==================================
>
>  ----- Original Message ----- 
>  From: Susan Harkins
>  To: AccessD at databaseadvisors.com
>  Sent: Friday, December 07, 2007 21:24
>  Subject: [AccessD] events question
>
>
>  I don't know how to summarize this question, hence the bad subject. I
>  apologize.
>
>  I'm wondering if there's a way to consolidate similar event calls into 
> one
>  event. For instance, if you want to passto/call a function from every
>  control's Mouse Over event, is there a simple way to do that with one 
> call
>  rather than dropping the call into every single control's appropriate 
> event?
>
>  I've run into this so many times and it just seems so inefficient.
>
>  Susan  H.
> -- 
> 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