Foros del Web » Soporte técnico » Ofimática »

Access: ¿Cómo puedo crear in ID al iniciar Access?

Estas en el tema de Access: ¿Cómo puedo crear in ID al iniciar Access? en el foro de Ofimática en Foros del Web. Hola amigos, espero que esten bien. Les cuento lo que estoy barajando en la cabeza,,, al abrir un access, que me salga un formulario (tambien ...
  #1 (permalink)  
Antiguo 13/08/2008, 11:16
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Access: ¿Cómo puedo crear in ID al iniciar Access?

Hola amigos, espero que esten bien.

Les cuento lo que estoy barajando en la cabeza,,,

al abrir un access, que me salga un formulario (tambien podría ser un imput box o msg box) que me pregunte que usuario va a utilizar dicha base.

En el mensaje saldría una lista desplegable con el nombre del usuario como...
usuario 1
usuario 2

dichos valores se podrían coger de una tabla previamente creada...

¿alguna idea o sugerencia por donde podría comenzar a desarrollar esto?

un saludete y gracias de antemano.
__________________

***Aprendiz de todo y maestro de nada***
  #2 (permalink)  
Antiguo 13/08/2008, 16:10
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Respuesta: Access: ¿Cómo puedo crear in ID al iniciar Access?

Pues en realidad, y con sinceridad, no lo veo "tan" complicado.

Veamos:

- Primero create una tabla (tblusuario), con 2 campos: Usuario y Clave)

- Segundo, create un formulario (FrmInicio), con 2 textbox (txtusuario y txtclave) ,y un boton (CmdAceptar). Al txtclave, en su propiedad "mascara de entrada" colocale "contraseña". Luego, en el modulo del formulario, algo asi:


Private Sub CmdAceptar_Click()

On Error GoTo errorusuario

Dim strvalorclave$

strvalorclave$ = DLookup("clave", "tblusuario", "Usuario=txtusuario")

If strvalorclave$ = Txtclave Then
DoCmd.OpenForm "FrmMenu", acNormal, "", "", , acNormal
strusuario$ = Txtusuario
DoCmd.Close acForm, "FrmInicio"
Exit Sub
End If

errorusuario:
MsgBox "Error de usuario y/o clave"
Txtusuario = "": Txtclave = ""

End Sub

Ojo algunas cosas:

* FrmMenu es el nombre del formulario que se abre si la clave y el usuario son correctos
* Yo uso textbox, pero, cuestion de que uses un combobox que "jale" los usuarios de la tabla respectiva
* PAra que tu frormulario (FrmInicio) salga apenas abras el respectivo archivo de access, pues, en HERRAMIENTAS - INICIO , colocalo como el de inicio (Obvio!!!)

Abraham
  #3 (permalink)  
Antiguo 15/08/2008, 01:53
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Respuesta: Access: ¿Cómo puedo crear in ID al iniciar Access?

hola abraham, cuanto tiempo, nuestros caminos se vuelven a encontra, je je
en primer lugar, gracias por la respuesta....es muy instructiva, no sabía hacer eso del logueo...

verás, es que no necesito loguearme en access, tan solo necesitaría saber quien entra en la bd para capturar dicho usuario, había pensado en utilizar algo así..

Function Inicio()

On Error GoTo Inicio_Error

ID = CurrentUser()
MsgBox ("Bienvenido : " & ID)

Inicio_Exit:
Exit Function
Inicio_Error:
MsgBox Err.Number & vbCrLf & Err.Description, vbCritical
Resume Inicio_Exit
End Function

lo he metido en una macro autoexec y me identifca al entrar siempre como ADMIN. y lo que quisiera es que me identificara según el usuario o nombre que se escoja...

había pensado en lo siguiente.

crear tabla con nombres de usuario, (ejemplo. Sara, Isaac) OK
crear formulario de dicha tabla OK
formulario aparece al arrancar access OK
Del combobox se elige un nombre y se pulsa el boton aceptar. OK
En ese momento el nombre del combo lo pasamos a una variable GLOBAL (esto no sé hacerlo)
Con esa variable global (ID) la quisiera utilizar para realizar filtros en las consultas (esto tampo sé hacerlo)

esta es básicamente mi duda.. ya ves que de momento no preciso logueo en la base de datos, tan solo averiguar o CAPTURAR quien entra (tengo buena fe en la gente que usa la bd, je je) y según quien se escoja de usuario en el formulario pasarlo a la variable global y usarlo en consultas..

ya me dices..
un saludete desde el otro lado del charco.
nos vemos
__________________

***Aprendiz de todo y maestro de nada***
  #4 (permalink)  
Antiguo 15/08/2008, 15:15
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Respuesta: Access: ¿Cómo puedo crear in ID al iniciar Access?

Pues, primero en un modulo "normal" hay que declarar la variable como publica:

Public miusuario$

Luego, ya, por ejemplo, en tu modulos del formulario inicial, le das un valor a la variable:

miusuario$ = Combousuarios

Y como es publica, se mantendra para todo momento en toda la aplicacion.. .a menos que tu mismo la "descargues" :)

Abraham
  #5 (permalink)  
Antiguo 15/08/2008, 15:47
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Respuesta: Access: ¿Cómo puedo crear in ID al iniciar Access?

gracias de nuevo Abrahan, estudiaré el tema pues no tengo ni idea,,,

ya te digo
un saludete.
__________________

***Aprendiz de todo y maestro de nada***
  #6 (permalink)  
Antiguo 17/08/2008, 05:38
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Respuesta: Access: ¿Cómo puedo crear in ID al iniciar Access?

hola de nuevo,,, voy pasito a pasito.....

cree un módulo estandar (llamado mimodulo) con esto..

