Pruebe con esto. Cree una variable global
Public g_botonClicado As Boolean
En el evento Click del botón de comando (asumo que el botón se llama btnCerrar)
Private Sub btnCerrar_Click()
' Establece la variable global a True cuando el botón es clicado
g_botonClicado = True
' Cierra el formulario
DoCmd.Close acForm, Me.Name
End Sub
Manejar el Evento KeyDown en el Formulario
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
' Verifica si el botón fue clicado previamente
If g_botonClicado Then
' Restablece la variable global y permite la acción normal del Enter
g_botonClicado = False
Else
' Puede manejar el evento Cancel del cuadro de texto aquí
MsgBox "Enter presionado, pero el botón no fue clicado."
End If
End If
End Sub
En la hoja de propiedades, establece la propiedad Tecla de vista previa del formulario a Sí.
La variable global g_botonClicado se utiliza para verificar si el botón ha sido clicado.
El evento Click del botón de comando establece esta variable en True.
El evento KeyDown del formulario comprueba esta variable para determinar si el Enter fue presionado mientras el botón estaba en foco o si debe cancelarse la acción.