Access - Enrique,Chea,2pl,Juan Amoros,SALVA,mi menda,etc

   
Vista:

Enrique,Chea,2pl,Juan Amoros,SALVA,mi menda,etc

Publicado por carlos (60 intervenciones) el 05/11/2007 20:10:08
Un saludo a todos, por favor ayudenme con esto, que opinan UDS,

tengo una duda a ver si me la pueden aclarar, quisiera saber si al ejecutarse una base de datos en access el archivo que se genera automaticamente, es totalmente independiente a otro nuevo si vuelvo abrir la base de datos desde otra ventana, o estacion de trabajo, esto lo pregunto, porque intento controlar a los usuarios, no ya quien ha entrado, sino quien realiza cambios, y lo quiero gestionar desde una variable Public, donde le asigno el valor del usuario desde un formulario inicio, eso lo se hacer sin problemas, ahora me surge la duda, si cuando yo capture la variable Publica de un usuario X, que se ha conectado en un terminal A, y actualiza datos en la BBDD, y un instante seguido se conecta por un terminal B un usuario Y , access los gestiona como dos archivos independientes aun cuando se este modificando sobre la misma BBDD
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

RE:Enrique,Chea,2pl,Juan Amoros,SALVA,mi menda,etc

Publicado por mi menda (1111 intervenciones) el 06/11/2007 00:55:49
Hola Carlos:
Primero te comento que yo nunca he trabajado en red,(para mí Access es un hobby). Pero te comento como yo lo haria.

Crearia una Tabla nueva con los campos:
NombreTabla--------Para poner el nombre de la tabla sobre la que se Actua
IdRegistro-------------Clave Principal del registro sobre el que se Actua
Usuario-----------------Usuario que modifica el registro
FechaYHora-----------Fecha y hora de la modificación
Acción------------------Modificado,eliminado,Creado

Cada vez que un usuario cree,edite o elimine un registro,se ejecuatria una consulta de datos anexado o SQL, para crear un registro en la Tabla de seguimiento.
Los demás fenomenos a los que has nombrado, que tienen esperiencia en BBDD compartidas, seguro que te darán otras opciones.

Un Saludo
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

RE:Enrique,Chea,2pl,Juan Amoros,SALVA,mi menda,etc

Publicado por Enrique (1299 intervenciones) el 06/11/2007 15:57:03
Hola Carlos:
Esta última frase de tu mensaje:

...access los gestiona como dos archivos independientes aun cuando se este modificando sobre la misma BBDD.

¿ es una pregunta o una afirmación ? , supongo que una pregunta porque si es una afirmación, estás equivocado. Al ejecutar una mdb, ya sea en Local o en Red, solo se abre un único archivo de bloqueos ldb en la misma carpeta donde esté la base de datos, aunque entren diversos usuarios a la misma mdb desde distintos puestos de la Red. Este archivo mientras está abierto, almacena el nombre del Pc en Red y el nombre de usuario de Access (que casi siempre será "Admin"), permanece activo mientras haya al menos un usuario y se elimina cuando no queda nadie en la mdb, por lo que de poco o nada te va a servir para tus propósitos, caso de que hubiera forma de "meterle mano".

Para controlar las acciones de los usuarios, puedes utilizar o bien la seguridad de usuarios y grupos de Access (es complicada hasta que se le pilla el paso) o un sistema propio, por ejemplo como el que te ha indicado mi menda. Te recomiendo mejor esto último donde se pueden conseguir muy buenos resultados, pero hay que entender de programación en VBA.

Un saludo
Enrique
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

hola Enrique

Publicado por carlos (60 intervenciones) el 07/11/2007 10:51:32
Gracias Enrique por tu respuesta

en realidad era una pregunta la que formulaba sobre el archivo de Access, lo que se me olvido poner el " ? ", como me explica mi menda, segun puedo comprender, a la bbdd solo podra acceder un persona en el momento y asi si puedo gestionar quien ha modificado la bbdd porque podre mantener durante todo el tiempo en una variable el usuario que la esta usando, la bbdd que he diseñado la quiero poner en red, eso se como hacerlo gracias al foro, pero tengo diseñado el tratamiento de usuarios y contraseñas, no el que me brinda access, sino que lo gestiono directamente yo mismo, en una tabla donde tengo a los usuarios y contraseñas, todo esto por codigo, tambien gracias a este foro, y a los que exponen sus ayudas, ahora, si lo hago asi como te he explicado, como puedo entonces, si se puede hacer, controlar a los usuarios que han entrado??, me explico, en mi bbdd seran a lo mucho 4 usuarios, se realizan unos partes, y yo lo que quiero es tener un historico de quien ha realizado ese parte,( el historico ya lo tengo, solo me falta agregarle quien ha hecho el parte, que usuario), como veras si un usuario entra por un terminal y abre la BBDD, y realiza cambios, pero justo cuando se este usando la bbdd entra otro y realiza cambios, si access abre solo un archivo, como entonces podre hacer que durante toda la sesion de un usuario se me mantenga en una variable el valor de ese usuario, nose si esto se puede hacer en access o no pero si el tiene la opcion de usuarios y contraseñas, debe tener obligatoriamente la posibilidad de poder gestionar a todos lo usuarios que realicen cambios, o me equivoco?, en fin tienes idea de como podre hacer esto, nose si se me he explicado bien de lo que quiero, un saludo y muchas gracias nuevamente.
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

