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

Steve Capistrant scapistrant at symphonyinfo.com
Thu Aug 28 10:27:59 CDT 2003


Yes.  Put all the AfterUpdate code into a public function in a standard
module.  Call it "AfterUpdateOfDateOnFormXXX()", something that can be
globally unique.  Then call that code from both contexts:  the control's
AfterUpdate property AND the external procedure.

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





More information about the AccessD mailing list