|
Mostrar Mensajes
|
Páginas: 1 2 3 4 5 6 [7] 8
|
64
|
Programación / Programación Visual Basic / ScriptControl.
|
en: 23 Enero 2007, 05:48 am
|
Buenas colegas.
De antemano mil gracias por su tiempo y por su ayuda
mi consulta es la siguiente, tengo un ejemplo que encontre en una web sobre como evaluar el resultado de una funcion, aqui la pego:
'Prueba 2 de ScriptControl Dim sCodigo As String Dim vValor As Variant
sCodigo = "Function Multiplica(a, b)" & vbCrLf & _ " Multiplica = a * b" & vbCrLf & _ "End Function"
'Añadimos el código, especificamos el lenguaje y ejecutamos With ScriptControl1 .Language = "VBScript" .AddCode sCodigo
'Usamos Run para obtener el resultado 'vValor = .Run("Multiplica", "2", "5")
'Usando Eval, nos permite que la expresión esté en 'una variable... además de hacerlo directamente, 'pero se usa de la misma forma que lo haríamos desde VB vValor = .Eval("Multiplica(2,5)")
'Mostramos el valor devuelto MsgBox "El valor devuelto es: " & vValor End With
El asunto es que la funcion esta encapsulada dentro de una variable como ven:
sCodigo = "Function Multiplica(a, b)" & vbCrLf & _ " Multiplica = a * b" & vbCrLf & _ "End Function"
Pero como puedo evaluar el resultado de una funcion cualquiera que se encuentra en otro modulo como ser
Function Valor() Valor=10 End Function
Pero sin declararla ni meterla dentro del procedimiento que la evalua ni con las "", no se si soy lo suficientemente claro , de todas maneras gracias por todo.
|
|
|
66
|
Programación / Programación Visual Basic / Re: Evaluar formulas.
|
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...
|
|
|
69
|
Programación / Programación Visual Basic / Funcion de Expresion logica.
|
en: 21 Enero 2007, 17:33 pm
|
Buenas colegas nuevamente!
De que manera puedo crear una funcion en la que yo pueda pasarle un operador por ejemplo:
Txt= LogicaSI(10,>,9,1)
como Resultado 1
Me imagino que no debe ser de esta manera pero es como se me ocurre explicarles para que puedan ayudarme.
Gracias de antemano por su tiempo...
|
|
|
70
|
Programación / Programación Visual Basic / Re: Evaluar formulas.
|
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...
|
|
|
|
|
|
|