-
hola un placer.. tengo el siguiente problema necesito validar el acceso
de un usuario comun y el administrador en un formulario de acceso... El
problema es que solo puedo hacer que uno de los dos entre... para hacer que el sistema me reconosca si es usuario y adm me tuve que crear dos botones de acceso y esa no es la idea aqui les dejo el codigo para que tengan una idea
//////////////////////////////////////////////////////////////////////////////////////////////////////////
Private Sub Command1_Click()
If Text1.Text = "" Then MsgBox ("por favor ingrese el usuario"), vbInformation: Text1.SetFocus: Exit Sub
If Text2.Text = "" Then MsgBox ("debe ingresar la contraseña"), vbInformation: Text2.SetFocus: Exit Sub
With rsadm
.Find "login='" & Trim(Text1.Text) & "'"
If .EOF Then MsgBox ("el usuario no existe"), vbInformation, "Aviso":
Text1.Text = "": Text2.Text = "": Text1.SetFocus: Exit Sub
If !pass = Text2.Text Then
Form4.Hide
Load Form1
Form1.Show
Else
MsgBox ("la clave es incorrecta"), vbInformation, "Aviso": Text2.Text = "": Text1.Text = "": Text2.SetFocus: Exit Sub
Exit Sub
End If
End With
End Sub
/////////////////////////////////////////////////////////////////////////////////////////////////////////
el detalle es que hay solo puede acceder el adm si cambio los campos y
el rs por el de usuario este ingresa al sistema .. he tratado de poner
un if pero me da error en el with ademas de que la unica forma de poder
hacer que entre el que desee es poner dos botones de acceso uno de adm
y el otro de usuario aqui les dejo el codigo completo del form
///////////////////////////////////////////////////////////////////////////////////////////////////////
Private Sub Command1_Click()
If Text1.Text = "" Then MsgBox ("por favor ingrese el usuario"), vbInformation: Text1.SetFocus: Exit Sub
If Text2.Text = "" Then MsgBox ("debe ingresar la contraseña"), vbInformation: Text2.SetFocus: Exit Sub
With rsadm
.Find "login='" & Trim(Text1.Text) & "'"
If .EOF Then MsgBox ("el usuario no existe"), vbInformation, "Aviso":
Text1.Text = "": Text2.Text = "": Text1.SetFocus: Exit Sub
If !pass = Text2.Text Then
Form4.Hide
Load Form1
Form1.Show
Else
MsgBox ("la clave es incorrecta"), vbInformation, "Aviso": Text2.Text = "": Text1.Text = "": Text2.SetFocus: Exit Sub
Exit Sub
End If
End With
End Sub
///////////////////////////////////aqui esta el boton de acceso de usuario////////////////
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Command3_Click()
If Text1.Text = "" Then MsgBox ("por favor ingrese el usuario"), vbInformation: Text1.SetFocus: Exit Sub
If Text2.Text = "" Then MsgBox ("debe ingresar la contraseña"), vbInformation: Text2.SetFocus: Exit Sub
With rsusuario
.Find "nick='" & Trim(Text1.Text) & "'"
If
.EOF Then MsgBox ("el usuario no existe"), vbInformation, "Aviso":
Text1.Text = "": Text2.Text = "": Text1.SetFocus: Exit Sub
If !clave = Text2.Text Then
Form4.Hide
Load Form1
Form1.Show
Else
MsgBox ("la clave es incorrecta"), vbInformation, "Aviso": Text2.Text = "": Text1.Text = "": Text2.SetFocus: Exit Sub
Exit Sub
End If
End With
End Sub
/////////////////////////////////el formulario////////////////////////////////////////////////////
Private Sub Form_Load()
admin
erick
End Sub
///////////////////////////////////////////////////////////////////////////////////////////////////////
espero haber sido muy explicito soy nuevo en el foro y en la
programacion de vb6.0 este hasta los momentos es el unico problema que
tengo estare muy agradecido si me ayudan gracias y que pasen feliz dia
-
Se me ocurren 2 maneras de simplificar el asunto.
1. Usar la misma tabla para todos los usuarios,seanadministradores o no. Creo que debe ser lo más habitual, por lo menos es lo que yo hago.
2. Buscar primero en la tabla administradores; si no se encuentra coincidencia asumir que es un usuario y buscar en la tabla usuarios.
Saludos.
-
hola HAL9000 gracias por darme tu apollo.. resulta que en la primera alternativa que ofreces no se aplica en e mi caso porque si necesito que alla reconocimientos entre adm y un usuario... la segunda me parece viable y tiene logica pero me podrias decir como hacerlo.. soy nuevo en vb6.0 muchas gracias y disculpa la molestiahttp://www.canalvisualbasic.net/foro...s/smiley19.gif
-
Hola, te paso un idea de como lo podes hacer, hay muchisimas formas...te paso una muy facil para que pases por ahora...
me inmagino que debes tener una pantalla de altas de usuarios...cuando das de alta un usuario en un combo pones los tipos de usuario que queres que sea...usuario normal o administrador ...etc.....y cuando guardes el usuario guarda un identificador para cada uno...por ejemplo podes tener una tabla "tipos de usuarios" y podes guardar los identificadores...1 - Administrador 2 - usuario comun 3 - etc...y entonces te queda cada usuario con su tipo de usuario...
despues para el login...simplemente chequeas en la base si el usuario existe primero...si existe chequeas que sea 1...si es uno es administrador y sino no lo es y listo el pollo....y ahi le asignas los permisos sobre tu aplicación que quieras con alguna funcion...
saludos.
-
Pues sí, lo que te dice seba123neo es la primera opción que te puse, bastante mejor explicada.
Es decir, usas la misma tabla para todos con un campo que diferencie a los usuarios: TipoUsuario, Nivel... lo que mejor se adapte a lo que quieres hacer.
Yo uso un campo de tipo entero que se define a nivel de bit: 1 = Derecho de acceso, 2 = Derecho lectura, 4 = Derecho escritura... 128 = Administrador. En una aplicación sencilla te puede llegar con simplemente 1 = Administrador, 2 = Usuario Normal. Como te dice seba hay muchas maneras de hacerlo.
Si insistes en las tablas separadas como ya sabes buscar no debería haber problema, en plan: "BuscarAdministrador" Ifrsadm.Eof Then"BuscarUsuario"...
Saludos.