Visual Basic - ok, y pa q la funcion la meta el usuario?

Life is soft - evento anual de software empresarial
 
Vista:

ok, y pa q la funcion la meta el usuario?

Publicado por david (14 intervenciones) el 19/09/2002 13:06:45
si quiero q la funcion de dnd saque el valor y no se la de yo sino q la saque de un textbox como lo hago? scriptcontrol.eval(string) no me va... ayda porfaaaaa ;)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ok, y pa q la funcion la meta el usuario?

Publicado por J²ML (464 intervenciones) el 19/09/2002 15:30:19
Esta solución fue algo muy improvisado pero me funciona, la misma emplea una base de datos para utilizar una instrucción SQL y así obtener el valor deseado algo así:
1.- Crea una base de datos con una sola tabla, con un solo campo (númerico) que tenga un solo registro y que sea de valor igual a 1. La base de datos la llamaré BASE.mdb (suponiendo que sea en acces), la tabla la llamaré TABLA y el campo lo llamaré UNICO.
2.- En una caja texto (podría ser un Text1) tendrás la fórmula declarada, por ejemplo Text1.text=" X + 10 ". y en una variable llamada X (numérica) asignas el valor de prueba por ejemplo X = 7.
3.- Ahora necesitas una variable tipo String la llamaré FORMULA. Luego transformo la expresion de la caja de texto a sus valores numéricos reales, algo así:
For j = 1 To Len(Text1.Text)
if ucase(mid(text1.text , j , 1)) = "X" then 'El ucase es para X minúscula
FORMULA=FORMULA + X
else
FORMULA=FORMULA+mid(text1.text , j , 1)
end if
next j
(es decir FORMULA= " 7 +10 ")
4.- Luego Abres la base de datos (con instrucciones DAO sería: Set DB = OpenDatabase(App.path+"\BASE.mdb").
5.- Para ejecutar tu expresión final sólo debes crear un recordset así: Set rst = db.OpenRecordset("Select " + FORMULA + " * [UNICO] from [TABLA]")
5.- el valor de tu expresion está en:
rst.MoveFirst
MsgBox text1.text + " = " + CStr(rst.Fields(0))
(Esto debería mostrar en una caja de mensajes X + 10 = 17).
Lo bueno de esta rutina es que hasta ahora he co
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar