Secciones.

lunes, 27 de junio de 2011

Como generar diferentes usuarios en nuestra base de datos en Access.

Muchas veces, cuando realizamos bases de datos en Access y la compartimos en red no surge la necesidad de hacer diferentes usuarios.

Aquí mostraremos una forma para poder realizar esta aplicación en una base de datos realizada por nosotros mismos. Este es el método que yo he utilizado en mi propia base de datos.

Para comenzar crearemos todo aquello que utilizaremos para este proceso.

Tablas:
Crearemos una tabla con el nombre: "Usuarios y password".

A continuación nombraremos a las columnas una se llamará "Usuario" y la otra "Password". Con respecto a la columna de "Id", la misma puede estar o no. Eso lo dejo a gusto de uno mismo.


Consultas:
Crearemos una consulta a la cual le pondremos los datos de la tabla antes mencionada. A la misma la nombraremos: "1- Consulta usuarios".

En el renglón donde dice "Criterios", copiamos el siguiente texto: [Formularios]![Password]![Usuario].
 

Formularios:
A continuación crearemos los formularios: "Password" y "1- Consulta usuarios".

Password: para este crearemos un formulario y colocaremos dos cajas de texto independiente. A una la llamaremos "Usuario" y a la otra "Password". Agregaremos un botón el cual se llame "Aceptar", para ello crearemos el botón pero cuando nos habrá el "Asistente para botones de comando" haremos click en "Cancelar". A la caja de texto "Usuario" la convertiremos en "Cuadro combinado". Esto se logra haciendo click derecho sobre la caja de texto, vamos a "Cambiar a" y ahí elegimos "Cuadro combinado".

1- Consulta usuarios: para hacer este formulario lo que vamos hacer es lo siguiente:

Vamos a nuevo, elegimos "Asistente para formulario" y en la lista inferior elegimos la consulta creada con anterioridad. Elegimos los dos datos que aparecen y seleccionamos "Terminar". Nos pedirá introducir datos, ahí le damos "Aceptar" y cerramos el formulario.

Macros:
Crearemos una macro tal cual indica la imagen de mas abajo:

Respetaremos los nombres tal cual aparecen en la imagen. A la macro la salvaremos con el nombre de "Apertura de pantallas".

A partir de acá empezaremos a relacionar todo lo antes creado.
Para comenzar iremos al formulario "Password" y haremos click derecho sobre la caja de texto "Usuarios".

Una vez ahí adentro entraremos en la solapa "Eventos" y luego iremos a "Después de actualizar" y colocaremos la macro creada con anterioridad.


Luego iremos a la solapa "Todas", vamos al renglón "Origen de fila" y hacemos click en el casillero de los tres puntos.

Una vez aquí seleccionamos la tabla "Usuarios y password" y elegimos la "Usuario".

Luego cerramos y cuando nos pregunta de guardar le decimos que sí.

Ahora vamos al botón de aceptar, hacemos click derecho y entramos en "Generar evento", elegimos "Generador de códigos". A continuación copiamos el siguiente texto:

Private Sub Aceptar_Click()
If IsNull([Usuario]) Then
MsgBox "Debe introducir el usuario.", vbCritical, "Alerta"
ElseIf Me![Usuario] = Forms![1- Consulta usuarios]![Usuario] And Me![Password] = Forms![1- Consulta usuarios]![Password] Then
DoCmd.OpenForm "NOMBRE DEL FORMULARIO", acNormal
DoCmd.Close acForm, "Password"
ElseIf IsNull([Password]) Then
MsgBox "Debe de introducir el password.", vbCritical, "Alerta"
ElseIf Me![Password] <> Forms![1- Consulta usuarios]![Password] Then
MsgBox "Passwor incorrecto", vbCritical, "Alerta"
End If
End Sub

Donde dice "Nombre del formulario" pondremos el formulario que queremos abrir.

El formulario con nombre "1- Consulta usuarios" debe de aparecer oculto y se debe de cerrar automáticamente cuando sé habré el formulario que nosotros elegimos proteger.

A continuación dejo el ejemplo de lo antes mencionado para que puedan ver con exactitud lo que sé estuvo explicando.

Es fundamental que los nombres sean respetados para que no arroje ningún error. Una vez hecho esto los nombres pueden ser cambiados, pero recuerden modificar todas las apariciones.

Espero que les sea de ayuda.

Ejemplo:

https://docs.google.com/leaf?id=0B-AU-E9GL2rRNjIyN2NmOTYtMGZiOC00YTIzLTk0ZmMtZGZmMzNmNGNiN2Q5&hl=es