¿Tengo un login para acceder a introducir datos en access, puede que loa datos que contenga cada usuario se identfq en la base?

Quiero que en la base de datos al ingresar al usuario (tiene contraseñas) es el primer formulario, se coloque en automático nombre de el en la base de datos ( para que cada dato que el ingrese tenga su nombre)

3 respuestas

Respuesta
3

Puedes hacerlo de varias formas. Te pongo un ejemplo, pero hay más. Supongamos que tienes un formulario donde validas el usuario y la contraseña. Crea una tabla y llámala, por ejemplo, Registro, con los campos Usuario, Fecha y Hora. En el evento donde validas, puedes añadirle, si es correcto el acceso

docmd.setwarnings false

Docmd. Runsql"insert into registro(usuario, fecha, hora)values(nombredelcuadrodondeescribeselusuario, date(), Time())"

Luego, vamos a suponer que por medio de un formulario rellenas la tabla Clientes(dependiendo de como hagas el formulario) en el evento donde vayas a guardar el registro lo puedes poner como

DoCmd. RunSQL "insert into clientes(nombrecliente, pais, usuario)values(nombrecliente, pais,'" & DLast("usuario", "registro") & "')"

Con lo cual, en cada registro que guarde te añadirá al campo Usuario de la tabla Clientes el usuario que lo hizo.

Hola!! Si algo así es el caso, primero al abrir el archivo access me aparece un login que dice nombre del usuario y su password, hice para ello una tabla corresponde, luego de allí puedo tener acceso a el formulario 2 que es sobre componentes,linea,ítem o numero de parte, etc, ese formulario 2 arroja la base de datos principal que yo quiero pero no tiene el control de colocar quien introdujo ese dato porque lo tiene el formulario 1, son varios usuarios y me gustaría que hubiera mayor control de quien solicita dicho material

Respuesta
2

Yo te doy otra idea, alternativa a la que te propone Icue: crear una función pública que te devuelva el usuario que entró en la BD, y usarla como valor predeterminado en el campo del formulario.

Te explico cómo sería el proceso (es muy sencillo) con un ejemplo:

1º/ Supongamos que guardas los accesos en una tabla TAcceso, con al menos un campo Usuario, de tal forma que el último registro será siempre el del usuario activo.

2º/ En la tabla de datos (la que da origen a tu formulario 2), tienes un campo "usuario", donde pretendes poner el usuario que crea el registro. En el formulario 2, debes añadir también ese campo (mejor si lo pones oculto), y en sus propiedades -> Datos -> Valor predeterminado le pones:

=fncUsuario()

3º/ Creas un módulo en tu BD y en él pegas esta función:

Public Function fncUsuario() As String
     fncUsuario = Nz(DLast("Usuario", "TAcceso"), "")
End Function

La función lo único que hace es devolver  el último valor del campo Usuario en la tabla TAccesso

Si no tienes una tabla para registrar los accesos a tu BD, puedes usar otras técnicas como una variable pública que recoja el usuario al validar su acceso y luego que la función devuelva ese valor, o usar la técnica del "formulario chivato", y que la función coja ese valor.

¡Gracias!   tengo duda en el ultimo paso lo del modulo lo colocas en las propiedades del formulario? o de la tabla?

3º/ Creas un módulo en tu BD y en él pegas esta función:

Public Function fncUsuario() As String
     fncUsuario = Nz(DLast("Usuario", "TAcceso"), "")
End Function

o en el acceso del usuario?

La función la tienes que poner en un módulo independiente. En la cinta de opciones tienes un botón para crear módulos.

Luego la aplicas en un cuadro de texto de un formulario, como te indico en el paso 2.

Respuesta
1

Otra forma de hacerlo, por si te es útil.

En mi caso, una vez se ha identificado el usuario, cargo su identificación en el formulario principal de la aplicación (parte inferior izquierda del formulario)

Ahí guardo el Id del usuario (invisible) y su nombre (visible). Así, si alguien trabaja con una identificación que no es la suya es más fácil de detectar.

Este formulario lo hago visible o invisible según necesidades, pero nunca lo cierro

Cuando voy a grabar un registro en el que quiero caprurar los datos del usuario, hago referencia a este formulario Forms! Inicio! IdUsuario

Además en el formulario verifico que estos campos esten informados y si no lo están deshabilito los botones de comendo.

También me sirve para controlar a que funciones tiene el acceso el usuario ya que en la tabla de usuarios distingo entre distintos tipos de usuarios (Administrador, general, ...)

Para ello también cargo en el formulario esta característica (invisible) lo que me permite habilitar o no determinados botones de comando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas