Lotus Approach - verificar usuarios
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. También te puede interesar...
Hola Fenix:
Puedes utilizar el sistema que te propuse en el post: "buscar numero mayor", para verificar si una búsqueda va a encontrar registros, previamente al filtro "Find". SELECT * FROM "RIGHTS.DBF" WHERE USUARIO="usuario" AND CLAVE="clave" Si el ResultSet (RST), te devuelve 0 registros, no aplicas el filtro, y vuelves al la introducción de usuario y contraseña. Así evitarás el mensaje de "No se ha encontrado ningún registro" que te echa por tierra tu sistema. Un saludo. Manolo
Gracias manolo fue una gran idea. Y como decimos por aqui me quedo BIEN CHEVERE.
Tuve problemas con lo de las comillas simples y dobles pero no me rendi. Gracias. sobre barra de estado Informe con varios campos memos |