Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: mdg en 8 Agosto 2007, 05:33 am



Título: Referencia a argumento en funcion.-
Publicado por: mdg en 8 Agosto 2007, 05:33 am
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:
 
Código
  1. Public Function BuscarHijos(P1 As Integer) As Variant
  2. On Error GoTo Hay_err_err
  3.  
  4.    DBpath = App.Path & "\datos\tablas.mdb"
  5.  
  6.   strsql = "SELECT Max(mid(jerarquia, ["& P1 &"],2)) as Resultado FROM tbl_generaciones Where Mid(Jerarquia,1,1)=" & Mid(Me.txtpariente, 1, 1)
  7.  
  8.  
  9.        Set db = DBEngine.OpenDatabase(DBpath, False, False, ";pwd=mipass")
  10.     Set rst = db.OpenRecordset(strsql)
  11.  
  12.       rst.MoveFirst
  13.        rst.MoveLast
  14.     'Si no hay registros coinvertimos el null en cero para
  15.     'poder sumarle 1
  16.     If IsNull(rst!Resultado) Then
  17.     BuscarHijos = 0
  18.     'si hay registros devolvemos el max
  19.     Else
  20.     BuscarHijos = rst!Resultado
  21.     End If
  22.  
  23. End Function

Ais como esta la ejecuto pero no me da resultado, nuevamente gracias por su ayuda.


Título: Re: Referencia a argumento en funcion.-
Publicado por: CeLaYa en 9 Agosto 2007, 23:43 pm
   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:
Código:
Public Function BuscarHijos(P1 As Integer, Pariente as String) As Variant


- ó usa el nombre del form
Código:
   strsql = "SELECT Max(mid(jerarquia, ["& P1 &"],2)) as Resultado FROM tbl_generaciones Where Mid(Jerarquia,1,1)=" & Mid(Nombredetuform.txtpariente, 1, 1)