Proriétés événements ACCESS

Proriétés événements ACCESS - VB/VBA/VBS - Programmation

Marsh Posté le 12-04-2005 à 08:18:03    

Je suis en stage et je dois créer une base de données du personnel sur Access.
J'ai besoin de répondre à l'évenement KeyDown mais cette propriété ne fonctionne pas quand les modifs ne sont pas autorisées.
ya-t-il un autre moyen ??????   :??:  
 
Merci !

Reply

Marsh Posté le 12-04-2005 à 08:18:03   

Reply

Marsh Posté le 12-04-2005 à 10:26:05    

Je pense plutôt que ton problème vient de la propriété "KeyPreview" (ou Aperçu des touches en français je crois) du formulaire qui par défaut est à false...
 
Passe le à True et ça devrait aller mieux!

Reply

Marsh Posté le 12-04-2005 à 11:01:33    

KeyPreview est déjà à True , c'est pour ça que je ne comprends pas pourquoi ça ne fonctionne pas...
On dirait que puisque les modif ne sont pas autorisées, il ne prend pas en compte l'événement Keydown, pourtant le contrôle n'est pas vérouillé....
 
Mais merci pour l'idée .

Reply

Marsh Posté le 12-04-2005 à 14:35:14    

Ce qui est zarbi c'est que j'ai essayé chez moi et ça fonctionne sans problèmes.
 
Tu as quelle version d'Access? Peux-tu donner plus de précision ou donner un bout de code qui ne fonctionne pas?
 
Est-ce que tu as des sous-formulaires?

Reply

Marsh Posté le 12-04-2005 à 15:09:25    

J'ai la version Access 97 dans l'entreprise
J'ai effectivement des sous formulaires attchés à celui ci

Reply

Marsh Posté le 12-04-2005 à 15:11:39    

Voici un bout de code qui ne fonctionne pas
 
Private Sub Cplt_adresse_Keydown(Keycode As Integer, Shift As Integer)
Dim Message As String
Dim Reponse As Integer
    Reponse = MsgBox("Vous vous apprêtez à modifier des données." & vbLf & vbLf & "Souhaitez-vous continuer ?", _
            vbYesNo + vbQuestion + vbDefaultButton2 + vbSystemModal, "Modification de données" )
    If Reponse = vbNo Then Keycode = 0
   
  End Sub
 

Reply

Marsh Posté le 12-04-2005 à 15:14:55    

Et ça marche quand les modifs sont autorisées sur le formulaire !

Reply

Marsh Posté le 12-04-2005 à 16:53:55    

Ah ok... je comprends mieux maintenant...
 
Alors, il me semble que c'est logique que cela ne fonctionne pas... Je n'ai pas vérifié "de visu" avec un petit test sous Access mais quand ton formulaire n'accepte pas les modifications, les contrôles liés à la BD ne sont pas "actifs" donc forcément ils ne captent pas les events...
 
Pour moi, ce que tu dois faire c'est de proposer un bouton qui permet à ton utilisateur de partir en modification sur le formulaire plutôt que de lui poser la question lorsqu'il essaie de saisir qqch... Ce serait moins déroutant pour tes utilisateurs...
 
Par contre, si tu veux garder ta façon de faire, tu seras obligé de gérer ça à la main. Ce que je te propose, c'est de laisser ton formulaire accepter les modifications de les données mais d'avoir une variable globale (pas très propre mais bon) qui te dit s'il accepte ou non les modifs. Ton code deviendrait:
 
Private Sub Cplt_adresse_Keydown(Keycode As Integer, Shift As Integer)  
  If pblnModif Then
    If  MsgBox("blabla", vbYesNo + ...) = vbNo Then  
      Keycode = 0  
      pblnModif = False
    Else
     pblnModif = True
    End If
  End If
End Sub  
 
Dans ce bout de code la variable globale est bien entendu pblnModif (de type boolean).
 
Mais bon, je trouve pas très propre cette manière de faire... Je pense qu'il serait mieux de passer par un bouton "Modifier" sur lequel ton utilisateur est obligé de clicker avant de modifier!
 
Hope this helps!

Reply

Marsh Posté le 13-04-2005 à 08:30:39    

Merci merci beaucoup !!!
Je pense que je vais garder l'idée du bouton, ça fera plus propre et mes utilisateurs préféreront ...
 
Encore Merci de m'avoir consacré du temps.
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed