Access - Control acceso de personas mediante Access

 
Vista:
sin imagen de perfil

Control acceso de personas mediante Access

Publicado por edudeprado (7 intervenciones) el 29/07/2016 21:21:36
Buenas. Después de leer y probar varias de las respuestas, me sigue sin funcionar, por ello creo este nuevo tema.

En su momento hice una base de datos de socios (evento deportivo) con su correspondiente código de barras con la intención de poder controlar el acceso de los mismos al recinto. Como es lógico un socio = un acceso. Los datos se introducen mediante el típico lector de códigos.


Aunque será mas complejo, en principio me interesa comprobar tras escanear un código si ha sido escaneado antes, y para ello tengo:

- Tabla: T_ACCESOS ---> Campos: ID_ACCESO (Autonum), CODIGO_BARRAS, FECHA.

- Formulario: F_ACCESOS (Vinculado con la tabla) ---> Cuadros de Texto (Independiente): ESCANEOS -- Campos: CODIGO_BARRAS y FECHA (Automática).

El código de barras es del tipo: *1020170125* (12 caracteres, incluidos asteríscos). Aunque no lo comento, la intención es extraer posteriormente del mismo distintos fragmentos para posteriores cálculos y estadística, aunque esto ya está solucionado.

La intención es escanear mediante pistola de códigos el código de barras al cuadro de texto del formulario "ESCANEOS" quedando guardado en la variable (STRING) de nombre VAR_CODIGO. Antes de poder volcar los datos sobre la tabla y generar un nuevo registro, quiero comprobar si ese código ha sido escaneado previamente. (Se trata de evitar pasar dos veces el mismo carnet de socio).

El formulario F_ACCESOS tiene como origen de los datos la tabla T_ACCESOS, y tras cada escaneo de un nuevo código (con éxito, no repetido), carga un nuevo registro automáticamente para agilizar la tarea.

Podría incluir la opción "evitar" duplicados, pero esto me mostraría el típico mensaje y ralentizaría la lectura de códigos. Por ello había pensado en almacenar el código escaneado en una variable y compararlo con todos los códigos introducidos y almacenados en la tabla hasta el momento:

- Si NO EXISTE: Almacenar la información de la vaiable en un nuevo registro, mostrando la pantalla en verde para inmediatamente después permitir la introducción de un nuevo código en un nuevo registro.

- Si EXISTE: No grabar ningun tipo de información, mostrar la pantalla en rojo, y permitir la introducción de un nuevo código.

He probado la función "DLOOKUP", pero me da error de sintaxis, pero sin utilizar variables o campos independientes, vinculados directamente a la tabla.

Estoy bastante perdido en este apartado. Gracias.
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
sin imagen de perfil

Control acceso de personas mediante Access

Publicado por Enrique Heliodoro (1664 intervenciones) el 29/07/2016 22:54:12
Estarás utilizando la fuente 3of9, asi que 'el código real' que devolverá el lector (para el código publicado) será : 1020170125 y tendrá una longitud de diez caracteres (que sea numero o texto dependerá del trato que se le de al dato)

No tengo clara esa tabla, pues si es un LOG de entradas, también lo debería de ser de SALIDAS, porque asumo que un socio puede salir a 'lo que sea y le apetezca' y volver a entrar cuando quiera (existirían repeticiones), por lo que para poder llegar a una conclusión seria, se tiene que planificar con mas detalle y prever todas las posibilidades (asi como diferenciar entradas y salidas, algo que puede ir incluido en el mismo registro).
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
sin imagen de perfil

Control acceso de personas mediante Access

Publicado por edudeprado (7 intervenciones) el 30/07/2016 10:54:19
Buenos días. Primero muchas gracias por contestar tan rápido.

Aunque yo siempre soy mas partidario de hacer las cosas lo mas completas posibles y preveer todas las variables, en este caso solo interesa el control de acceso y evitar que un mismo carnet se pase varias veces; aunque como bien dices lo suyo sería controlarlo todo.

