Cifrar la password **** :)

He visto alguna respuesta tuya y he visto que dominas y que además contestas de manera muy clara, de experta a experto (aunque io en otras materias) a ver si me puedes ayudar:
He puesto una contraseña a un botón que abre un formulario con código muy sencillo, con un cuadro de mensaje con botón aceptar, botón cancelar, si no es la contraseña, no entra, etc, ya entiendes, pero ahora quiero que al poner la contraseña no se lea en pantalla, que lo ponga con **** para que si hay alguien cerca no la vea ;) ¿Cómo lo hago? Te copio mi código y ya me dirás. Gracias por adelantado.
Private Sub Comando0_Click()
On Error GoTo Err_Comando0_Click
Dim stDocName As String
Dim stLinkCriteria As String
Dim strMensaje As String, strEntrada As String
' Inicializar la cadena.
strMensaje = "Contraseña incorrecta. " _
& "Haga clic en Aceptar para " _
& "introducir nuevamente la contraseña."
' Solicitar la introducción de datos del usuario.
strEntrada = InputBox("Escriba contraseña de entrada.")
' Determina si el usuario elige "Cancelar".
If strEntrada <> "" Then
' Comprobar el valor introducido.
Do While strEntrada <> "somoslosmejores"
If MsgBox(strMensaje, vbOKCancel, "¡Error!") = vbOK Then
strEntrada = InputBox("Escriba contraseña de entrada")
Else
Exit Sub
End If
Loop
Else
Exit Sub
End If
DoCmd.Close
stDocName = "FrmConvocatorias"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Comando0_Click:
Exit Sub
Err_Comando0_Click:
MsgBox Err.Description
Resume Exit_Comando0_Click
End Sub

1 Respuesta

Respuesta
1
Aúpa,
Gracias por los halagos, que siempre son de agradecer.
Vamos a ver si resolvemos tu problema.
En primer lugar, para introducir la contraseña vas a tener que utilizar un cuadro de texto, ya que este tipo de controles permite utilizar máscaras para la entrada de datos. La función InmputBox no permite definir máscaras; así que para este caso no nos sirve.
Te propongo que utilices un pequeño formulario tipo Diálogo. A este formulario lo llamaremos desde el formulario donde tenías el botón Comando0.
Este pequeño formulario tendrá tres controles:
1. Cuadro de texto para introducir la contraseña: llamado txtContraseña
2. Botón de Comando "Aceptar": llamado btnAceptar
3. Botón de Comando "Cancelar": llamado btnCancelar
(Este formulario no tendrá ningún origen de datos establecido.)
En el cuadro de texto txtContraseña, en la propiedad Máscara de Entrada, basta con seleccionar del asistente de máscaras la máscara predefinida: Contraseña
Con esto, verás que cualquier cosa que escribas en este control se visualizará como *****
Ahora, lo único que queda es poner en el botón btnAceptar, también en el evento On_Click, el mismo código que incluías en el botón Comando0, pero prescindiendo de la llamada a InputBox, ya que ahora tenemos el texto de la contraseña en el control txtContraseña.
El código modificado quedaría:
Private Sub btnAceptar_Click()
On Error GoTo Err_btnAceptar_Click
Dim stDocName As String
Dim strMensaje As String
'Inicializar la cadena.
strMensaje = "Contraseña incorrecta. " _
& "Introduzca nuevamente la contraseña."
' Comprueba la contraseña introducida.
If (Me.txtContraseña <> "somoslosmejores") Or IsNull(Me.txtContraseña) Then
'La contraseña no es correcta
MsgBox strMensaje, vbOKOnly, "¡Error!"
'Limpiamos el valor anterior de la contraseña para que el usuario vuelva a introducirlo
Me.txtContraseña = ""
Exit Sub
Else
'La contraseña es correcta
'Cierra el formulario de entrada de la contraseña
docmd.close acForm, Me.Name
'Abre el formulario Convocatorias
DoCmd.OpenForm "FrmConvocatorias"
End If
Exit_btnAceptar_Click:
Exit Sub
Err_btnAceptar_Click:
MsgBox Err.Description
Resume Exit_btnAceptar_Click
End Sub
Una última sugerencia.
Te recomiendo que no incluyas el texto de la contraseña (somoslosmejores) directamente en el código del procedimiento, pues cada vez que quieras cambiar la contraseña tienes que modificar el código.
Una solución sería crear una tabla con un campo contraseña, y hacer que el procedimiento busque ahí la contraseña. De este modo, para cambiar la contraseña, basta con editar dicha tabla.
Esta posibilidad permite además encriptar la contraseña que tienes guardada en la tabla, pues los campos de texto permiten en tablas permiten también establecer máscaras de entrada.
Espero haber resultado suficientemente claro también en esta ocasión. Cualquier duda o pega que tengas, no dudes en consultármela.
Un abrazo, y que tengas un buen año nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas