Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/06/2011, 15h01   #1
Nouveau Membre du Club
 
Homme
ingénieur essais électronique
Inscription : mai 2011
Messages : 128
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : ingénieur essais électronique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 128
Points : 37
Points : 37
Par défaut gestion touche entrée

Bonjour,

Au risque de répéter mais je n'est rien trouver sur le net, seulement une piste.

J'ai un formulaire avec une liste déroulante (via une requete) et un bouton OK.

En appuyant sur OK, j'ouvre un autre formulaire avec les data relative à la sélection de ma liste. Je voudrais qu'il se passe la même chose mais en appuyant sur la touche entrée.

Pour le moment voila ce que j'ai sur ma liste déroulante :

Code :
1
2
3
4
5
6
7
8
9
Private Sub Modifiable121_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn Then
        If IsNull(Modifiable121.Column(0)) Then
        MsgBox "Veuillez entrer un numéro proto valide"
        Else
        DoCmd.OpenForm "Fiche tracteur"
        End If
    End If
End Sub
Ce qui est bizarre, dès que j'appuie sur entrée j'ai un enregistrement vide. La deuxième fois que j'appuie ca marche. Une histoirede focus mais je ne comprend rien à cette histoire.

Question complémentaire : Qu'est ce que le focus dans access ?

Merci
sylv20 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 16h09   #2
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 209
Points : 6 209
Envoyer un message via MSN à argyronet
Bonjour,

L'histoire du focus, comme tu dis se traduit par le fait que le contrôle doit avoir le focus si tu veux appuyer sur Entrée et déclencher quelque chose depuis ce même contrôle.

Par ailleurs, il te faut une condition Where, sans quoi tu ne peux ouvrir le formulaire sur le proto sélectionné.
Code :
1
2
3
4
5
6
7
8
9
10
11
Private Sub cboProtoList_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn Then
        If IsNull(Me!cboProtoList) Then
            MsgBox "Veuillez entrer un numéro proto dans la liste !"
            cboProtoList.SetFocus
            cboProtoList.Dropdown
        Else
            DoCmd.OpenForm "Fiche tracteur", , , "[IDProto]=" & Me!cboProtoList
        End If
    End If
End Sub
J'ai nommé le contrôle et il t'est recommandé de faire de même pour tous tes objets.

Le Focus définit le fait qu'un contrôle est prêt à être sollicité (est généralement en surbrillance) en y ajoutant des données ou en lui appliquant des propriétés en général avec le clavier.
Par exemple, une case à cocher qui possède le focus peut voir son état coché en appuyant sur le touche espace.

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 10h03   #3
Nouveau Membre du Club
 
Homme
ingénieur essais électronique
Inscription : mai 2011
Messages : 128
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : ingénieur essais électronique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 128
Points : 37
Points : 37
Je ne comprend pas ca fait pareil.

J'ai mis le focus sur le modifiable121 dès le form load (comme cela le curseur est directement dans la case).

J'ai simplifié au maximum le code :

Code :
1
2
3
4
5
6
7
Private Sub Modifiable121_KeyDown(KeyCode As Integer, Shift As Integer)
 
    If KeyCode = vbKeyReturn Then
 
            DoCmd.OpenForm "Fiche tracteur", , , "[Numéro Proto]=" & Me!Modifiable121.Value
        End If
End Sub
"Numéro Proto" est le nom du champ (et clé primaire) de ma table fiche tracteur.

Voila l'erreru que j'ai en image jointe.
Images attachées
Type de fichier : jpg erreur.jpg (22,4 Ko, 3 affichages)
sylv20 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 10h28   #4
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 209
Points : 6 209
Envoyer un message via MSN à argyronet
Si tu poses le .Value, cela signifie que la valeur numérique correspondante (Column(0) ?) doit être numérique... S'il s'agit d'un String, il doit être entre quotes ;
mais du fait que je lise Numéro Proto, je suppose que c'est un numérique donc tu dois écrire :
Code :
DoCmd.OpenForm "Fiche tracteur", , , "[Numéro Proto]=" & Me!Modifiable121.Column(X)
où X représente le N° de colonne de la valeur numérique correspondante...
Et je réitère ma remarque, nomme tes contrôles, Modifiable121, ça ne signifie rien.

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 10h59   #5
Membre du Club
 
Inscription : novembre 2006
Messages : 70
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 70
Points : 44
Points : 44
Salut sylv20
Je prends le train en marche et je ne suis pas sûr de bien comprendre
Mais je crois que ce que tu veux faire, c'est choisir une valeur dans ta liste déroulante et ensuite affiché un formulaire avec le bouton OK. Pourtant tu peux faire plus simple et plus rapide.
Mets simplement ton code dans l’évènement "Après Màj" de ton combo, dès qu'une valeur sera choisie, le formulaire s'ouvrira
samloba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 11h16   #6
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 209
Points : 6 209
Envoyer un message via MSN à argyronet
samloba, tu n'as pas lu sa requête initiale...
Citation:
Envoyé par sylv20
Je voudrais qu'il se passe la même chose mais en appuyant sur la touche entrée.
Ceci dit, cela peut en quelque sorte contraindre à utiliser conjointement la souris et le clavier... ce qui est peu pratique.
Donc l'AfterUpdate reste idéal sauf si la demande initiale est justifiée par un temps nécessaire avant validation.

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 10h53   #7
Nouveau Membre du Club
 
Homme
ingénieur essais électronique
Inscription : mai 2011
Messages : 128
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : ingénieur essais électronique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 128
Points : 37
Points : 37
C'esst beaucoup mieux comme ca. Je ne connaissais pas afterupdate.

MErci pour tout.
sylv20 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h14.


 
 
 
 
Partenaires

Hébergement Web