Attraper un événement de collage?
-
03-07-2019 - |
Question
Je travaille pour un fabricant d’armoires personnalisées et nous établissons notre propre programme de tarification pour notre produit. J'ai un formulaire qui a une boîte de dialogue qui permet à l'utilisateur de sélectionner le côté de la charnière pour les portes ambiguës de ce meuble. Je dois que cela fonctionne jusqu'à présent, mais quand ils copient un élément et le collez en bas, je ne veux pas que la boîte de dialogue apparaisse. Existe-t-il un moyen dans Access VBA de savoir si le nouvel enregistrement est collé ou saisi manuellement?
La solution
Vous pouvez personnaliser le menu, par exemple si vous ajoutez du code semblable à un module standard:
Public gvarPasted As Boolean
Function AssignVar()
gvarPasted = True
DoCmd.RunCommand acCmdPaste
End Function
Vous pouvez définir la propriété Action de Coller du menu sur cette fonction à l'aide de l'option de personnalisation du menu de la barre d'outils. Vous devrez également créer votre propre menu contextuel (menu contextuel) à utiliser à la place du menu intégré. Le menu contextuel peut être affecté à tous les formulaires ou uniquement au formulaire qui le nécessite. Il est également possible de désactiver les menus contextuels pour tous les formulaires.
Autres conseils
Peut-être que quelque chose sur les lignes de ceci conviendrait.
Option Compare Database
Public gvarPasted As Boolean
Private Sub txtText_AfterUpdate()
If Not gvarPasted Then
'Open pop-up here
Else
gvarPasted = False
End If
End Sub
Private Sub txtText_KeyDown(KeyCode As Integer, Shift As Integer)
'Detect ctrl-V combination
If Shift = acCtrlMask And KeyCode = vbKeyV Then
gvarPasted = True
End If
End Sub