Convertir una cadena de texto en una fórmula

En la aplicación que utilizamos en el trabajo ( Teowin: fabricación de muebles ), para definir las piezas de un mueble se hace mediante una fórmula.
La fórmula está toda en el mismo campo de una base de datos de access, ej:
Si por ejemplo x = anchura, y =altura y 'z' = profundidad
El campo fórmula de la base de datos será x=700,y=800,z=200 por ejemplo
Como puedo yo convertir esta cadena de texto en tres variables de visual basic con 3 valores y así poder hacer operaciones con ellas.
Algo como calcular los metros cuadrados de una pieza, no lo consigo hacer. 'x' * 'y'

1 respuesta

Respuesta
1
Ok. Disculpa pero en lo que tu quieres hacer no te voy a poder ayudar, estuve intentándolo (recorriendo toda la variable y cuando sea una letra esta la almacoba en un vector y luego al finalizar el recorrido, busca en el vector las letras almacenadas y con esa letra le asignaba el valor correspondiente y luego buscaba esa misma letra en la variable para sustituir la letra por el valor), pero lo logre luego que me hiciera la operación (fórmula), en otra ocasión sera..
Gracias por responder tan rápido, aunque me has sido de ayuda, creo que no he planteado bien mi problema.
(L-10)x(P-25)
2*(H+P)
Por ejemplo estas son dos fórmulas que hay en un campo de la base de datos origen.
No siempre utiliza las mismas variables, ni tampoco en el mismo orden.
Si tengo el valor de L, P, H o cualquier otra variable, ¿cómo hago para interpretar la fórmula introducida?
2*(H+P)
¿Cómo le digo yo al ordenador que reproduzca la fórmula de la base de datos?
Gracias por tu interés
Gracias por haberlo intentado
Una solución posible es la siguiente: una vez que le asignes a una variable el valor del campo fórmula(ejemplo:X=7040, Y=650, Z=1580), es decir que la variable en vb ya tenga todo este dato, puedes hacer:
Dim x As Double
Dim y As Double
Dim z As Double
For i = 3 To Len(valor)
a = Mid(valor, i, 1)
If a = "," Then
x = Mid(valor, 3, i - 3)
h = i + 3
i = Len(valor)
End If
Next i
For i = h To Len(valor)
a = Mid(valor, i, 1)
If a = "," Then
y = Mid(valor, h, i - h)
h = i + 3
i = Len(valor)
End If
Next i
z = Mid(valor, h, Len(valor))
Y ya tendrías en las variable por, y, z los valores correspondientes, para que luego le hagas las operaciones que tu quieras.. espero te sirva, suerte y por favor no se te olvide finalizar la pregunta..
Finaliza la pregunta..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas