verificar usuarios
Publicado por fenix (97 intervenciones) el 03/03/2009 22:12:05
Saludos a Tod@s.
Espero me puedan ayuar.
Mi problema consiste en que al ingresar un usuario y validarlo. Si los datos son correctos
no envia mensaje y continua normal la ejecucion (hace lo que espero). Pero si los datos
no son correctos envia un mensaje y continua la ejecucion como que si el
error no ocurrio y deja disponibles todos los registros. Lo que quiero es que filtre los registros por usuario y si los datos son incorrectos, que no permita cambiar de formulario.
Tengo una tabla RIGHTS.dbf donde estan las claves
Este es mi codigo. (nota este codigo lo compie de este foro)
Sub acceso
CurrentWindow.FindAll '------- Todos los Registros
CurrentView.Body.UsuarioActual.Text = CurrentView.Body.NomUsuario.Text
VU = CurrentView.Body.UsuarioActual.Text
VC = CurrentView.Body.PSW.Text
If VU = "" Or VC = "" Then
If VU = "" Then
boxType = MB_OK+ MB_ICONEXCLAMATION
Respuesta = Messagebox (" INTRODUZCA USUARIO " , boxType, "AVISO")
CurrentView.Body.NomUsuario.SetFocus
Exit Sub
Else
boxType = MB_OK+ MB_ICONEXCLAMATION
Respuesta = Messagebox (" INTRODUZCA CODIGO " , boxType, "AVISO")
CurrentView.Body.PSW.SetFocus
Exit Sub
End If
End If
'*--------------------------------------------------------------------------
'Encriptar
VClargo = Len(VC)
For I = 1 To VClargo
Select Case I
Case 1
a1=Mid(CurrentView.Body.PSW.Text,i,1)
b1 = Ucase(Chr(Asc(a1)))
b1 = Chr(Asc(b1)-25)
Case 2
a2=Mid(CurrentView.Body.PSW.Text,i,1)
b2 = Ucase(Chr(Asc(a2)))
b2 = Chr(Asc(b2)-25)
Case 3
a3=Mid(CurrentView.Body.PSW.Text,i,1)
b3 = Ucase(Chr(Asc(a3)))
b3 = Chr(Asc(b3)-25)
Case 4
a4=Mid(CurrentView.Body.PSW.Text,i,1)
b4 = Ucase(Chr(Asc(a4)))
b4 = Chr(Asc(b4)-25)
Case 5
a5=Mid(CurrentView.Body.PSW.Text,i,1)
b5 = Ucase(Chr(Asc(a5)))
b5 = Chr(Asc(b5)-25)
Case 6
a6=Mid(CurrentView.Body.PSW.Text,i,1)
b6 = Ucase(Chr(Asc(a6)))
b6 = Chr(Asc(b6)-25)
Case 7
a7=Mid(CurrentView.Body.PSW.Text,i,1)
b7 = Ucase(Chr(Asc(a7)))
b7 = Chr(Asc(b7)-25)
Case 8
a8=Mid(CurrentView.Body.PSW.Text,i,1)
b8 = Ucase(Chr(Asc(a8)))
b9 = Chr(Asc(b8)-25)
End Select
Next
VC= B1+B2+B3+B4+B5+B6+B7+B8
'*----------------------------------------------------------------------------
Dim fFind As New Find
fFind.And "RIGHTS.USUARIO", "=" & VU
fFind.And "RIGHTS.CLAVE", "=" & VC
'RunApproachMacro("Evaluador")
' Esta macro no se que hace por eso la anule
'-----------------------****************************-----------------AAAAQQQUUUIIII<<<<<< O J O AQUI
' Aqui tengo el problema
'******************
CurrentWindow.FindSort fFind '---Ahora cada usuario sólo verá sus registros
'******************
'Esta linea si no encuentra registros envia un mensaje y deja como cantidad
' de registros todos los registros de la tabla. Cuando los cuento con la siguiente
' linea logicamente NR es mayor que cero y mi rutina ya no funciona como la necesito.
NR = CurrentWindow.CountRecords(AprFoundRecords)
' Lo que necesito es que el usuario pueda reingresar los datos mientras sean incorrectos.
' Hay alguna forma de interceptar el mensaje o el estado de la busqueda si es falso
para mantener el control.
'-----------------------
If nr > 0 Then
' source.NomUsuario.Visible = True
Set currentwindow.activeview = currentdocument.ProcedimientoA
CurrentWindow.Browse
Else
source.NomUsuario.Visible = False
source.NomUsuario.Text = ""
source.psw.Text = ""
Set currentwindow.activeview = currentdocument.MenuP
CurrentWindow.Browse
End If
End Sub
Gracias de antemano.
Espero me puedan ayuar.
Mi problema consiste en que al ingresar un usuario y validarlo. Si los datos son correctos
no envia mensaje y continua normal la ejecucion (hace lo que espero). Pero si los datos
no son correctos envia un mensaje y continua la ejecucion como que si el
error no ocurrio y deja disponibles todos los registros. Lo que quiero es que filtre los registros por usuario y si los datos son incorrectos, que no permita cambiar de formulario.
Tengo una tabla RIGHTS.dbf donde estan las claves
Este es mi codigo. (nota este codigo lo compie de este foro)
Sub acceso
CurrentWindow.FindAll '------- Todos los Registros
CurrentView.Body.UsuarioActual.Text = CurrentView.Body.NomUsuario.Text
VU = CurrentView.Body.UsuarioActual.Text
VC = CurrentView.Body.PSW.Text
If VU = "" Or VC = "" Then
If VU = "" Then
boxType = MB_OK+ MB_ICONEXCLAMATION
Respuesta = Messagebox (" INTRODUZCA USUARIO " , boxType, "AVISO")
CurrentView.Body.NomUsuario.SetFocus
Exit Sub
Else
boxType = MB_OK+ MB_ICONEXCLAMATION
Respuesta = Messagebox (" INTRODUZCA CODIGO " , boxType, "AVISO")
CurrentView.Body.PSW.SetFocus
Exit Sub
End If
End If
'*--------------------------------------------------------------------------
'Encriptar
VClargo = Len(VC)
For I = 1 To VClargo
Select Case I
Case 1
a1=Mid(CurrentView.Body.PSW.Text,i,1)
b1 = Ucase(Chr(Asc(a1)))
b1 = Chr(Asc(b1)-25)
Case 2
a2=Mid(CurrentView.Body.PSW.Text,i,1)
b2 = Ucase(Chr(Asc(a2)))
b2 = Chr(Asc(b2)-25)
Case 3
a3=Mid(CurrentView.Body.PSW.Text,i,1)
b3 = Ucase(Chr(Asc(a3)))
b3 = Chr(Asc(b3)-25)
Case 4
a4=Mid(CurrentView.Body.PSW.Text,i,1)
b4 = Ucase(Chr(Asc(a4)))
b4 = Chr(Asc(b4)-25)
Case 5
a5=Mid(CurrentView.Body.PSW.Text,i,1)
b5 = Ucase(Chr(Asc(a5)))
b5 = Chr(Asc(b5)-25)
Case 6
a6=Mid(CurrentView.Body.PSW.Text,i,1)
b6 = Ucase(Chr(Asc(a6)))
b6 = Chr(Asc(b6)-25)
Case 7
a7=Mid(CurrentView.Body.PSW.Text,i,1)
b7 = Ucase(Chr(Asc(a7)))
b7 = Chr(Asc(b7)-25)
Case 8
a8=Mid(CurrentView.Body.PSW.Text,i,1)
b8 = Ucase(Chr(Asc(a8)))
b9 = Chr(Asc(b8)-25)
End Select
Next
VC= B1+B2+B3+B4+B5+B6+B7+B8
'*----------------------------------------------------------------------------
Dim fFind As New Find
fFind.And "RIGHTS.USUARIO", "=" & VU
fFind.And "RIGHTS.CLAVE", "=" & VC
'RunApproachMacro("Evaluador")
' Esta macro no se que hace por eso la anule
'-----------------------****************************-----------------AAAAQQQUUUIIII<<<<<< O J O AQUI
' Aqui tengo el problema
'******************
CurrentWindow.FindSort fFind '---Ahora cada usuario sólo verá sus registros
'******************
'Esta linea si no encuentra registros envia un mensaje y deja como cantidad
' de registros todos los registros de la tabla. Cuando los cuento con la siguiente
' linea logicamente NR es mayor que cero y mi rutina ya no funciona como la necesito.
NR = CurrentWindow.CountRecords(AprFoundRecords)
' Lo que necesito es que el usuario pueda reingresar los datos mientras sean incorrectos.
' Hay alguna forma de interceptar el mensaje o el estado de la busqueda si es falso
para mantener el control.
'-----------------------
If nr > 0 Then
' source.NomUsuario.Visible = True
Set currentwindow.activeview = currentdocument.ProcedimientoA
CurrentWindow.Browse
Else
source.NomUsuario.Visible = False
source.NomUsuario.Text = ""
source.psw.Text = ""
Set currentwindow.activeview = currentdocument.MenuP
CurrentWindow.Browse
End If
End Sub
Gracias de antemano.
Valora esta pregunta


0