¿Cómo crear una interfaz de inicio de sesión para verificar la contraseña cuando PPT está conectado a la base de datos de acceso?
El siguiente ejemplo es para conectarse a la base de datos SQL. Simplemente cambie el código de conexión de la base de datos en el código para conectarse a la base de datos de acceso:
conn.ConnectionString = "Provider=SQLOLEDB. 1; Persist Security Info=False;" _
? "ID de usuario=sa; contraseña=123; Catálogo inicial=denglu; 127.0.0.1" ? 'Conectar al código de la base de datos
Cambiado a:
conn.ConnectionString =?"Provider=Microsoft.Ace.OLEDB.12.0; Data Source=" amp ThisWorkbook.Path amp "\BPO.accdb"
Agregar referencia
1. Diseño de interfaz
Los atributos de nombre de cada control son: etiqueta1?, texto1, etiqueta2, texto2, comandook, cmdcancel
Se muestra después de iniciar sesión correctamente:
El diseño del código es el siguiente:
'Primero agregue un módulo y escriba la siguiente declaración general y Sub main():
Conexión pública como ADODB .Conexión 'General (declaración)
Sub principal()
Establecer conexión = Nueva ADODB.Conexión ?'General (principal)
?conn.ConnectionString = "Provider=SQLOLEDB.1; Persist Security Info=False;" _
? "ID de usuario=sa; contraseña=123; Catálogo inicial=denglu; Fuente de datos=127.0.0.1 " ? 'Conéctate al código de la base de datos
conn.Open
frmLogin.Show 'Primero muestra la interfaz de inicio de sesión.
También puede configurar el objeto de inicio en Sub main() o en el formulario frmlogin en las propiedades del proyecto
End Sub
'En la ventana de código de Frmlogin, escriba el siguiente código para el control cmdok :
Sub privado cmdok_Click() Si text1.Text = "" Entonces
MsgBox "¡El nombre de usuario no puede estar vacío!", vbOKOnly vbInformation, "Recordatorio amistoso"
texto1. Text = "" Entonces
MsgBox "¡La contraseña no puede estar vacía!", vbOKOnly vbInformation, "Recordatorio amistoso"
text2.SetFocus
Salir de Sub 'If el cuadro de texto de la contraseña está vacío. También aparece un cuadro de aviso
Finalizar si
Dim strSQl As String
strSQl = "seleccione * del Usuario1 donde nombre de usuario=' " amp; Trim$(text1. Text) amp; "' and pwd='" amp; Trim$(text2.Text) amp; "' "
'Escribe código SQL para consultar si la información ingresada por el usuario en el formulario existe en la tabla Usuario1.
Dim str como nuevo ADODB.Recordset
Establecer str = Nuevo ADODB.Recordset
str.CursorLocation = adUseClient
str.Open strSQl, conn, adOpenStatic, adLockReadOnly
Con str
Si .State = adStateOpen Entonces .Close
.Open strSQl p>
Si .EOF Entonces
Try_times = Try_times 1
Si Try_times gt = 3 Entonces
MsgBox "Ha ingresado errores tres veces en una fila. El sistema se apagará automáticamente", vbOKOnly vbCritical, "Advertencia"
¿Descargarme? ?'Si el usuario ingresa la contraseña incorrecta tres veces seguidas, el sistema se apagará
Else
MsgBox "¡Lo sentimos, el nombre de usuario no existe o la contraseña es incorrecta!", vbOKOnly vbQuestion, "Advertencia"
text1.SetFocus
text1.Text = ""
text2.Text = ""
Finalizar si
si no
Descargarme 'Si el inicio de sesión es exitoso, ocultar el formulario actual
? Form2.Show 'Luego mostrar el formulario Formulario
Finalizar si p>
Terminar con
End Sub
Private Sub cmdCancel_Click()
End 'Si haces clic en el botón Cmdcel, finaliza la aplicación
End Sub
Problemas existentes en ejecución:
Hay Dim conn As adodb.connection en el código y se muestra "El tipo definido por el usuario no está definido" cuando se ejecuta .
Solución: haga clic en "Proyecto"--"Referencia" Busque "Microsoft ActiveX Data Object 2.6"
Entonces se ejecutará normalmente.