[AccessD] Dynamically calling combobox_afterupdate from form_open event
Bill Benson
bensonforums at gmail.com
Thu Mar 9 15:13:00 CST 2023
Even if you (1) have the Form open and (2) prefix the called function with
the name of the Form variable? I do that all the time in Excel, although I
might assign the Form to an instance of the Form.
On Mon, Mar 6, 2023 at 6:23 PM Stuart McLachlan <stuart at lexacorp.com.pg>
wrote:
> It's probably worth noting that the example code from the MS site doesn't
> work if the
> functions A1() etc are in a form module whether or not they are marked as
> Public
> It only works if the functions are in a standard code module.
>
> On 6 Mar 2023 at 13:03, Ryan W wrote:
>
> > I have a form that takes openargs, the openargs are such as:
> >
> > cbxJobID|12345
> >
> >
> > The key/pair set can be repeated.. the key is the control name, the
> > other is the data to input into the control name
> >
> > my form open event is as such:
> >
> > Private Sub Form_Open(Cancel As Integer)
> > Dim l As Long: l = 0
> > Dim strArgs() As String
> > If IsNull(Me.OpenArgs) Then Exit Sub
> >
> > strArgs = Split(Me.OpenArgs, "|")
> > For l = 0 To UBound(strArgs) Step 2
> > Me(strArgs(l)) = strArgs(l + 1)
> > Call Eval(strArgs(l) & "_AfterUpdate")
> > Next l
> >
> > End Sub
> >
> >
> >
> > The problem I'm having is the "Call Eval()" part. I get an error:
> > "Run-Time error '2482': Cannot find name 'cbxJobID_AfterUpdate' you
> > entered in the expression.
> >
> > However that exists. I've tried making it a public sub, private sub,
> > public or private function.
> >
> > None of it seems to work. Maybe it can't be a form level function/sub,
> > has to be module level?
> >
> > The microsoft documentation under examples shows the method I'm using
> > is supported:
> >
> > https://learn.microsoft.com/en-us/office/vba/api/access.application.ev
> > al
> >
> >
> > The following example assumes that you have a series of 50 functions
> > defined as A1, A2, and so on. This example uses the *Eval* function to
> > call each function in the series. Sub CallSeries()
> >
> > Dim intI As Integer
> >
> > For intI = 1 To 50
> > Eval("A" & intI & "()")
> > Next intI
> >
> > End Sub
> >
> >
> > So, something is missing here... can anyone clue me in?
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > https://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> >
>
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> https://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>
More information about the AccessD
mailing list