Visual Basic - Login en visual basic

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 22 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Login en visual basic

Publicado por Anonimo (4 intervenciones) el 14/05/2020 19:26:14
Necesito hacer que mi valor de invitado sea falso para que no tenga acceso a los dispositivos, en poca palabras no tenga permiso pero por alguna razón no logro que el valor sea falso y me muestre lo de mensaje2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Module Module1
    Public user, pass As String
    Public Function condicion(user As String, pass As String, mensaje1 As String, mensaje2 As String) As Boolean
        If user = "Admin" And pass = "Lucas40" Or user = "Invitado" And pass = "Mate50" Then
            condicion = True
            MsgBox(mensaje1)
        Else
            condicion = False
            MsgBox(mensaje2)
        End If
    End Function
 
End Module
 
Public Class Form1
    Private Sub btnaceptar_Click(sender As Object, e As EventArgs) Handles btnaceptar.Click
        user = TextBox1.Text
        pass = TextBox2.Text
        If condicion(user, pass, "Bienvenido", "No tienes acceso") Then
            Form2.Show()
            Hide()
        Else
        End If
    End Sub
    Private Sub btnsalir_Click(sender As Object, e As EventArgs) Handles btnsalir.Click
        End
    End Sub
End Class
 
Public Class Form2
    Private Sub picBoxImp_Click(sender As Object, e As EventArgs) Handles picBoxImp.Click
        condicion(user, pass, "Realizando impresión", "No tienes permisos")
    End Sub
    Private Sub btncerrar_Click(sender As Object, e As EventArgs) Handles btncerrar.Click
        Form1.Show()
        Hide()
        Form1.TextBox1.Text = ""
        Form1.TextBox2.Text = ""
    End Sub
    Private Sub picBoxBoc_Click(sender As Object, e As EventArgs) Handles picBoxBoc.Click
        condicion(user, pass, "Encendiendo bocinas", "No tienes permisos")
    End Sub
    Private Sub picBoxMic_Click(sender As Object, e As EventArgs) Handles picBoxMic.Click
        condicion(user, pass, "Encendiendo micrófono", "No tienes permisos")
    End Sub
End Class
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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Login en visual basic

Publicado por Andres Leonardo (1798 intervenciones) el 15/05/2020 16:17:08
Prueba haciendo esto
1
2
3
4
5
6
7
8
9
10
11
If user = "Admin" And pass = "Lucas40"  Then
   'si es invitado  es verdadero ....
            condicion = True
            MsgBox(mensaje1)
        Elseif user = "Invitado" And pass = "Mate50" then
            condicion = False
            MsgBox(mensaje2)
        else
                        condicion = False
            MsgBox("Usuario o Contraseña incorrecta")
        End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Antonio
Val: 28
Ha disminuido su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Login en visual basic

Publicado por Antonio (7 intervenciones) el 09/06/2020 19:32:36
Hola Andres Leonardo. Quizá puedas ayudarme con un problema similar. Apoyado con visual studio 2012 (visual basic), y sql server 2019 se diseñó una aplicación que anda muy bien. Estoy diseñando restricciones a Usuarios, desde una Tbl_UsuariosPermisos defino el nombre del Form y el Acceso (False, True), con su mantenimiento y todo bien. Ahora debo diseñar una Clase (Permiso), desde la cual al darle Click a abrir desde el FormInicio (MDI), en el evento cargar del FormArqueoCaja llamo a la clase Permiso, y me ejecuta todo bien, busco el IdUsuario, nombre de Formulario en la Tbl_UsuariosPermisos, y hasta en un mensaje me pasa los datos para corroborar... Ahora el tema es que si el bPermisoFor= False quiero cerrar el Formulario con el sNombreFormulario. Copio el código que uso para un apoyo. Gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Public Sub Permiso(sNombreFormulario As String)     ' PERMISOS DE USUARIOS
        If CONNM.State = ConnectionState.Closed Then
            CONNM.Open()
        End If
        On Error GoTo No_tienes_acceso
            Dim bPermisoFor As String
            Dim datos As New SqlDataAdapter("Select Acceso FROM Tbl_UsuariosPermisos WHERE IdUsuario= '" & nIdUsuario & "' AND NombreFormulario= '" & sNombreFormulario & "'", CONNM)  'Con un Si o No, en variable "bPermisoFor" tomamos una decisión.
            Dim ds As New DataSet()
            datos.Fill(ds)
            bPermisoFor = ds.Tables(0).Rows(0)("Acceso")
            MsgBox("IdUsuario: " & nIdUsuario & vbCrLf & "Formulario: " & sNombreFormulario & vbCrLf & "Acceso:" & bPermisoFor)
            If bPermisoFor = False Then 'Informamos al usuario y le cerramos el formulario.
                MsgBox("No tienes permiso para este formulario: " & sNombreFormulario, MsgBoxStyle.Information)
                'ACÀ ES DONDE NO SE COMO MANDAR A CERRAR EL FORM CUYO NOMBRE TENGO CON sNombreFormulario
            End If
            Exit Sub
            No_tienes_acceso:
                    MsgBox("Lo siento, sucede un error." & vbCrLf & " " & "¡Consulta con el Administrador", vbInformation, "Sistema le informa")
                    Resume Next    'Logicamente si la variable es SI no hacemos nada y dejamos que el formulario siga abriéndose.
            If CONNM.State = ConnectionState.Open Then
                CONNM.Close()
            End If
 End Sub
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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Login en visual basic