En cuanto al código, se ha utilizado la fuente: IDAutomationHC39M, y tras pasar la pistola por el mismo si incluye los asteríscos.

La estructura ideada quizás no sea la correcta y estoy abierto a otras opciones. Estoy un poco perdido en este tema.

El interés principal es almacenar todos los códigos escaneados contínuamente detectando si se ha escaneado previamente, y sin tener que pulsar intro para cada código.

Gracias.
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
sin imagen de perfil

Control acceso de personas mediante Access

Publicado por Enrique Heliodoro (1664 intervenciones) el 30/07/2016 12:56:30
Lo primero, los asteriscos son los marcadores de inicio y fin de la secuencia de barras en ese tipo de código, ese tipo de fuente 'admite cualquier cosa' y entre lo que admite están los asteriscos (añadirá unos al generar el código y los eliminara al leerlo, es un proceso transparente).

Asi pues si le añadimos 33 asteriscos delante y otros tantos (u otro numero indefinido de ellos al final) .... los representara como contenido (será el usuario el que les de un sentido o valor para algo: por ejemplo relleno).

Si solo se intenta verificar que no se pase 'dos o mas' veces consecutivas el mismo código, bastaría compara la lectura actual con la ultima lectura y actuar según las conclusiones obtenidas.

Si se desea verificar que ese código solo sea valido una única vez, es entonces cuando lo de localizarlo en ¿¿¿??? seria lo adecuado y se puede hacer con DLookup o bien con DCount
(personalmente prefiero DCount porque su resultado es mas manejable y no hay temor a valores de tipo 'Null')

Respecto a que no se precise introducir un 'enter' al final de la lectura .... Veras, es tan elementalmente sencillo como configurar el aparatejo (que traerá un hermoso manual de instrucciones) y generalmente acompañado de 'códigos de barra' que escaneados en vivo y directo configuran esos parámetros (añadir el 'enter automático' al final: suele ser uno de ellos).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Control acceso de personas mediante Access

Publicado por edudeprado (7 intervenciones) el 30/07/2016 16:25:16
Muchas gracias.

Como en estos momentos no dispongo de la pistola, he pedido que hicieran comprobaciones por mi y lee el código sin incluir los asteríscos (prueba sobre block de notas). Tras cada lectura cambia de línea.

Con el INTRO me refería a que tras escanear el código se creara un registro nuevo, pero eso ya es cosa de código.

Y tras leer mucho y recibir ayuda de de otros compañeros, como bien comentas la mejor opción parece DCOUNT. Ahora vamos a ver si lo hago funcionar todo como quiero.
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
sin imagen de perfil

Control acceso de personas mediante Access

Publicado por Enrique Heliodoro (1664 intervenciones) el 30/07/2016 17:27:42
Vale, parece que perteneces al grupo de que sin conocer cuantas patas tienen las vacas, les fabricas un establo ....

En base a lo que (parece ser que ahora conoces), el validar esos datos te costara un poco mas si no se modifica el diseño ....

Un consejo para un próximo futuro, antes de hacer algo, infórmate de como funciona leyendo libros, en internet o con el 'aparatejo en la mano' asi evitaras perder el tiempo en diseños erróneos por carecer de lo mas básico.
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
sin imagen de perfil

Control acceso de personas mediante Access

Publicado por edudeprado (7 intervenciones) el 30/07/2016 17:49:32
La verdad es que estoy leyendo mas de lo que parece, aunque al ser la primera vez que se me da un problema así, y debido a mis aún limitados conocimientos, me está costando mas de lo que esperaba, además de complicarme la vida. Además, en este caso concreto, me falta tiempo. Ésto para mi es un hobby, no me dedico a ello, y en este caso estoy haciendo un favor.

El diseño es lo de menos, solo era una idea y es prescindible sin problemas, por eso lo de pedir ayuda y consejo. Y lo de no tener el aparatejo es por encontrarme de viaje, no se puede ir con todo a todas partes.

Gracias de nuevo.
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