Duda con EbExecuteLine.-

Iniciado por mdg, 14 Agosto 2007, 06:22 AM

0 Miembros y 1 Visitante están viendo este tema.

mdg

Buenas compañeros, nuevamente les consulto:

Tengo por un lado la siguiente funcion:

Public Function Suma(F1, F2)
Suma = F1 + F2
End Function

y en un boton de commando tengo:

Private Declare Function EbExecuteLine Lib "vba6.dll" _
(ByVal pStringToExec As Long, ByVal Foo1 As Long, _
ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long

Private Sub Command1_Click()
Dim cadena As String

cadena = "Form1.text1 =" & Suma(2,2)

code = EbExecuteLine(StrPtr(cadena), 0&, 0&, 0)

End Sub

Como resultado al presionar el boton, en el text1 obtengo el resultado esperado o sea 4, pero si en lugar de pre-escribir la funcion y sus paramentros en la linea:

cadena = "Form1.text1 =" & Suma(2,2)

escribo

cadena = "Form1.text1 =" & txtformula

para poder yo escribir la funcion que deseo utilizar en determinado momento y los parametros que necesite como por ejemplo suma(222,333) no me devuelve ningun valor, o sea la consulta seria como consigo que me devuelva el valor de la ejecucion de la funcion que yo escribo en el txtformula ?, gracias de antemano por su ayuda.

Freeze.

Si a esto te refieres a mi me funciona estupendamente


Public Function suma(v1 As Long, v2 As Long)
suma = v1 + v2
End Function
Private Sub Form_Load()
Text1.Text = suma(1, 2)
End Sub

mdg

En realidad no me refiero a eso, mas bien a esto:

Public Function suma(v1 As Long, v2 As Long)
suma = v1 + v2
End Function
Private Sub Form_Load()
Text1.Text = txtformula
End Sub

lo que contiene el txtformula por ejemplo: Multiplica(Suma(1, 2), 2), lo que funciona en el evento Load pero no en el evento de un boton de commando, en concreto lo que pretendo es:

'Api EbExecuteLine
Private Declare Function EbExecuteLine Lib "vba6.dll" _
(ByVal pStringToExec As Long, ByVal Foo1 As Long, _
ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long

Private Sub Command1_Click()

Dim cadena As String

cadena = "Form1.text1.text =" & txtformula
code = EbExecuteLine(StrPtr(cadena), 0&, 0&, 0)

End Sub

Como dije anteriormente, lo que contiene el txtformula por ejemplo: Multiplica(Suma(1, 2), 2) pero de esta forma no arroja los resultados en el text1, en cambio si en la linea: cadena = "Form1.text1.text =" & Multiplica(Suma(1, 2), 2) , esto si me devuelve los resultados pero es necesario que yo no tenga que escribir en la rutina la funcion y sus criterios mas si en el txtformula ya que es para un sistema de sueldos por lo que las formulas varian permanentemente, gracias por responder.


LeandroA

hola Debes poner la el nombre de la clase de donde probiene la funcion.

osea si vos en el form1 tenes la funcion Suma() para referirte a esta Debes llamarla con su clase osea form1


mira

linea a ejecutar en el txtformula
form1.text1 =  form1.suma(222,333)

Saludos

mdg

Leandro, No sabes lo agradecido que quedo con vos  :D :D, gracias a tu sugerencia pude solucionar el problema, gracias tambien a todos los que participaron en el debate, pueden cerrar el tema.-