Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: mdg en 21 Enero 2007, 05:45 am



Título: Evaluar formulas.
Publicado por: mdg en 21 Enero 2007, 05:45 am
Buenas colegas, tengo el siguiente dilema.

Eh intentado sin resultaso  , crear un formulario en el cual mediante cadenas de texto pueda crear formulas tales como:

Canceto1=Sumar(sueldobruto,antiguedad) donde sueldobruto y antiguedad son variables del empleado , pero no logro dar con la manera de hacer esto, eh intentado con el scriptcontrol pero francamente no se bien como utilizarlo, todavia no lo comprendo muy bien, es por eso que les solicito ayuda, si alguien tiene algun ejemplo de esto o tiene alguna mejor idea de como hacerlo se los agradecere eternamente.


Título: Re: Evaluar formulas.
Publicado por: _Sergi_ en 21 Enero 2007, 14:00 pm
No comprendo la pregunta. ¿Podrías explicarte mejor?

Con ejemplos de código, lo que has intentado hacer y te ha devuelto error, o al menos, lo que esperas que haga el programa y no hace.

Un saludo


Título: Re: Evaluar formulas.
Publicado por: mdg en 21 Enero 2007, 17:25 pm
Hola, gracias por responder, lo que tengo echo esta en vba en access que es donde realizo las pruevas pero el problema lo tengo en el script

Esta funcion me devuelve la antiguedad en años de un empleado, segun el numero de legajo ingresado en un txtbox

Public Function Antiguedad()
Dim sql As String
Dim rst As DAO.Recordset

sql = "SELECT * FROM tbl_Empleados WHERE Legajo='" & Forms!formulario3!txtlegajo & "'"
Set rst = CurrentDb.OpenRecordset(sql)

rst.Edit
Antiguedad = rst("anti")
rst.Close

End Function

'Este es el Script que me evalua los calculos.


Dim ObjetoScript As ScriptControl

Private Sub cmdeval_Click()
Dim vvalor As Variant


 'vamos a jecutar Msgbox externo
 Set ObjetoScript = New ScriptControl
   With ObjetoScript
      .Language = "VBScript"
     
      'Esta seria la funcion que me trae la antiguedad en años de un empleado
      .AddCode Antiguedad
     
      '.AddCode "Antiguedad"
     
      vvalor = .Eval(Me.Text2)

   End With
   Set ObjetoScript = Nothing
   Me.Text1 = vvalor
End Sub


El caso es que si yo en text2 ingreso (10+10+antiguedad) me larga error por la funcion, no se como puedo hacer para que interactue con los demas calculo, gracias por responder...


Título: Re: Evaluar formulas.
Publicado por: _Sergi_ en 21 Enero 2007, 19:30 pm
Hola

Lo que intentas hacer, sustituir una entrada de texto por una variable no estoy seguro de que pueda hacerse, o al menos yo no lo sé hacer.

Lo siento  :-\


Título: Re: Evaluar formulas.
Publicado por: mdg en 22 Enero 2007, 04:26 am
Hola!

Lo que intento es que el Scriptcontrol me evalue tambien el resultado de la funcion Antiguedad pero no logro dar con la forma eh intentado Scriptcontrol1.AddCode "Antiguedad" pero me dice que se esperaba instruccion o algo asi  tambien probe: Scriptcontrol1.AddCode Antiguedad pero me dice que no coinciden los tipos , tambien quiero poder evaluar el resukltado de esta funcion combinada con otros calculos como ser antiguedad+10+20, etc, no se si me explico, gracias nuevamente...