Access - Para Enrique

   
Vista:

Para Enrique

Publicado por Vicente (20 intervenciones) el 12/11/2007 15:06:19
Hola Enrique.
He podido leer en este foro como explicabas a un compañero el poder proteger una base de datos evitando el que cualquier "cotilla" intruso pueda acceder a la ventana de la base de datos pulsando shift. He realizado todos los pasos que contestabas en el mensaje a Alfonso, pero no me funciona, es decir, he copiado el evento que incluiste en un modulo aparte, en el formulario de inicio en el evento Form_load, le llamo con un Call ap_DisableShift, he desmarcado las casillas explicadas y activado la libreria de Microsoft DAO, pero sigue sin funcionarme. No se si mefalta algun paso mas, he realizado algo mal, no lo se. Si puedieras echarme una mano te lo agradeceria. Tambien comentarte si se puede activar la ventana de la base de datos desde algun codigo, ya que si desabilito la pulsacion de la tecla shift necesitaria poder activarlo por codigo y mediante una formulario que tengo preparado de parametros generales al cual solo pueden acceder los administradores de la base de datos.
Muchas gracias de antemano por tu ayuda.

Un saludo
Vicente
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:Para Enrique

Publicado por Enrique (1299 intervenciones) el 12/11/2007 18:04:51
Hola Vicente:

Sigue el Mensaje iniciado por Elio de nombre "Función quita Shift" que empieza en la fecha 07/11/2007. Está en la página 2 actual de este Foro y continúa en la página 3, ya que a Elio le pasaba igual que a ti y al final consiguió resolverlo después de varias explicaciones que le dí, seguro que algo parecido que está pasando y si tampoco lo consigues (que seguro que sí). vuelve a preguntarme, pero tendrás que dar más detalles de los errores que te salen.

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

RE:Para Enrique

Publicado por Vicente (20 intervenciones) el 13/11/2007 17:05:03
Hola Enrique:

Seguí tu consejo y estudie uno a uno los mensajes iniciados por el compañero Elio y efectivamente ya me funciona pero tengo ahora otro problema. Te cuento.
En las propiedades de Inicio tengo puesto que abra un formulario de acceso para todo el personal que vaya a utilizar la bbdd y evidentemente este dado de alta. Para que un usuario este dado de alta tengo una tabla creada con estos campos: CodigoUsuario, Nombre, Apellidos, Usuario, Contraseña, Empresa y Nivel ( este campo es lo que determina el nivel de acceso a la bbdd, solo tengo 3 tipos de nivel dados de alta, administrador, grabador y consulta) y el formulario de acceso se basa en introducir usuario y contraseña de esta comentada tabla. Para ser mas explicitos la tabla se llama "Usuarios" y el formulario "Acceso".
Pues bien cuando ejecutamos la bbdd y efectivamente sale el formulario para introducir usuario y contraseña este no me deja validar ninguno puesto que no carga la tabla para que pueda verificar dichos usuarios (o eso es lo que creo yo).
Te dejo el codigo que tengo para validar usuarios. Esta en el evento de boton cmdAceptar, si pudieras echarme una mano yo creo que ya tendria dicho acceso consolidado.

Private Sub cmdAceptar_Click()
On Error GoTo Err_cmdAceptar_Click
Set rst = Me.RecordsetClone

rst.FindFirst "Contraseña = '" & Me.Contraseña & "'" ' verifico la existencia del código introducido

If Me.txtClave = Me.Contraseña Then
If Not rst.NoMatch Then
vUsuario = Me.CodigoUsuario
vNivel = Me.Nivel
vNombreUsuario = Me.Nombre
Form_Principal.SetFocus
stDocName = "CerrarFormularioAcceso"
DoCmd.RunMacro stDocName
End If
Else
MsgBox "Nombre de Usuario y/o Contraseña no coincide, por favor verifique", vbInformation, "Acceso"
Me.Usuario = ""
Me.txtClave = ""
Usuario.SetFocus
End If

Contraseña_BeforeUpdate_Salir:
CierraRecordsetDAO rst ' cierro el recordset
On Error GoTo 0
Exit Sub

Exit_cmdAceptar_Click:
Exit Sub

Err_cmdAceptar_Click:
MsgBox Err.Description
Resume Exit_cmdAceptar_Click
End Sub

Muchas gracias por tu amabilidad

Un saludo
Vicente
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:Para Enrique

Publicado por Enrique (1299 intervenciones) el 13/11/2007 19:21:03
Hola Vicente:
He entendido perfectamente tu planteamiento, pero este código que pones no está correcto, no me extraña que no consigas conectar con la Tabla "Usuarios", además se debe comprobar que la Contraseña tecleada se corresponda con su Usuario, porque si solo compruebas que exista el Usuario y que exista la Contraseña, cualquier Usuario podría entrar con la Contraseña de otro siempre que ambos existan en la Tabla. En este ejemplo que puedes descargar en el siguiente enlace Web podrás verlo; he procurado adaptarme lo máximo posible a tus indicaciones.

http://es.geocities.com/ensolva/Descargas/Varios/UserPassword.zip

El ejemplo tiene ya incorporada la Función " Anula Shift " pero no está todavía activada como podrás ver en el Evento Form_Load del Formulario Principal (PanelControl), le quitas la comilla a Call ap_DisableShift, cierras la mdb y la vuelves a abrir al menos una vez SIN pulsar la tecla Shift para que se active.

Como verás, una vez tecleado el Usuario y Contraseña correctos, se cierra el Form de Acceso y los datos requeridos del mismo se guardan en tres campos "Independientes" del Formnulario Principal y como se supone que ese Formulario permenece siempre abierto y los demás objetos se abren sobre él, tendrás esos datos disponibles para usarlos desde cualquier sitio. La forma de llamarlos es:

NombreCampo o NombreVariable = Form_PanelControl.CodigoUsuario
NombreCampo o NombreVariable = Form_PanelControl.Nombre
NombreCampo o NombreVariable = Form_PanelControl.Nivel

Espero que te sirva. 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:Para Enrique

Publicado por Vicente (20 intervenciones) el 15/11/2007 16:40:55
Hola Enrique

Despues de estudiar detenidamente tu correo con el codigo incorporado, tus explicaciones y tambien la del mensaje de eliminacion del shift, te puedo decir que por fin he conseguido lo que yo tanto queria, tener una bbdd que cuando cualquier usuario lo abra tenga que introducir un usuario y una contraseña para poder acceder a ella y poder trabajar solamente en modo usuario sin poder abrirla pulsando el shift, es decir, lo que habitualmente decimos los informaticos "capada" totalmente ( o por lo menos lo digo yo asi).

Muchas gracias por tu inestimable ayuda, la verdad es que estoy con el compañero elio, sin vosotros hariamos las bbdd bastantes vulnerables al usuario.

Un saludo.

Vicente
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