Necesito Ayuda con Access

Estimado amigo, tengo un problemilla con una base de datos. Concretamente en un formulario, en el quiero meter dos campos uno de ellos contendrá un numero en pesetas y el otro lo tendrá expresado en euros. En un principio parece sencillo, pero yo quiero tener la posibilidad de meter el dato en pesetas o en euros y que se calcule automáticamente. ¿Cómo puedo hacer para que un campo contenga o bien una fórmula referente a otro campo o bien un dato que yo le meta? Espero que le haya quedado clara mi duda. Espero pronto noticias suyas y muchas gracias de antemano. Un saludo. JUAN

2 respuestas

Respuesta
1
La verdad no se nada de access pero pregunte por hay y me dijeron esto:
Se me hace más fácil este ejemplo de código. Antes que nada, supongo tienes un campo de tasa de conversión. Recomiendo que le pongas un valor por default, o mejor aun, que tengas una tabla ligada de tasas de conversión.. como quieras
Private Sub Pesetas_LostFocus()
Form_Form1!Pesos.Value = Form_Form1!Pesetas.Value * Form_Form1! Tasa.Value
End Sub
Private Sub Pesos_LostFocus()
Form_Form1!Pesetas.Value = Form_Form1!Pesos.Value / Form_Form1!Tasa.Value
End Sub
Este funciona porque normalmente en una forma, cambios de campos con el tab.
Si quieres verte más sofisticado, puedes comparar si varía el valor, y entonces sí hacer la fórmula, pero este código es bastante rapido.
----------------
La única forma que se me ocurre (la única viable para no escribir toneladas de código) es esta, ojalá te ayude en algo.
Un solo campo que contenga la cantidad númerica, seguido de un campo booleano que identifique el tipo de valor (euro -0- o peseta -1-).
De ahí, creas un cuadro de control calculado que mediante la fórmula correspondiente convierta la cantidad a la opción restante.
Utiliza la función de condicionamiento en bucle (Ifnm o algo así). Así le especificas: de cumplirse el valor booleano 1, entonces esta fórmula, de cumplirse el valor 2, entonces esta otra.
Es decir, cuando ingreses la cantidad y asignes el valor (peseta o euro), inmediatamente el control calculado te dará el valor no obviado.
Respuesta
1
Muy fácil. Para la entrada de datos no tienes que hacer nada, solamente crea dos cajas de texto, una con formato numérico sin decimales y otra con formato numérico con dos decimales. Hasta aquí, tienes dos campos donde podrás entrar información. Para poder controlar esta información puedes hacer lo siguiente (todo mediante código por supuesto):
1.- Crea una variable global al principio del código del formulario:
DIM TOQUE AS BOOLEAN
2.- En el FormLoad pon a false esta variable:
TOQUE=FALSE
3.- En el Change de cada una de las cajas de texto pon:
TOQUE = TRUE
4.- En el AfterField de las dos cajas de texto pon:
- Campo en pesetas:
IF TOQUE THEN
TOQUE=FALSE
CAMPOEURO.VALUE=CAMPOPTAS.VALUE/166.386
END IF
- Campo en euros:
IF TOQUE THEN
TOQUE = FALSE
CAMPOPTAS.VALUE=CAMPOEURO.VALUE*166.386
END IF
Si no me he colado en nada, controlas con la variable TOQUE si se han modificado los campos de pesetas y euros. En el caso de que se hayan modificado, fuerzas que al salir del campo calcule su contrario. Después del calculo puedes poner un CAMPO. SETFOCUS para enviar el control al campo que desees.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas