Dan Waters
dwaters at usinternet.com
Thu Aug 28 10:17:31 CDT 2003
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