|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éprouvé
![]() Robert LINCEConseiller psycho-pédagogique Inscription : octobre 2007 Messages : 282 ![]() |
Bonjour.
J'ai développé une application de gestion des bilans de santé en milieu scolaire. Est-il possible de verrouiller définitivement un enregistrement. Concrètement, quand l'utilisateur décide que toutes les données d'un bilan sont corretces, est-il posible d'empêcher toute modification ultérieure de cet enregistrement. Actuellement, j'ai insérer une case à cocher dans la table, et lorsqu'elle est cochée, le formulaire qui affiche les données ne permet plus que cet enregistrement soit modifié. Le code est le suivant : Code :
Merci. |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() |
bonjour à tous
A ma connaissance ce que tu demandes n'est pas faisable; ce qu'on fait par contre et en général (enfin je pense) c'est d'empecher les utilisateurs d'acceder à la fenetre base de données: 1/ en creant par exemple une formulaire qui s'ouvrirait au lancement de l'application 2/ un barre de menu personnalisé pour empecher l'utilisateur d'avoir à sa disposition la barre de menu standard d'access J'espere avoir compris ta preoccupation? @+ |
|
|
00
|
|
|
#3 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 098 ![]() |
Bonjour,
Ne pas oublier de verrouiller les options dans Outils/démarrage... La sécurité utilisateur est plus robuste mais dans l'enseignement on ne peut pas dire que l'environnement soit à risque... Pour un effet maximum de ta routine vba met là également dans l'événement Sur activation. Tout connaitre sur les événements voir le chasseur d'événement (application libre open source à télécharger sur mon espace perso) Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Robert LINCEConseiller psycho-pédagogique Inscription : octobre 2007 Messages : 282 ![]() |
Merci pour vos réponses.
Au démarrage, je masque la base de données et j'ouvre un menu. Comme il est parfois nécessaire de permettre aux utilisateurs d'accéder directement aux données, je n'ai pas désactivé F11. Vos deux réponses confirment ce que je pensais. Que veux-tu dire, Loufab, par verrouiller les options dans outils, démarrage. Moi, j'ai simplement désactivé l'affichage de la fenêtre base de données, et ouvert le formulaire-menu de démarrage de mon application. Faut-il faire plus que ça? A+. |
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 098 ![]() |
Dans cette fenêtre il y a plein de choses interessantes comme :
Autoriser les menus complets Autoriser les menes contextuel Utiliser les touches spéciales d'accés (F11 par exemple ou encore shift... Empécher d'arrêter le code -celui qui te verrouille le form en lecture...) Afficher les barre d'outils... etc Barre de menu : tu peux mettre un menu personnel sans le Fenêtre Afficher... le contextuel qui permet de faire des copier coller : la aussi tu peux mettre ton propre menu. A étudier de près lorsqu'on verrouille
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : avril 2005 Messages : 116 ![]() |
Tu as aussi essayé d'affecter la valeur "true" aux propriétés locked des différents champs?
|
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : août 2003 Messages : 74 ![]() |
Bonjour,
j'ai le même problème, quand j'ai terminé un bilan, j'aimerais que l'enregistrement soit verrouillé, afin de ne plus pouvoir le modifier par la suite. je vais essayer de reprendre la formule précédente, et de verrouiller des champs, au lieu de l'enregistrement entier, car sinon cela me bloque tout le formulaire, et je ne peut plus appeler d'autres bilans.
__________________
Cordialement JC Richard |
|
|
00
|
|
|
#8 |
|
Membre expérimenté
![]() Inscription : juillet 2005 Messages : 555 ![]() |
Bonjour à tous,
Est-ce que le formulaire est en mode appel sur 1 enregistrement ou bien est-ce un formulaire qui fait défiler les enregistrements ? Dans le premier cas : sur l'évènement ouverture on verrouille le formulaire et tous les contrôles c'est simple c'est dans l'aide access. Dans le second cas c'est dans l'évènement sur activation on peut faire la même chose. J'ai des contraintes similaires avec des pièces passées en compta et qui sont définitivement verrouillées. a+ |
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Inscription : août 2003 Messages : 74 ![]() |
Bonjour,
dans mon entête de formulaire j'ai un champ NOM avec une liste déroulante qui me permet d'afficher une fiche dans le corps du formulaire. Une fois le formulaire rempli, j'ai un bouton "enregister le formulaire" qui actualise l'enregistrement, et j'aimerais rajouter une ligne de code pour le verrouiller. De même un autre bouton permettrait de le déverrouiller au cas ou j'aie des modifs ultérieures à apporter. Avec la case à cocher verrou, il bloque tout le formulaire, y compris l'entête, ce qui bloque l'accès à la liste déroulante. Il faut alors que je ferme et ouvre le formulaire pour que cela fonctionne. Quelle est la solution?
__________________
Cordialement JC Richard |
|
|
00
|
|
|
#10 | |
|
Membre expérimenté
![]() Inscription : juillet 2005 Messages : 555 ![]() |
hum désolé,
Citation:
pour moi : des frontaux compilés pour tous les utilisateurs, ce qui évite qu'ils accèdent aux tables ensuite la seule vraie façon d'empêcher une modification c'est l'archivage sur une base en lecture seule. a+ |
|
|
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() Inscription : août 2003 Messages : 74 ![]() |
Bonjour,
c'est quoi au juste des frontaux compilés ?
__________________
Cordialement JC Richard |
|
|
00
|
|
|
#12 |
|
Membre expérimenté
![]() Inscription : juillet 2005 Messages : 555 ![]() |
Bonjour,
En règle générale pour un accès multi-utilisateurs on a : - une base de données centrale qui a juste les tables et le schéma. - Les utilisateurs si connectent au travers d'un frontal de présentation de données qui peut être compilé c'est à dire que l'extension n'est pas MDB mais MDE. On dit aussi fontral et dorsale le tout sous access évidement a+ |
|
|
00
|
|
|
#13 | |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 098 ![]() |
Citation:
Le frontal, compilé ou non, n'empêche pas un utilisateur d'accéder au données. Il permet -entre autre- d'avoir un fonctionnement plus robuste en multi-utilisateur. L'utilisateur a besoin des droits systèmes en Ajout/écriture/suppression sur l'espace de partage des données (fonctionnement du ldb). Sans la sécurité utilisateur (format post 2007) l'utilisateur de l'application a accés aux tables. Il peut TOUT faire, ajout, suppression, modification et même destruction pure et simple du fichier de données. Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
|
00
|
|
|
#14 |
|
Futur Membre du Club
![]() Inscription : août 2003 Messages : 74 ![]() |
Bonjour les spécialistes,
et pour revenir à ma question, de verrouillage d'un enregistrement, sans bloquer tout le formulaire, avez-vous une idée ?
__________________
Cordialement JC Richard |
|
|
00
|
|
|
#15 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 098 ![]() |
Bonjour,
Il y a plusieurs solutions de la plus simple et la moins (pas) sécurisé à la plus complexe et donc la plus sécurisé. Celle pas du tout sécurisé, celle qui ne resiste pas à un utilisateur débrouillard : Coté table, rajouter un champ oui/non initialisé à Non par défaut. le nommer Verrouillé. Coté IHM, rajouter ce champ dans le formulaire (caché ou non), sur l'événement Sur Activation (à chaque changement d'enregistrement) tester la valeur du champ verrouillé et changer la propriété Modif autorisé en conséquence. Ne pas oublier le test et l'opération inverse car cette propriété reste d'un enregistrement à l'autre. Ne pas oublier également la gestion de ce champ, passage de Non à Oui selon ses attentes. On notera que l'utilisateur à la possibilité d'aller directement sur la table pour modifier ce champ. Donc sécurité ZERO ! Méthode sécurisé mais nécessitant la mise en place de la sécurité utilisateur + requetes sécurisés. Verrouiller la table en lecture seule pour tous les utilisateurs sauf le superUtilisateur. Rajouter le système de verrouillage comme expliqué précédemment. Modifier les accés (modification/suppression/ajout) à cette table en passant par une requete sécurisé et codée en VBA en utilisant l'option WITH OWNERACCESS OPTION conditionné par le champ Verrouillé. Cette solution est plus longue à mettre en oeuvre mais totalement sécurisé. Le problème est qu'elle ne fonctionne plus en 2007. Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#16 |
|
Futur Membre du Club
![]() Inscription : août 2003 Messages : 74 ![]() |
Merci,
la partie non sécurisée me convient, pour le code, je n'y connais rien, est ce que le code décrit en début de ce forum est suffisant ? Cordialement.
__________________
Cordialement JC Richard |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com