Tenía un poco de tiempo y te propongo dos posibilidades:
1º/ En el evento "Antes de actualizar" del campo donde escribes la contraseña (lo llamaré txtPass en el código):
Private Sub txtPass_BeforeUpdate(Cancel As Integer)
Dim laContraseña As String
laContraseña = Nz(Me.txtPass, "")
'Si no hay nada escrito, salimos sin más
If laContraseña="" Then Exit Sub
'Comprobamos la longitud
If Len(laContraseña) < 7 Then
MsgBox "La contraseña no tiene los 7 caracteres mínimos requeridos"
Cancel = True
End If
Dim hayNumero As Boolean
Dim hayMayusculas As Boolean
Dim hayMinusculas As Boolean
Dim i As Integer
Dim temp As Variant
For i = 1 To Len(laContraseña)
temp = Mid(laContraseña, i, 1)
If IsNumeric(temp) Then
hayNumero = True
Else
If Asc(UCase(temp)) = Asc(temp) Then hayMayusculas = True
If Asc(LCase(temp)) = Asc(temp) Then hayMinusculas = True
End If
Next i
If hayNumero = False Then
MsgBox "La contraseña no incluye números"
Cancel = True
End If
If hayMayusculas = False Then
MsgBox "La contraseña no incluye mayúsculas"
Cancel = True
End If
If hayMinusculas = False Then
MsgBox "La contraseña no incluye minúsculas"
Cancel = True
End If
End Sub
En este caso no te dejará salir del cuadro de texto mientras no cumplas todas las condiciones o lo dejes en blanco.
2º/ En el evento "después de actualizar del campo donde escribes la contraseña:
Private Sub txtPass_AfterUpdate()
Dim laContraseña As String
laContraseña = Nz(Me.txtPass, "")
'Si no hay nada escrito, salimos sin más
If laContraseña="" Then Exit Sub
'Comprobamos la longitud
If Len(laContraseña) < 7 Then
MsgBox "La contraseña no tiene los 7 caracteres mínimos requeridos"
Me.txtPass = ""
Exit Sub
End If
Dim hayNumero As Boolean
Dim hayMayusculas As Boolean
Dim hayMinusculas As Boolean
Dim i As Integer
Dim temp As Variant
For i = 1 To Len(laContraseña)
temp = Mid(laContraseña, i, 1)
If IsNumeric(temp) Then
hayNumero = True
Else
If Asc(UCase(temp)) = Asc(temp) Then hayMayusculas = True
If Asc(LCase(temp)) = Asc(temp) Then hayMinusculas = True
End If
Next i
If hayNumero = False Then
MsgBox "La contraseña no incluye números"
Me.txtPass = ""
Exit Sub
End If
If hayMayusculas = False Then
MsgBox "La contraseña no incluye mayúsculas"
Me.txtPass = ""
Exit Sub
End If
If hayMinusculas = False Then
MsgBox "La contraseña no incluye minúsculas"
Me.txtPass = ""
Exit Sub
End If
End Sub
En este caso, te borrará lo escrito si no cumple las condiciones.