Publicado por Andres Leonardo (1798 intervenciones) el 09/06/2020 23:38:53
pdorias hacer es no pasar el parametro como string si no sformulario as form asi envias el objeto formulario.

luego cuando desees el nombre utilzias
1
sformulario.name
y ahora cuando lo quieras ocultar
1
sformuario.hide

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antonio
Val: 28
Ha disminuido su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Login en visual basic

Publicado por Antonio (7 intervenciones) el 10/06/2020 05:06:40
Genial Andres, esa era la idea que necesitaba... hice un par de adaptaciones y funciona muy bien. Te copio como quedó el código.
Pero antes te tengo alguna preguntas, disculpa el abuso . En visual Basic existe el Open, Close de los Form. ¿¿En Visual studio 2012 no existe el Form.Close, ni el Form.Open??
código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Public Sub Permiso(sNombreFormulario As Form) ' PERMISOS DE USUARIOS
If CONNM.State = ConnectionState.Closed Then
CONNM.Open()
End If
On Error GoTo No_tienes_acceso
'podrias hacer es no pasar el parametro como string si no sformulario as form asi envias el objeto formulario.
'luego cuando desees el nombre utilzias: sformulario.name() ';y ahora cuando lo quieras ocultar: sformuario.hide()
Dim vformulario As String
vformulario = sNombreFormulario.Name()
Dim bPermisoFor As String
Dim datos As New SqlDataAdapter("Select Acceso FROM Tbl_UsuariosPermisos WHERE IdUsuario= '" & nIdUsuario & "' AND NombreFormulario= '" & vformulario & "'", CONNM) 'Con un Si o No, en variable "bPermisoFor" tomamos una decisión.
Dim ds As New DataSet()
datos.Fill(ds)
bPermisoFor = ds.Tables(0).Rows(0)("Acceso")
MsgBox("IdUsuario: " & nIdUsuario & vbCrLf & "Formulario: " & vformulario & vbCrLf & "Acceso:" & bPermisoFor)
If bPermisoFor = False Then 'Informamos al usuario y le cerramos el formulario.
MsgBox("No tienes permiso para este formulario: " & vformulario, MsgBoxStyle.Information)
sNombreFormulario.Dispose()
FormInicio.Activate()
End If
Exit Sub
No_tienes_acceso:
MsgBox("Lo siento, ha sucedido un error." & vbCrLf & " " & "¡Consulta con el Administrador", vbInformation, "Sistema le informa")
Resume Next 'Logicamente si la variable es SI no hacemos nada y dejamos que el formulario siga abriéndose.
If CONNM.State = ConnectionState.Open Then
CONNM.Close()
End If
End Sub

El Código al Activar el form Arqueo de Caja quedó así: (Por eso mi pregunta si ya no existe el Al Abrir el Form en Visual 2012? En access lo hice con el OpenForm.)
1
2
3
Private Sub FormArqueoCaja_Activated(sender As Object, e As EventArgs) Handles MyBase.Activated
        Call Permiso(Me)
    End Sub

Saludos y gracias por tus ideas geniales. Sin mentir, llevaba seis días dándole vueltas a este tema. Gracias nuevamente.
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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Login en visual basic

Publicado por Andres Leonardo (1798 intervenciones) el 10/06/2020 19:43:34
Hola

Como estas
me alegro qeu te haya funcionado la idea
No es abuso... veamos


Conozco que existen los SHOW y los HIDE pro que en si la aplicacion ya esta "Abierta" entonces lo que haces es mostrarlo o no
Otra cosa que existe son los LOAD y UNLOAD pero eso lo usaba en VB 6.0 no se no he revisado en nuevas versiones

Espero esto tambien te ayude y con gusto cuando pueda contesto

Saludos
Andres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antonio
Val: 28
Ha disminuido su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Login en visual basic

Publicado por Antonio (7 intervenciones) el 11/06/2020 17:45:21
Muchas gracias Andres, me queda más claro el tema. Esto de las versiones y sus actualizaciones son todo un tema de estudio.
Agradezco tu apoyo, cuídate amigo.
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
Imágen de perfil de Antonio
Val: 28
Ha disminuido su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Login en visual basic

