[AccessD] Dynamically calling combobox_afterupdate from form_open event

Ryan W wrwehler at gmail.com
Mon Mar 6 13:03:11 CST 2023


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.eval


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?


More information about the AccessD mailing list