Problema relacionar codigo del boton al ribbon access

Necesito que alguien me eche una mano tengo un codigo en un boton que funcion correctamente pero al asignarselo al boton en el ribbon no me funciona el codigo es el siguiente (cuando lo asigne al ribbon cambie me por Forms! FCambioPass.txt... En todos los sitios pero me daba error al cargar las imagenes del ribbon ademas de no funcionar.

Dim vNewPass, vNewPassConfirm As Variant
    vNewPass = Me.txtPass1.Value
    vNewPassConfirm = Me.txtPass2.Value
    If IsNull(vNewPass) Or IsNull(vNewPassConfirm) Then
        MsgBox "Debe introducir la nueva contraseña y chequearla", vbExclamation, "AVISO"
        Exit Sub
    End If
    If vNewPass <> vNewPassConfirm Then
        MsgBox "Las contraseñas introducidas no coinciden", vbExclamation, "AVISO"
        Me.txtPass1.Value = Null
        Me.txtPass2.Value = Null
        Me.txtPass1.SetFocus
        Exit Sub
    End If
    Dim vUser As Variant
        vUser = Me.cboUser.Value
    Dim rst As Recordset
    Set rst = CurrentDb.OpenRecordset("TPass")
    rst.MoveFirst
        Do Until rst.EOF
            Dim vRstUser As Variant
            vRstUser = rst.Fields("NomUser").Value
            If vRstUser = vUser Then
                With rst
                    .Edit
                    .Fields("Pass").Value = vNewPass
                    .Update
                End With
                Exit Do
            End If
            rst.MoveNext
        Loop
    MsgBox "Contraseña cambiada correctamente", vbExclamation, "CORRECTO"
    DoCmd.Close acForm, Me.Name
    DoCmd.OpenForm "Inicio"
rst.Close
Set rst = Nothing

Tras estar buscando por hay me acorde de un ejemplo de Sveinbjorn en el cual declaraba esta funciona y luego le asignaba el codigo mediante un select case el control al boton

Public Function fncNombreFrmActivo() As String
    Dim frmActivo As Form
    Set frmActivo = Screen.ActiveForm
    fncNombreFrmActivo = frmActivo.Name
End Function
Public Sub OnActionButton(control As IRibbonControl)
    Select Case control.id
        Case "cambiopassId"
            Forms(fncNombreFrmActivo).cmdCambiarPass_Click
    End Select
End Sub

Pues bien cuando lo ejecuto da error 2465 error definido por la aplicacion o el objeto.

1 respuesta

Respuesta
1

Pista: para llamar desde el ribbon a un procedimiento de un formulario, éste ha de ser "Public" y no "private"

Gracias por contestar, pero las dos estan declaradas como Public

¿Seguro? ¿cmdCambiarPass_Click la tienes como Public? Yo creo que no...

¡Gracias! Se me escapo la respuesta de antes, me di cuenta cuando estaba escribiendo del private del cmdCambiarPass. Lo siento

Por cierto para separar dos botones para que no queden juntos basta con poner entre ambos <separator id="separador1Id"/>, es que hice una pregunta el otro día sobre esto y no conseguí respuesta y es que en alguna tab me funciona pero si lo pongo en otra no.

Gracias por todo como siempre

¿Y te funciona ahora?

Si ahora esta respuesta si pero sobre la del ribbon anterior la hice ayer creo y tuve que quitar los separator de la tab porque sino no me carga el ribbon, y no se cual es la razon

Valora esta, y ya miraré la otra con tiempo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas