Cambiar y Guardar un valor numérico de un campo a otro pero en forma de texto en una tabla de access

Tengo un formulario que tiene un cuadro con dos botones de opción "Activa" e "" Inactiva", al seleccionar cualquiera de las dos opciones este se guarda en el campo de la tabla op1 como un valor numérico (Activa=1, Inativa=2), pero quiero que al mismo tiempo se guarde en otro campo denominado op2 como texto. Se que podria usar if y then, pero no se como ser;ia la sintaxis.

3 Respuestas

Respuesta
1

En el mismo proceso en que se guarda el valor numérico en el campo 'op1' se puede guardar un dato en el campo 'op2', lo más sencillo es la función IIF que permite una evaluación y dos alternativas.

La sintaxis se puede parecer a esta (como origen de datos para 'op2'):

= IIF ([op1]=1; "Activa"; "Inactiva")

Access traducirá IIF ==> SiInm (la traducción local del nombre de la función cuando la sintaxis es correcta), se puede escribir el nombre local (pero IIF es más corto además de válido en VBA y fuera de el).

Es un simple ejemplo de como actúa la función IIF.

No ha publicado como guarda el valor en el campo y esa metodología puede aplicarla para cualquier campo (incluido el utilizar macros).

Para evaluar 'op1' tiene que tener un valor y ese es el resultado que obtendría tras introducirlo.
Si el problema es la estética cuando esta creando el registro, se puede predeterminar un valor por defecto.

Hay mas opciones por ejemplo Choose o Switch ¿Pero para que complicar lo sencillo?.

Respuesta
1

El problema de la instrucción que te dan es que si la pones en el origen de datos del control Op2, no te la guardará en la tabla origen del formulario, sólo la verás en el formulario. Por eso no te queda. Además, en caso de que no marcaras nada(nulo), te aparecería como Inactiva, mira la imagen. Y debería aparecer en blanco ya que todavía no has elegido nada.

Por lo que no te queda más remedio que dejar como origen del control OP", el propio campo de la tabla y hacerlo en código VB. En las propiedades del marco de opciones, Eventos-Después de actualizar, con el generador de código crea un procedimiento de evento y entre Private Sub... y End sub escribir algo como

If marco4=1 then

OP1=1

OP2="Activa"

elseif marco4=2 then

OP1=2

OP2="Inactiva"

end if

Respuesta
1

El uso de IIF() es un mal hábito de programación, personalmente recomiendo la respuesta de Julián.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas