Seleccionar un dato de un campo solo una vez

Tengo un campo, No en la tabla entrada, este mismo campo lo tengo en la tabla salida; el tipo del campo en ambas tablas es numérico, necesito en el formulario basado en la tabla salida, cuando digite o seleccione el numero de entrada solo me permita escogerlo una sola vez.
Es de aclarar que tengo el campo No en la tabla entrada indexado sin duplicados y en la tabla salida indexado con duplicados.
Requiero que se pueda seleccionar solo una vez, del campo No, en el formulario salida, la información suministrada.

1 respuesta

Respuesta
1
Debes bloquear el campo cuando este tenga un valor. Para ello necesitas manejar el evento AfterUpdate de ese campo y el Form_Current. En ambos casos evalúas el valor del campo y, si es distinto de 0, lo bloqueas:
Me!elcampo.Locked = (Nz(Me!elcampo, 0) <> 0)
Prueba y cuentas.
Xavi
Xavi
Te argumento un poco más sobre el particular. El campo No de la tabla entrada por medio del formulario Entrada registro los numero consecutivos de la entrada de vehículos a un parqueadero, como el numero es único para cada registro, cada entrada queda con un numero único.
Este numero único necesito que en el campo No de la tabla Salida, solo permita ser registrado una sola vez y no permita ser registrado varias veces.
Aplique como tu indicaste en el afterupdate del campo No y en el Form_Current del formulario pero no me bloquea los Nos ya registrados y puedo volver a digitarlos en el formulario de Salida.
Agradecería tus comentarios,
Marcopolo
Lo siento... no entendí nada (a lo mejor es la falta de cafeína). Vuelve a intentarlo.
Xavi
Hola Xavi
Tengo dos tablas una se llama Entrada y esta compuesta por los campos No, Placa, Horae, el campo No esta indexado sin duplicados y es de tipo numero; la otra tabla se llama Salida y esta compuesta por los campos No, HoraS, importe. El campo No esta indexado con duplicados y es de tipo numérico.
Cuando entra un auto el campo numero me genera un consecutivo, el cual identifica el tiquete de entrada del auto al parqueadero, cuando sale el auto del parqueadero se le da salida con el No del tiquete, que es el consecutivo.
Lo que necesito es cuando digite el Numero del tiquete(salida) en el campo No no me permita volver a digitar el mismo numero,
Por ejemplo entra el auto le doy el tiquete con el No 20, solo puede haber una entrada con el numero 20; pero al salir el auto puedo tener nuchos tiquete con el numero 20, y lo que deseo es que se pueda registra la salida una sola vez el No 20.
Agradezco tu colaboración
Marcopolo
1. Me parece que poniendo el campo como indexado sin duplicados ya empezarías a solucionar el problema.
2. Otra solución pasa por hacer una cuenta de tickets que tengan el valor que acabas de introducir (un DCount sobre la tabla con el criterio adecuado) y, si es mayor que 0, es porque ya se ha utilizado.
3. Y la que creo mejor solución: utilizar una sola tabla.
Xavi
No puedo dejar una sola tabla, ya que tanto la hora de entrada como la hora de salida las tomo automáticas con con el formato, ahora.
marcopolo
La excusa para no tener una única tabla me parece (desde el punto de vista de quien no conoce tu aplicación) cuando menos peregrina...
Por mi experiencia en una aplicación parecida, no es inconveniente alguno el utilizar una sola tabla. En mi caso se trata de un control de entrada de camiones. Al entrar (crease el registro) se asigna el momento (Now, Ahora) al campo Fecha y hora entrada. El estado del registro es "En transito". Cuando se procede a realizar la salida (estado: finalizado) se asigna el momento al campo Fecha y hora salida.
¿Te sirve?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas