Autor
|
Tema: Duda con EbExecuteLine.- (Leído 2,653 veces)
|
mdg
Desconectado
Mensajes: 73
|
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.
|
|
|
En línea
|
|
|
|
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
|
|
|
En línea
|
|
|
|
mdg
Desconectado
Mensajes: 73
|
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.
|
|
|
En línea
|
|
|
|
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
|
|
|
En línea
|
|
|
|
mdg
Desconectado
Mensajes: 73
|
Leandro, No sabes lo agradecido que quedo con vos , gracias a tu sugerencia pude solucionar el problema, gracias tambien a todos los que participaron en el debate, pueden cerrar el tema.-
|
|
|
En línea
|
|
|
|
|
|