David McAfee
davidmcafee at gmail.com
Tue Jun 23 12:26:12 CDT 2009
Concatenate the function name with any paremeters then call it in an eval as such: Public Function Test(Optional strtest As String, Optional strFuncName As String) As Integer Dim strC If Nz(strFuncName, "") <> "" Then If strtest = "21040" Then 'Test = GetCompanyIDByRamcoID(strtest) strC = strFuncName & "(" & NZ(strtest,"0") & ")" Test = Eval(strC) Else Test = 0 End If Else Test = 0 End If End Function Public Function GetCompanyIDByRamcoID(Optional RamcoID As String) As Integer Dim RtnStr As String If Nz(RamcoID, "") <> "" Then Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset 'Call the stored procedure, passing it the parameter, returning recordset rs 'CurrentProject.Connection.stpGetCustInfo CustNo, rs CurrentProject.Connection.stpGetCompanyIDbyRamcoID RamcoID, rs 'Fill in the fields from the returned recordset If Not rs.BOF And Not rs.EOF Then RtnStr = IIf(Nz(rs![CompanyID], 0) = "", 0, rs![CompanyID]) Else RtnStr = 0 End If rs.Close Set rs = Nothing Else RtnStr = 0 End If GetCompanyIDByRamcoID = RtnStr End Function On Tue, Jun 23, 2009 at 8:24 AM, Arthur Fuller <fuller.artful at gmail.com>wrote: > Is there a way to pass the name of a function or procedure to another one? > The need for this might occur when the given procedure must branch in > various ways, and call a proc/function whose name depends upon the > code-path, as it were. Yes, one could write a CASE statement to deal with > this, and that is exactly what my current code does. But it set me to > wonder > whether it's possible to pass the name of the function/procedure to call > rather than code the CASE statement. > A. > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com >