Validación de Entrada

Tengo una Base de Datos de Access 2003 conectada en una Red de Área Local.
Pc1: Servidor.mdb
PC2: Aplicacion1.mdb
PC3: Aplicacion2.mdb
PC4: Aplicacion3.mdb
La Base servidor.mdb tiene las tablas vinculadas a las tres PC.
Para entrar a cada base Aplicación aparece un form de entrada con dos campos:
Cajero: xxxxxx
Password: xxxxxx
Estos campos provienen de la tabla Cajero. El valor de Cajero se guarda en una
variable publica de tipo integer, es decir guarda el Código del Cajero.
Cuando realizo una Factura en el form de Facturación dicho valor se almacena
en el campo Cajero.
Si los campos son válidos se entra el formulario de Facturación, descrito anteriormente.
Tengo una tabla llamada Terminal con dos campos:
NoTerminal NombreTerminal
1 Caja 1
2 Caja 2
3 Caja 3
Elabore un form con un cuadro combinado conteniendo NoTerminal y NombreTerminal
La Pregunta es la siguiente:
Supongamos que del cuadro combinado selecciono Terminal 1 en PC1
Ahora, en PC2 intento seleccionar Terminal 1, que ya fue seleccionada en Pc1
¿Deseo validar que cuando una terminal ya fue seleccionada no pueda ser seleccionada
en otra PC?
La respuesta me es urgente.

2 respuestas

Respuesta
1
Listo te entiendo, la idea de que te dige de eliminar el registro, no era de la tabla mencionada SINO CREAR OTRA TABLA donde se llame usuariosconectados o terminales aabiertas no se al seleccionar la terminal QUEDE REGISTRADA AQUÍ, ES DECIR cuando seleccionas la terminal en factura, va esta tabla e inserta el numero de tarminal, es más cuando abras sesión de esa bd, de una vez la puedes insertar, y cuando cierres la elimine, así siempre se sabrá que terminales están "abiertas" o utilizadas, ahhh lógicamente esta tabla estará en la de servidor y vinculada en las aplicaciones... bueno como te decía esta tablas que crearas tendrá la información de las terminales abiertas, así cuando te conectas o escoges una terminal, vas a consultar esta tabla para saber si ya se encuentra, si las encuentras entonces ya alguien conectado, y no lo permitirá... por eso al salir o cerrar se debe eliminar este registro, ya que esta tabla se comportara como una termporal, según los usuarios o terminales conectados...
Es más puedes cruzar esta tabla y la terminales, para mostrar en el combo SOLO LOS QUE TODAVÍA NO SE HAN CONECTADO... así no sçnecesitarias validar...
Att:telemaco
La Tabla Terminal de hecho esta en la base Servidor.mdb y vinculada con las 3 aplicaciones.
Aclaración: La Tabla Terminal esta relacionada con la Tabla Factura, es decir en el form de
Factuacion hay un cuadro combinado llamado Term, en donde se selecciona la terminal que realiza
la venta.
Ver relación:
Tabla Term: NoTerminal + NombreTerminal
Tabla Factura: NoFactura + NoTeminal + Fecha + Hora + CodCliente .....
De una Terminal se pueden realizar muchas facturas
Por lo tanto, no puedo eliminar el registro de cada terminal, porque sino perdería
la información de venta de cada terminal.
La idea es amarrar una terminal a cada PC.
Supongamos que al comenzar el día la facturación se realizar así: PC1 con Term1 y Pc2 con Term2
Pero después decido encender PC3 y selecciono Term1, que no me permita entrar y si selecciono Term2,
tampoco me deje entrar; solamente hasta que seleccione Term3.
Espero me hayas entendido mejor y de antemano agradezco mucho tu ayuda.
Saludos desde Nicaragua
A ver, para que funcione (aunque así lo tienes) Esta tabla (Terminal) debe estar en Servidor1.Mdb, y vinculada en todas las demás.
Ahora la idea seria que cuando selecciones, la terminal, en esta tabla se agregue, y cuando cierres la bd, o un formulario ELIMINE ESTE REGISTRO (para que lo libere, y poder seleccionarlo en otra ocasión), en pocas palabras esta tabla contendrá los usuarios "conectados" por así decirlo a la bd.
Aunque podemos amarrar a cada usuario (de cada pc, a una terminal y su caja), para que apenas ingrese su cajero y passsword, de una vez mandar este dato a la tabla, y no se necesite seleccionarlo.
Bueno bien, imaginemos que estamos en el formulario y seleccionaste la terminal, entonces necesitamos este código en el evento exit (al salir) del combo (que llamare CmbTerminal):
*************************
Private Sub CmbTerminal_Exit(Cancel as Integer)
BusTermi = Dcount("NoTerminal","TERMINAL","NoTerminal = " & CmbTerminal & "")
If BusTermi > 0 then
Msgbox "La terminal ha sido seleccionada",VbInformation,"Error"
BusTermi = Null
Cancel = true
end if
End Sub
**********************
La función DCount me cuanta cuantos registros existen, si se cumple la condición...
Att:telemaco
Hola: Saludes
La idea anterior me sirvió de mucho ya que logre solucionar el problema. TE lo explico:
En la tabla Term agregue un campo llamado Activa.
Al cargar la BD se inicia con el form Term. Si selecciono Term1 el campo Activa se activa en Si. En caso la PC2 decida seleccionar Term1 le mandara un mensaje diciendo que la Term1 esta en uso. Cuando cierro la BD en Pc1 que tiene Term1, desactivo con una RunSQL el campo Activa en No. Y así todo queda resuelto.
Gracias por su aporte.
Dios en bendiga en gran manera!
Desde Nicaragua
Respuesta
1
La forma más sencilla que tienes de hacerlo es crearte un tercer campo en la tabla terminal llamado por ejemplo "activa" de tipo si/no.
Cuando un usuario selección dicha terminal, lo pones a si y cuando cierre la sesión a no.
Por lo tanto, lo único que tendrás que hacer es mostrar al usuario a la hora de seleccionar una terminal solo aquellas que NO estén activas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas