Daniel, sólo una cosa antes, si defines una variable como integer, no le debes dar valor encerrado entre comillas, ya que Access entiende que es texto
Dim pwd as integer
pwd=123
sin comillas
Con respecto a lo de las tres veces, se puede hacer de mil formas distintas. Todo depende de como quieras hacerlo, y lo que quieres que haga en caso de que a la tercera no acierte. Yo siempre aconsejo liquidarlo y que parezca un accidente. Mira, en la tabla Usuarios tengo el nombre de cada uno y su contraseña. No les pongo máscara de entrada, para que veas los valores y Adrián tiene la 111
En el formulario Usuario, en vista diseño le añado un cuadro de texto oculto llamado Contador( no sería necesario pero creo que se ve mejor). Es el que pone Independiente
Al abrir el formulario, escribo Adrian y 222 y cuando pulso Verificar
Lo intento cambiando la contraseña
Lo vuelvo a intentar
Cuando pulso aceptar
Al aceptar se cierra la base. Se le podría decir que saliera un láser de mitad de la pantalla y que lo cegara para siempre. Eso va a gusto del consumidor.
El código del botón es
Private Sub Comando15_Click()
If Nz(DCount("usuario", "usuarios", "contraseña = forms!usuario!contraseña and usuario=forms!usuario!usuario")) >= 1 Then
DoCmd.SetWarnings False
DoCmd.RunSQL "insert into registro(usuario,fecha,hora)values(Usuario,date(),time())"
DoCmd.OpenForm "Inicio Menu"
Else
Contador = Contador + 1
MsgBox "No eres " & Me.[Usuario], vbOKOnly, "Aviso, llevas " & Me.Contador & " intento(s)"
DoCmd.CancelEvent
If Contador = 3 Then
MsgBox "Como he comprobado que no eres quien dices me cierro", vbOKOnly + vbCritical, "Otra vez será"
DoCmd.Quit
End If
End If
End Sub
Private Sub Form_Current()
Contador = 0
End Sub
Es decir, cada vez que se abre el formulario, el contador se pone en cero. En caso de que acierte se abre el formulario Inicio menú.
Pero como te decía, se puede hacer de muchas formas.