Access - Texto dependiendo de Resultados

   
Vista:

Texto dependiendo de Resultados

Publicado por José Maria (134 intervenciones) el 27/10/2015 11:03:03
Buenas amigos,

Tengo una seríe de campos que son Bit, por lo que pueden ser 0 o -1.
He creado un campo de texto para que me resuma esos resultados en un texto "Estado"
Es decir:

Tengo los campos P,F,y V por ejemplo los cuales pueden ser 0 y -1.
La idea es que dependiendo del resultado que tengan esos datos me escriba un texto en el campo.
Básicamente sería un campo calculado.

He probado con un If y con un Select Case pero nada:

1
2
3
4
5
If P= -1 And F = 0 Then
Estado.Value = "Cerrado"
ElseIf P=0 And F= -1 Then
Estado.Value = "Facturado"
End If

Pero el Estado no me cambia, he probado al Abrir formulario y al Activar registro pero nada, no lo cambia.

Gracias de antemano
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

Texto dependiendo de Resultados

Publicado por Enrique Heliodoro (1663 intervenciones) el 27/10/2015 15:13:11
Un campo de tipo BIT no tiene signo (ni espacio físico para tenerlo) o es un cero o es un uno.

Otra cosa es como utiliza Access al concepto 'True/False' (campos de tipo Booleano) que no utilizan (ni de lejos) un bit para representarlo, sino un clásico entero largo en el cual (y por defecto) se asume que el valor -1 representa a TRUE y el 0 a FALSE, lo cual es relativamente cierto, pues en la practica (y la teoría aquí aplicada) el valor cero es un FALSE y 'cualquier otro entre sus posibles' es un TRUE, en definitiva:
= 0 ===> FALSE
<> 0 ==> TRUE

En esa comparación que utiliza dos elementos (ambos con dos posibles estados) hay estados que pueden dar lugar a confusión (ambos a FALSE o ambos a TRUE).
Queda en el tintero la referencia correcta a esos objetos, pues si bien se puede llegar a deducir que 'estado' es un objeto el formulario (por la referencia a su propiedad 'value') tanto 'P' como 'F' pueden ser cualquiera otra cosa (generalmente variables).

Para evitar esas indecisiones lo ético es utilizar la referencia absoluta o relativa (algo que acelera el procesado de los datos)

Para 'estado':
Referencia relativa ==> Me.Estado = ???
Referencia absoluta ==> Forms![nombre del formulario]!Estado = ???

Si los datos 'están disponibles' y son correctos, el evento idóneo es el 'Current' del formulario (activar registro), pero insisto, los referentes a comparar han de existir (no ser obtenidos de forma posterior).
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

Texto dependiendo de Resultados

Publicado por José Maria (134 intervenciones) el 27/10/2015 18:28:25
Gracias Enrique, era un fallo entre referencia Absoluta y Referencia Absoluta.
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

Texto dependiendo de Resultados

Publicado por José Maria (134 intervenciones) el 27/10/2015 19:01:25
Bueno, finalmente no he fallo de referencias.
Era que tenía un If delante del codigo que si no se cumplia se salia......fallo de novato
Gracias por la ayuda
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