Steve Capistrant
scapistrant at symphonyinfo.com
Thu Aug 28 10:33:15 CDT 2003
Oops, I spoke too soon. You were already handling it in a public area. The thing you are missing is this: send the control as one of the parameters in the function. for example, your function name should look like: Public Function PopupCalendar(ctlForm as control, txt As TextBox) As Variant What you pass for the control parameter is the fully qualifed form and control name, like forms!frmCalendar!txtStartDate Then your function already has everything it needs, and you don't have to run through a burdensome Select Case process to guess which context is being used. Steve Capistrant Symphony Information Services scapistrant at symphonyinfo.com Phone: 612-333-1311 www.symphonyinfo.com 212 3rd Ave N, Ste 404 Minneapolis, MN 55401 -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Dan Waters Sent: Thursday, August 28, 2003 10:18 AM To: Database Advisors Subject: [AccessD] Calling an AfterUpdate Event in a different form. Is this possible? I have a calendar form that is triggered by double-clicking in a date field. Putting the date into the correct field works fine, but I need to be able to trigger the AfterUpdate event for whatever date field is on whatever form, and I haven't been able to figure this out. The AfterUpdate event is Public. The associated code is below, and is in a standard module: Public Function PopupCalendar(txt As TextBox) As Variant On Error GoTo EH [IN THIS EXAMPLE, txt = txtDateStart FROM THE CALLING FORM] Dim frmCal As Form Dim varStartDate As Variant Dim frmParent As Form Dim stgParent As String Dim stgAfterUpdateEvent As String If IsNull(txt.Value) Then varStartDate = CurrentDate Else varStartDate = txt.Value End If DoCmd.OpenForm "frmCalendar", , , , , acDialog, varStartDate If IsFormLoaded("frmCalendar") = True Then Set frmCal = Forms("frmCalendar") txt.Value = Format(DateSerial(frmCal!Year, frmCal!Month, frmCal!Day), "m/d/yy") stgParent = txt.Parent.Name Set frmParent = Forms(stgParent) stgAfterUpdateEvent = txt.Name & "_AfterUpdate" Call frmParent.stgAfterUpdateEvent [THIS IS WHAT I WANT - BUT NO DICE!] Call frmParent.txtDateStart_AfterUpdate [THIS WORKS, BUT WOULD NEED A CASE FOR EVERY FIELD!] DoCmd.Close acForm, "frmCalendar" Set frmCal = Nothing End If Exit Function EH: Application.Echo True Call GlobalErrors("", Err.Number, Err.Description, CurrentObjectName, "PopupCalendar", txt) End Function _______________________________________________ AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com