Option Compare Database

Public USUARIO As String

luego, en el formulario,,,, en el COMBO, en origen del control he puesto esto para llamar a la variable pública....

mimodulo.USUARIO

pero luego en el cuadro del combo me sale ¿Nombre?....
por lo que he tenido que borrar esto último y dejarlo como estaba...

he seguido probando y le dado un valor al combo de este estilo...

Private Sub COMBO_BeforeUpdate(Cancel As Integer)
COMBO = USUARIO
rem compruebo si coge el valor del combo y lo saca en pantalla, y no lo hace,,,
MsgBox USUARIO
End Sub

pero hasta aquí llego,, ¿voy bien?

ya me dices y un saludete de nuevo..
__________________

***Aprendiz de todo y maestro de nada***

Última edición por epa2; 17/08/2008 a las 05:44
  #7 (permalink)  
Antiguo 18/08/2008, 02:10
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Access: ¿Cómo puedo crear in ID al iniciar Access?

En este hilo tienes algun ejemplo que te puede ayudar:

un saludo
  #8 (permalink)  
Antiguo 23/08/2008, 15:06
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Respuesta: Access: ¿Cómo puedo crear in ID al iniciar Access?

Hola de nuevo, he estado este tiempo trasteando codigo, la verdad es que tengo dificultad, siempre me peleé con los números y sobre todo con la lógica,, ando cortillo, je je...

me ha servido de mucha utilidad los ejemplos que citas.... aunque en un principio no tenía pensado poner un panel de control de administrador en la entrada con contraseña y usuarios, al final me he inclinado por ello.

Ya lo implanté en mi pequeña base de datos,con el siguiente código....

Option Compare Database
Dim QuienAccede As Integer

Private Sub CmdAcceder_Click()
On Error GoTo Err_CmdAcceder_Click

Dim stDocName As String
Dim stLinkCriteria As String
Dim auxContraseña As String


'Comprobamos que hay datos en las cajas d etexto
If Nz(Me.TxtUsuario.Value, "") = "" Then
MsgBox "Seleccione un nombre de usuario de la lista para acceder",
vbInformation, "ATENCION"
Me.TxtUsuario.SetFocus
ElseIf Nz(Me.TxtContraseña.Value, "") = "" Then
MsgBox "Introduzca la contraseña del usuario seleccionado",
vbInformation, "ATENCION"
Me.TxtContraseña.SetFocus
Else
If Not IsNull(DLookup("Contraseña", "usuarios", "Idusuario=" &
Me![TxtUsuario] & " ")) Then
auxContraseña = DLookup("Contraseña", "usuarios", "Idusuario="
& Me![TxtUsuario] & " ")



End If

If auxContraseña <> Me.TxtContraseña.Value Then
MsgBox "La contraseña introducida es incorrecta" & vbCrLf &
"Por favor, introduzca otra", vbExclamation, _
"INTRODUCCIÓN INCORRECTA"
Me.TxtContraseña.Value = ""
Me.TxtContraseña.SetFocus
Else
'**entrada como usuario
stDocName = "INDEX"
'stLinkCriteria = "[Idusuario]=" & Me![TxtUsuario] & ""
'MsgBox stLinkCriteria & "Puede entrar, ahora habria
que abrir tu formulario"

DoCmd.OpenForm stDocName, , , stLinkCriteria 'Abrimos
el formulario correspondiente
DoCmd.Close acForm, Me.Name 'y cerramos el de acceso
End If
End If

=============
Hasta aquí bien,,, pero aún sigo con la duda inicial, y es que me gustaría capturar el NOMBRE del que entray meterlo en una variable pública para ir jugando con ese valor durante toda la base de datos (llamar a la variable pública en consultas, en informes, etc)

La estructura de la tabla desde la que se chequea el acceso es la siguiente...


He visto que en el código se chequea la contraseña y se mete el valor en la
variable auxContraseña en esta linea...

If Not IsNull(DLookup("Contraseña", "usuarios", "Idusuario=" & Me![TxtUsuario]
& " ")) Then
auxContraseña = DLookup("Contraseña", "usuarios", "Idusuario="
& Me![TxtUsuario] & " ")

la duda es la siguiente...
¿Cómo podría tambien atrapar el nombre del usuario en la tabla y asignarla a
la variable pública que está en el modulo?
Public users As String

Gracias por la ayuda que me estais prestando.

un saludo.
__________________

***Aprendiz de todo y maestro de nada***
  #9 (permalink)  
Antiguo 23/08/2008, 15:08
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Respuesta: Access: ¿Cómo puedo crear in ID al iniciar Access?

otra preguntilla que me surgue ahora,, ¿que es esto del karma del usuario??? porque me dice que tengo 14, ¿eso es bueno o malo??
__________________

***Aprendiz de todo y maestro de nada***
  #10 (permalink)  
Antiguo 24/08/2008, 18:34
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Access: ¿Cómo puedo crear in ID al iniciar Access?

Puedes usar tambien dllokup `para obtener el nombre, asi:

users = DLookup("Usuario", "usuarios", "Idusuario="
& Me![TxtUsuario] & " ")

Lo del Karma, yo creo que es bueno, pero no estpy seguro. Creo recordar que el segundo episodio de 120" hablaba de ello. Aqui lo tienes.

UN saludo
  #11 (permalink)  
Antiguo 25/08/2008, 07:49
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Respuesta: Access: ¿Cómo puedo crear in ID al iniciar Access?

ahh, ahora me enteré del karma este... bueno, taribo, te puse un karma, je je

por cierto,probaré como me dices,, a ver que tal,,

ya te digo
un saludete.
__________________

***Aprendiz de todo y maestro de nada***
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:10.