[AccessD] Calling an AfterUpdate Event in a different form.

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





More information about the AccessD mailing list