Pedir clave para abrir formularios

Hago clic en un botón en un formulario para abrir otro formulario y editar dichos datos.

Pero quiero que me pida una contraseña para abrir y editar dicho datos

2 Respuestas

Respuesta
1

No dices si las contraseñas están en una tabla o es una contraseña fija. Lo puedes hacer de muchas formas.

Segundo caso. En el evento Al hacer clic del botón crea un procedimiento de evento y entre Private Sub y End sub puedes poner

Dim respuesta as string

respuesta=Inputbox("Por favor, escriba la contraseña","Muchas gracias")

If respuesta="ABC123" then

docmd.openform"Clientes",......

else

msgbox"No se parece en nada",vbokonly,"Otro día será"

exit sub

end if

Pero como te decía lo puedes hacer de mil formas, tendrías que concretar más.

Hola, buen días, si es de día, buenas tardes o noches. Gracias por responder.

Julián, no la tengo en una tabla de passwod, por que es como un aviso antes de abrir dicho formulario.

De hecho tengo algo acá que conseguí, el cual es estupendo, pero no se como agregarle la función de que al abrir el formulario me deje editar los datos del registro que tengo visualizado del formulario formulario donde esta el botón de editar. Te lo voy a pegar aquí, para que lo veas y la función por separado que quiero que haga cuando acepte la contraseña, y revises si puedes ayudarme a que ambas funcionen al hacer clic al botón que tengo en el formulario.

Private Sub Comando14_Click()
DoCmd.Close
Const vPass As String = "XXXXXXX"
Dim introPass As Variant
introPass = InputBox("Introduzca la contraseña", "SE REQUIERE CONTRASEÑA", " ... ? ")

If introPass = "" Or IsNull(introPass) Then Exit Sub

If introPass = vPass Then

DoCmd.OpenForm "Editar_Datos"
Else
MsgBox ("La contraseña introducida no es correcta"), _
vbInformation, "INCORRECTO"
Exit Sub
End If
End Sub

La función anterior me funciona de maravilla, pero me abre solo el formulario en blanco, osea no me trae los datos que estoy viendo en formulario, el cual si yo le abro con otro botón y es esta:

Dim vAsoc As Variant
vAsoc = Me.Cedula_de_Identidad.value
DoCmd.Close
DoCmd.OpenForm "Editar_Datos", , , "[Cedula_de_Identidad]='" & vAsoc & "'", acFormPropertySettings
End Sub

Lo que quiero es que en un solo botón me haga esas dos funciones y no se como hacerlo, como no soy un programador solo, uso access para uso personal y me gusta .

Gracias de antemano Julián espero me puedas ayudar, este es mi correo por si acaso ( [email protected]) Saludos

Voy a usar nombres para explicarme. Supongamos que tus formularios se llaman Clientes y el que quieres abrir si sabe la clave DatosCliente. En las propiedades de este último, en eventos- Al abrir puedes ponerle sencillamente

If currentproject.allforms("Clientes").isloaded then

me.allowedits true

me.allowdeletions true

me.allowadditions true

else

me.allowedits false

me.allowdeletions false

me.allowadditions false

end if

Me explico. Estás en el formulario Clientes, pulsas el botón que citamos en la primera respuesta y la clave es correcta. Se te muestra el Formulario DatosCliente y como se cumple la condición de que el formulario Clientes está cargado, pues "vienes de él" te permite editar, eliminar, añadir. Si la clave no era correcta, no te abría el formulario DatosCliente.

Por el contrario si desde la ventana de navegación abres directamente el formulario DatosCliente, como no "vienes" desde el formulario Clientes, no te deja escribir, eliminar o añadir. No sé si es eso a lo que te refieres.

Hola, Julián. En este instante voy a tratar de hacer eso, estaba fuera de la ciudad, llegue hoy.

Le estaré avisando gracias saludos

Hola, Sr Julián, hice lo recomendado por usted, en el formulario TDatos donde tengo el botón, doy clic y me aparece el cuadro solicitando la clave, introduzco una de mi criterio o la que usted dejo por defecto y no abre formulario, EditarDatos1, el cual que deseo.

Me envía al diseño del código y me resalta la línea en amarillo donde va la clave :

If respuesta = "ABC123" Then  

Me imagino que no reconoce a ninguna de las claves.

Espero de su parte orientación sobre que estoy haciendo mal.

Saludos y disculpe la molestia.

Se me olvido comentar sobre el formulario EditarDatos, en el evento al abrir que em sugerido que le colocara, me hace esto:

Private Sub Form_Open(Cancel As Integer)
If CurrentProject.AllForms("EditarDatos1").IsLoaded Then

Me.AllowAdditions True                             

Me.AllowDeletions True

Me.AllowAdditions True

Else

Me.AllowEdits False

Me.AllowDeletions False

Me.AllowAdditions False

End If
End Sub

LA PRIMERA LÍNEA ( Me.AllowAdiditions true) ME LA RESALTA EN AZUL INDICANDO QUE NO ES VALIDAD LA PROPIEDAD

Vamos a hacer una cosa. Si quieres, repito, si quieres, haz una copia con datos inventados y me la mandas a [email protected]

Si lo haces, en el asunto del mensaje pon tu alias Abraham, ya que si no sé quien me escribe ni los abro.

Respuesta
1

Supongamos que la clave a validar es 12345678, una forma fácil es:

1. En un módulo cualquiera ingrese esto:

   Public Const pass = "12345678"

2. En el botón en el evento Al hacer clic, donde pide la contraseña ingrese lo siguiente:

Dim strpass As String
Do
    strpass = InputBox("Contraseña :", "Clave")
      If Len(strpass) > 0 Then
           If strpass = pass Then
               DoCmd.OpenForm "frmAyuda"
              Exit Do
          End If
     Else
        Exit Do
    End If
Loop Until (Len(strpass) = 0)

Cambie frmAyuda por el nombre de su formulario. Esto le permite que mientras no se ingrese la contraseña correcta vuelve y la pregunta, si hace clic en Cancelar se sale del bucle.

¡Gracias!

Hola, gracias por su atención y aporte.

Viendo su comentario me parece excelente, pero primero voy a tratar con la ayuda, del sr Julián que me contesto primero, si soluciono con el igual verificare su aporte y le comento y calificare también, gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas