2008-10-20 4 views
3

Je travaille pour un fabricant d'armoires sur mesure et nous écrivons notre propre programme de tarification pour notre produit. J'ai un formulaire qui a une boîte de pop-up afin que l'utilisateur puisse choisir le côté de la charnière pour les portes ambiguës sur cette armoire. J'ai travaillé jusqu'ici, mais quand ils copient un élément et le collent en bas, je ne veux pas que la boîte pop-up apparaisse. Est-il possible dans Access VBA de savoir si le nouvel enregistrement est collé ou entré manuellement?Attraper un événement Coller?

Répondre

1

Vous pouvez personnaliser le menu, par exemple, si vous ajoutez le code comme ceci à un module standard:

Public gvarPasted As Boolean 

Function AssignVar() 
    gvarPasted = True 
    DoCmd.RunCommand acCmdPaste 
End Function 

Vous pouvez définir la propriété Action Coller dans le menu à cette fonction à l'aide de la personnalisation option 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 requiert. Il est également possible de désactiver les menus contextuels pour tous les formulaires.

+0

Est-ce que ça va aussi attraper un ctrl-V? – BIBD

+0

Malheureusement, non. Ce n'est en aucun cas soigné. – Fionnuala

+0

Si vous prenez cette route, et attraper CTRL + V serait le seul problème restant à résoudre, je pense qu'il pourrait être fait en utilisant le gestionnaire d'événements KeyPress (ou KeyUp), n'est-ce pas? Pas propre, mais ... – Yarik

3

Peut-être que quelque chose dans les lignes de ce serait approprié.

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 
+0

Cela fonctionne pour les Ctrl + V, mais pas pour les clics droits. – Hill

Questions connexes