Hola!, nuevamente yo, antes que nada les agradezco mucho su tiempo y su ayuda.- 
 
 
La cuestion es que necesito pasarle a la funcion Mid los argumentos desde los argumentos de otra funcion valga la redundancia,  esto es lo que intento:
 
Public Function BuscarHijos(P1 As Integer) As Variant
On Error GoTo Hay_err_err
    
    DBpath = App.Path & "\datos\tablas.mdb"
     
   strsql = "SELECT Max(mid(jerarquia, ["& P1 &"],2)) as Resultado FROM tbl_generaciones Where Mid(Jerarquia,1,1)=" & Mid(Me.txtpariente, 1, 1)
      
   
        Set db = DBEngine.OpenDatabase(DBpath, False, False, ";pwd=mipass")
     Set rst = db.OpenRecordset(strsql)
       
       rst.MoveFirst
        rst.MoveLast
     'Si no hay registros coinvertimos el null en cero para
     'poder sumarle 1
     If IsNull(rst!Resultado) Then
     BuscarHijos = 0
     'si hay registros devolvemos el max
     Else
     BuscarHijos = rst!Resultado
     End If
          
End Function
Ais como esta la ejecuto pero no me da resultado, nuevamente gracias por su ayuda.
			
			
			
				Cita de: mdg en  8 Agosto 2007, 05:33 AM
   strsql = "SELECT Max(mid(jerarquia, ["& P1 &"],2)) as Resultado FROM tbl_generaciones Where Mid(Jerarquia,1,1)=" & Mid(Me.txtpariente, 1, 1)
si esta función la tienes en un módulo te dará error porque usas el objeto "ME", que hace referencia al form en el que estas actualmente, lo que puedes hacer son 2 cosas
- enviale el dato como parametro de la funcion:
Public Function BuscarHijos(P1 As Integer, Pariente as String) As Variant
- ó usa el nombre del form
   strsql = "SELECT Max(mid(jerarquia, ["& P1 &"],2)) as Resultado FROM tbl_generaciones Where Mid(Jerarquia,1,1)=" & Mid(Nombredetuform.txtpariente, 1, 1)