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