RE:hola Enrique

Publicado por Enrique (1299 intervenciones) el 07/11/2007 20:01:25
Hola Carlos:
Son dos cuestiones distintas, aunque relacionadas, una cosa es controlar los usuarios que entran a la aplicación sin más, hagan o no cambios en los registros y otra cosa es controlar que usuarios de los que han entrado hacen cambios en determinados registros. Creo que debes hacer las dos cosas, pero lo tienes mal planteado porque lo estás haciendo de forma que todos los usuarios acceden a la misma aplicación puesta en una carpeta del servidor de Red, cuando lo correcto sería poner en la carpeta de Red una base de datos SOLO CON LAS TABLAS y cada usuario debe tener en su disco duro local una copia de dicha aplicación con tablas vinculadas a la base de tablas del Servidor. De esta forma todos los usuarios actuarán sobre las mismas tablas, pero desde su propia aplicación.
Una vez hecho esto, en el Formulario de Inicio (que siempre permanece abierto y que llamaremos FormDeInicio) pones un cuadro de texto (vamos a llamarlo txtUsuario, por ejemplo) y al cargar, como cada usuario tiene su propia aplicación, le asignas a ese cuadro el nombre de Usuario que ha entrado y ya tienes el Nombre de Usuario disponible desde cualquier parte sin necesidad de usar una Variable Global.
Ahora en las Tablas que generan los partes le añades, a tu criterio, uno o dos campos más que serían Usuario (campo tipo Texto) y FechaHora (campo tipo Fecha General) y haces que cada vez que un usuario genere o cambie un registro, en esos campos se grabe su nombre y la Fecha en que realizó el cambio o la creación. ¿ Como hacer esto ?, pués fácil, en el Procedimiento de Evento "Antes de actualizar" de cada Formulario pones:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Usuario = Form_FormDeIniciol.txtUsuario
FechaHora = Date + Time
End Sub

Estos dos campos NO es necesario que estén insertados en el Formulario porque como forman parte del origen del registro del formulario, el Evento los graba en la tabla.

Por último te las ingenias como quieras para extraer la información de los usuarios que han hecho cambios o han creado registros, bien con un Informe, Cuadro de Lista, Formulario Contínuo, etc. basados en las repectivas Tablas.

No creo que tengas dificultad si lo haces así (más o menos).
Saludos
Enrique
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

RE:hola Enrique

Publicado por carlos (60 intervenciones) el 07/11/2007 22:10:01
Hola Enrique

vale gracias, un poco complicado si que me suena pero lo intentare, soy autodidacta en access todo lo que se lo he aprendido aqui, de VB tengo un poco de conocimientos, me pondre manos a la obra y cuando lo terminesi es que lo termino, te contestare por aqui en el foro, un gran saludo.
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

RE:hola Enrique

Publicado por carlos (60 intervenciones) el 07/11/2007 22:22:04
por cierto disculpa, nuevamente, mi BBDD tiene una tabla donde guardo todos los datos, y una tabla donde guardo los usuarios y contraseñas, esta donde la puedo poner, y por ultimo como puedo hacer vincular las tablas que estan en los diferentes ordenadores, perdona por preguntar tanto, un saludo
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

RE:hola Enrique

Publicado por carlos (60 intervenciones) el 08/11/2007 12:11:58
Gracias Enrique por su ayuda, estuve buscando y encontre como se hace, es bueno buscar y romperse un poco la cabeza antes de preguntar, pero a veces tambien estamos un poco presionados con el tiempo, nuevamente muchas gracias por su ayuda, saludos.
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

gracias mi menda

Publicado por carlos (60 intervenciones) el 07/11/2007 10:29:45
Gracias mi menda

por tu respuesta, pero sino me equivoco, segun me explicas la base de datos solo la podra abrir una persona, y asi es facil gestionar quien entra o no porque solo sera una persona en el momento, el problema mio es que va a estar en red, un saludo, y muchas gracias nuevamente
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

RE:gracias mi menda

Publicado por Juan Amorós (218 intervenciones) el 09/11/2007 20:55:21
Hola Carlos:
Perdona la tardanza en contestar.
Lo que pides se puede hacer:

Mi menda y Enrique te han contestado PERFECTAMENTE.

1.- La BD residiendo en el SERVIDOR (por supuesto la COMPILADA .mde)
2.- Si ya tienes el sistema de fichero para "guardar" en registro cada vez que entre un usuario distinto: PERFECTO.
3.- Para saber que usuario que ha "entrado" en la BD hay un código muy sencillo que, si quieres, te lo envío.
4.- Con la tabla que mencionas y, para poder controlar TODAS las veces que un usuario entra en la BD (distintas horas) necesitarías tantos registros como veces "entre" a la BD, así como las veces que "acceda" a formularios o tablas diferentes.

Por supuesto las tablas pueden estar en SQL sin ningún tipo de problema (vinculadas a la BD) y con los "privilegios individuales" que a cada usuario le asignes: tabla<->usuario.
Tengo varias BD's en red con tablas en SQL 2000 Server.
Te ruego perdones, de nuevo, el retraso en contestar (estaba ausente).

Saludos

Juan Amorós
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