Habilitar Boton Solo si en formulario de Access

Tengo un formulario Basado en una consulta, este formulario de BUSCAR al cargar se postula en nuevo registro.

En este formulario tengo un cuadro combinado que "despues de actualizar" debe buscar el registro y si NO lo encuentra. Pregunta si lo desea crear. Al darle en si permite el llenado de los campos.

Hasta aquí funciona perfecto. Porque mientras es nuevo el registro me deja deshabilitado el BOTON PAGAR.

El problema es porque en este formulario tengo un botón llamado PAGAR. Que inicia deshabilitado.

Necesito que este botón GUARDAR se habilite solo cuando el registro exista.

EL CODIGO QUE TENGO EN EL cuadro combinado "Después de Actualizar" es el siguiente:

Private Sub Cuadro_combinado44_AfterUpdate()
' Buscar el registro que coincida con el control.
Dim rs As Object
Dim vDNI As Variant
Dim resp As Integer
Set rs = Me.Recordset.Clone
rs.FindFirst "[Idplaca] = '" & Me![Cuadro combinado44] & "'"
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
If rs.NoMatch Then
vDNI = Me.Cuadro_combinado44.Value
If IsNull(vDNI) Then Exit Sub
resp = MsgBox("El registro no existe. ¿Desea crearlo?", vbQuestion + vbYesNo, "LA PLACA NO EXISTE")
If resp = vbNo Then
Me.Cuadro_combinado44.Value = Null
Exit Sub
Else
DoCmd.RunCommand acCmdSaveRecord
DoCmd.RunCommand acCmdRecordsGoToLast
DoCmd.RunCommand acCmdRecordsGoToNew
With Me
Me.TipoVehiculo.Enabled = True
.Placa.Value = vDNI
.IdPlaca.Value = vDNI
.TipoVehiculo.SetFocus
End With
End If
End If
End Sub

EL CODIGO QUE TENGO AL CARGAR EL FORMULARIO ES:

Private Sub Form_Load()
Me.Guardar.Enabled = False
Me.PAGAR.Enabled = False
Me.TipoVehiculo.Enabled = False
DoCmd.RunCommand acCmdRecordsGoToNew
End Sub

2 respuestas

Respuesta
1

No entro en analizar si ese código te funciona, que supongo lo hace.

Para habilitar y deshabilitar los controles, >>> Después del With Me

Repites un Me.TipoVehiculo.Enabled = True     que debe ser sin el Me>>

.TipoVehiculo.Enabled = True                        y después

.Guardar.Enabled = True

 .Pagar.Enabled = False
Para el caso de que ya exista el Registro de bes añadir un >> Else antes del End If Final, quedandote así >>

            End With  'Ya existe
     End If     'Ya existe

Else   'Este es el que hay que añadir

Me.TipoVehiculo.Enabled = False

Me.Guardar.Enabled = False
Me.PAGAR.Enabled = True
End If    'Ya existe
End Sub   'Ya existe

Saludos >> JTJ

Se me ha pasado comentartte que yo hubiera programado el Evento >> Al no estar en la Lista, antes que ese código, pero como antes te comentaba si te va bien estupendo.

Por si quieres ver algo de lo que te sugiero:

https://docs.microsoft.com/es-es/office/vba/api/access.combobox.notinlist 

Saludos >> JTJ

Respuesta

Aunque es un código confuso y espero que otro se lo aclare, solo se me ocurre que después del

With Me

End Wiith

Adicine:

Me.PAGAR.Enabled=True

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas