jwcolby
jwcolby at colbyconsulting.com
Thu Feb 12 15:07:21 CST 2009
> That's pretty slick, JC. I have often had to fire events on another form, but this approach makes is ludicrously simple. Just fine other than the method of obtaining the reference back to the control... Another method is to create a method on the target form that the calling form can use to pass in the control. This allows the target form to be opened from any other form and the control to sink passed in. Paste the following code into frmDemoSinkingCommandButtonEvent. NOTICE that you are replacing the Open event of the form, and creating a brand new function mCmd() to use to pass the control that you want to sink events for. Public Function mCmd(lcmd As CommandButton) Set cmd = lcmd MsgBox cmd.Name End Function Private Sub Form_Load() On Error Resume Next End Sub Now, over in frmDemoCtls replace the form_Open with the following code: Private Sub Form_Open(Cancel As Integer) Set fclsFrm = New clsFrm fclsFrm.mInit Me DoCmd.OpenForm "frmDemoSinkingCommandButtonEvent" Forms!frmDemoSinkingCommandButtonEvent.mCmd Me!Command15 End Sub Close both forms and open frmDemoCtls. Notice that frmDemoSinkingCommandButtonEvent opens "before" frmDemoCtls. DoCmd.OpenForm "frmDemoSinkingCommandButtonEvent" In fact the form is being opened by frmDemoCtls and so appears to open first. Forms!frmDemoSinkingCommandButtonEvent.mCmd Me!Command15 In any event it then passes in me!Command15, a pointer to it's button and voila, instant communication. Done this way ANY form can open frmDemoSinkingCommandButtonEvent since frmDemoSinkingCommandButtonEvent no longer depends on a specific form being opened. As might be imagined, the first method is called "pulling" since the reference to the command button is being "pulled" into frmDemoSinkingCommandButtonEvent as it opens. The second method is called "pushing" since the opening form is pushing the control reference into frmDemoSinkingCommandButtonEvent after it opens it. John W. Colby www.ColbyConsulting.com Arthur Fuller wrote: > That's pretty slick, JC. I have often had to fire events on another form, > but this approach makes is ludicrously simple. > > A.