Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 07/01/2011, 19h57   #1
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 64
Points : 26
Points : 26
Par défaut Interdire le passage à un autre enregistrement

Bonsoir,

Je souhaite interdire le changement d'enregistrement quand je suis en mode création.
La solution de bloquer le molette pourquoi pas mais on peut toujours changer d'enregistrement avec les flèches de direction ?
C'est quoi la propriété cycle ?

Alex
acama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 22h45   #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 210
Points : 6 210
Envoyer un message via MSN à argyronet
Citation:
Envoyé par acama Voir le message
Je souhaite interdire le changement d'enregistrement quand je suis en mode création.
En mode création ???

Citation:
Envoyé par acama Voir le message
C'est quoi la propriété cycle ?

La propriété Cycle te permet de décider ce qui se produit lorsque tu appuies sur la touche TAB lorsque le focus est positionner sur le dernier contrôle du formulaire actif.
Le plus souvent, la propriété par défaut est "Tous les enregistrements" ce qui signifie que tu passeras à l'enregistrement suivant dans les modalité évoqué ci-dessus.

Argy


P.S. L'aide 2007 est ambigüe sur ce sujet, en tout cas dans ma version. (Général au lieu de Tous les enregistrements).
J'ai remonté l'info à MS.
__________________
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 07/01/2011, 23h01   #3
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 64
Points : 26
Points : 26
Merci pour ta réponse.
En fait, je mets le formulaire en mode ajout (oui création était pas le bon mot...) => recordset.addnew.
Je voudrais controler ce qui a été saisie avant d'enregistrer le record. J'ai donc enlever les boutons.
Mais l'utilisateur peut toujours soit utiliser la roulette ou les fleches de direction.
J'ai bien essayer d'utiliser l'évenement _current, mais comment annuler le passage à l'enregistrement si je detecte que les data saisies sont erronées ?

Pour cycle je vois pas comment ca peut m'aider, ca n'a ps d'impact sur la roulette ou sur les fléches de direction

Maintenant je pense a faire une copie de mon formulaire sans lien avec un recordset uniquement pour gérer le mode ajout.
acama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 23h06   #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 210
Points : 6 210
Envoyer un message via MSN à argyronet
La propriété Cycle est à définir si le clavier est utilisé (TAB).
Il est tout de même recommandé de la définir à "Enregistrement en cours"
Selon la version d'Access (<2007), tu dois mettre en place la routine de MouseWheel.dll ou la version NoReg des tuto stipulés dans cette file.

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 07/01/2011, 23h16   #5
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 64
Points : 26
Points : 26
Ok pour bloquer la roulette (c'est lourd juste éviter de passer à un autre enregistrement), mais quand est il des fleches de direction?
Si j'ai compris avec Cycle on gere tab mais pas les fleches.

Alex
acama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 23h25   #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 210
Points : 6 210
Envoyer un message via MSN à argyronet
Il y a différentes solutions pour empêcher de passer au suivant :
1/ Un formulaire nanti de contrôles indépendant et lui-même sans source ave un bouton Annuler et un autre enregistrer (ou l'enregistrement s'effectue avec un INSERT INTO via CurrentDB)
2/ Un procédé de surveillance des valeurs qui si elles ne sont pas toutes valide empêche le passage au suivant (Usage de Bookmark).
[...]

Argy

Moi j'use le plus souvent de la 1.
__________________
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 07/01/2011, 23h37   #7
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 64
Points : 26
Points : 26
Bon je vais me lancer dans la solution 1
Merci Argy
acama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2011, 15h59   #8
Expert Confirmé
 
Avatar de FreeAccess
 
Homme
Inscription : mars 2006
Messages : 2 309
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2006
Messages : 2 309
Points : 2 847
Points : 2 847
Bonjour,

Citation:
...mais quand est il des fleches de direction?
Sur l'événement "Sur touche appuyée" de ton formulaire...
Code :
1
2
3
4
5
6
7
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'Inhibe l'action des touches flèches
Select Case KeyCode
     Case 33, 34, 38, 40 'touches flèche
          KeyCode = 0
End Select
End Sub
...ne pas oublier de mettre l'événement "Aperçu des touches" = oui
__________________
FreeAccess
"Petit à petit l'araignée tisse sa toile"
FreeAccess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2011, 17h04   #9
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 64
Points : 26
Points : 26
Merci FreeAccess.
J'ai finalement choisi de faire un formulaire non lié à une source de données pour saisir les ajouts d'enregistrement.
C'était soit gérer la roulette, les fleches et masquer les boutons soit créer le formulaire indépendant.
Finalement je ne sais pas ce qui est le plus efficace et/ou le moins long...
Vos avis sont les bienvenu.
Alex,
acama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 09h55   #10
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 210
Points : 6 210
Envoyer un message via MSN à argyronet
La performance est négligeable entre les deux...
Ce n'est pa la même façon de coder.
  • Dans un cas, l'addition d'une instanciation de DLL est nécessaire plus tout un jeu d'événements associé (keyPress etc...)
  • Dans l'autre, pas ou peu de code puisque c'est un simple INSERT.
Dans les deux cas, une vérif des entrées.
=> quand je dis indépendant, cela ne t'interdit pas d'avoir des zones de liste alimentées par des tables/requêtes pour interdire certaines saisies... Du fait que ce soit un formulaire dédié, c'est autrement plus souple et surtout sans risques coté données

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 10/01/2011, 11h58   #11
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 64
Points : 26
Points : 26
Je trouve effectivement la solution du formulaire indépendant plus sécure (j'ai effectivement gardé des zones de liste avec requête sur la bdd pour faciliter la saise).
En fait j'ouvre ce formulaire en mode Acdialog.
Sur le bouton "enregistrer" du formulaire indépendant,
1) je teste ce qui a été saisie
2) je fait un Addnew dans le recordset du formulaire précédent (celui qui a permit d'appeler mon formulaire indépendant de création).
3) je ferme le formulaire indépendant
Du coup, ma fenetre précédente a bien le nouvel enregistrement visible (avec un petit refresh pour mettre à jour également le sous fomulaire lié)

Ca fonctionne de façon sécurisé, mais comme je suis pas un as, il y a peut être mieux...

A+
acama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 12h27   #12
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 210
Points : 6 210
Envoyer un message via MSN à argyronet
Humm, je t'avais évoqué le INSERT INTO via l'objet Database représenté par CurrentDB().
Le AddNew t'oblige à manipuler un RecordSet avec les petits aléas qu'il ne faut pas oublier (.Close et Nothing notamment pour les objets).
Mais si tu t'en es sorti ainsi, tant mieux.
Pour parfaire le tout tu peux, à la suite de ton enregistrement effectuer le Refresh depuis ce même formulaire... Ca fait plus "pro".

Je te laisse chercher...

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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h07.


 
 
 
 
Partenaires

Hébergement Web