Publicado por Antonio (7 intervenciones) el 26/07/2020 20:55:50
Hola Leandro, espero estés bien amigo. Fíjate que mi aplicación está lista, la publiqué y la pase a otra portátil, se instala bien, la base de datos de SQL también... instalé el SQL server en la otra máquina, y desde un backup la restauré y luego instalé mi aplicación con el instalador, y se instala bien.... la abro y abrimos el validador de usuarios para entrar, lee bien los datos del usuario para validar su entrada, pero al darle Aceptar me da un error: Variable de objeto o de bloque With no establecida, y de ahí no pasa. Creo que o publiqué mal y me falta algo (visual basic 2012), o algo estoy haciendo mal, pero lo raro es que mi maquina anda bien, pero la otra de prueba no anda bien. te copio el código, quizá puedas echarme una mano. Serña la variable Static que estoy usando mal al no ponerla en la Clase mayor y dejarla acá en lo local... no creo, pero tú dime que podría andar mal. Revisé muchos foros de Microsoft y todos dicen variable sin declarar, todas están revisadas y declaradas... así es que no entiendo. Lo otro raro es por qué en mi pc anda bien, excelente, pero en otra más viejita (4 años más vieja), me da ese error. Será que algo no publiqué bien en la definición de referencias para que me empaquete bien el instalador... ahí siento que tengo muchas debilidades. También adjunto la imagen del error.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Private Sub ValidarUsuario()  '(ByVal sender As Object, ByVal e As System.EventArgs)
    Try
        sClave = Me.txtClave1.Text           ''
        usuario = Me.cmbUsuario1.Text        ''
        TipoUsuario = Me.TpoUsuarioTextBox.Text ''
        RazonSocial = Me.txtRazonSocial.Text ''
        RUC = Me.txtRUC.Text              ''
        Moneda = Me.txtMoneda.Text        ''
        Direccion = Me.txtDireccion.Text  ''
        Telefono = Me.txtTelefonos.Text   ''   nSerial = My.MySettings.Serial
        rutaLogo = Me.txtRutaLogo.Text    ''
        IdEmpresa = Me.txtIdEmpresa.Text  ''
        idusuario = txtIdUsuario.Text     ''
        POS = Me.Tbl_UsuarioBindingSource.Find("Nombre", usuario) 'Pos buscar posición de Nombre que coincida con el usuario
        Me.Tbl_UsuarioBindingSource.Position = POS
        If Me.Tbl_UsuarioBindingSource.Current("Contrasena") = sClave Then
            MsgBox("Bienvenido Sr(a):" & UCase(usuario) & vbCrLf & vbCrLf & "Tipo de Usuario(a): " & UCase(TipoUsuario), MsgBoxStyle.Information, "USUARIO ACEPTADO: DATOS CORRECTOS")
            Call ActualizaBitacora() 'Call RegistrosUsuarios()
            FormInicio.txtUsuarioActivo.Text = usuario & " - " & TipoUsuario  'Concateno Usario y Tipo Usuarios
            FormInicio.txtTipoUsuarioActivo.Text = TipoUsuario
            FormInicio.txtIdUsuario.Text = nIdUsuario
            FormInicio.lblEmpresaInicio.Text = RazonSocial & " - " & RUC
            FormInicio.lblRUC.Text = RUC
            FormInicio.lblMoneda.Text = Moneda
            FormInicio.Text = "       ---   SISTEMA DE INFORMACIÓN DE " & UCase(Me.txtRazonSocial.Text) & " - " & UCase(Me.txtRUC.Text) & "   --- "
            FormInicio.Refresh()
            Me.Dispose()
            FormInicio.Activate()
            nIdUsuario = idusuario
            nUsuario = usuario
            nNombreEmpresa = RazonSocial
            nRUCEmpresa = RUC
            nMoneda = Moneda
            nIdEmpresa = IdEmpresa
            nTipoUsuario = TipoUsuario
            nRutaLogo = rutaLogo
            nDireccionEmpresa = Direccion
            nTelefonoEmpresa = Telefono
        Else
            Static Intento As Integer
            Intento = Intento + 1
            MsgBox("Datos incorrectos." & vbCrLf & "Por favor, revise su Contraseña" & vbCrLf & vbCrLf & "TE QUEDAN " & (3 - Intento) & " INTENTO(S)", MsgBoxStyle.Critical, "ERROR EN VALIDACIÓN DE DATOS DE USUARIO")
            If Intento = 3 Then
                MsgBox("Sistema se cerrará.", MsgBoxStyle.Critical, "BYE - BYE")
                Application.Exit()
                'Process.Start("Shutdown.exe", "-s -t 00")
            End If
        End If
    Catch exp As Exception
        MsgBox("OCURRIÓ ERROR EN VALIDACIÓN DE USUARIO:" & exp.Message, MsgBoxStyle.Exclamation, "IMPORTANTE")
    End Try
End Sub
Acá abajo te djo el otro código de cabecera en la Clase donde publico las variables que uso en Validación y otras partes de la Clase del FormLoginUsuario.
1
2
3
4
5
6
Public Class FormLoginUsuario
    Dim CONNM As New SqlConnection(My.MySettings.Default.ConexionSQL)
    Dim sClave, usuario, TipoUsuario, RazonSocial, RUC, Moneda, Direccion, Telefono, rutaLogo As String 'vFechaEntrada
    Dim IdEmpresa, idusuario, POS As Integer
    'Static Intento As Integer
    Dim tooltip As New ToolTip()  'Y cuando cargas el form asignará el texto para cada control
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
Imágen de perfil de Antonio
Val: 28
Ha disminuido su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Login en visual basic

Publicado por Antonio (7 intervenciones) el 26/07/2020 21:12:17
Sorry por Leandro, quise decir Leonardo.
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