|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 151 ![]() |
Bonjour,
Dans ma base de donnée de gestion des membres d'une association, j'ai :
Comment verrouiller tous les enregistrements où [Année] <> Annéee(Date()) mais pas l'enregistrement où [Année] = Annéee(Date()) ? Jean-Pierre |
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour
Cela devrait fonctionner en passant par la Mise en Forme Conditionnel où tu peux activer ou non un champ. La mise en forme conditionnelle sous Access, notamment cette partie : http://warin.developpez.com/access/mfc/#L2.4.2 Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#3 | |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour,
Citation:
Manipuler des dates réserve souvent des surprises. Une piste possible : dans ton cas, il se peut que tu compares une année exprimée en 4 chiffres à une année exprimée en 2 chiffres : "2011" et "11" sont différents tout comme "2010" et "11". Ce qui te fait croire que ta macro fonctionne quand c'est différent. C'est toujours différent ! Essaie d'afficher les 2 valeurs, pour vérifier. PS : l'occasion de saluer Philippe ! |
|
|
|
00
|
|
|
#4 | |
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 151 ![]() |
Citation:
Dans mon sous-formulaire, avec la mise en forme conditionnelle les champs sont en grisé si l'année de l'enregistrement n'est pas l'année en cours sauf pour les cases à cocher. Mais je cherche à verrouiller les enregistrements si l'année de l'enregistrement n'est pas l'année en cours, ceci dans un sous-formulaire en mode feuille de données. Jean-Pierre |
|
|
|
00
|
|
|
#5 | |
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 151 ![]() |
Citation:
Dans ma macro, si la condition : [Cotisations_tout].Form![Année] <> VraiFaux(Mois(Date())<9;Année(Date())-1;Année(Date())) (pour obtenir 2010 entre le 01-sept et le 31-août, [Année] est un nombre entier) est vérifiée je verrouille tous les champs du sous-formulaire, si non je déverrouille tous les champs. Ce qui ne semble pas poser de difficulté d'interprétation. La seule chose qui ne fonctionne pas : soit tous les enregistrements du sous-formulaire en mode feuille de données sont verouillés soit ils ne le sont pas. Ce n'est pas ce que je désire. Jean-Pierre |
|
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour,
Pour vérifier, dans la fenêtre d'exécution saisis : Code :
? iif(month(Date())<9,year(Date())-1,year(Date())) <enter> Code :
? Forms !Membres. [Cotisations_tout].Form.[Année] <enter> Que donne ceci : Code :
? iif(month(Date())<9,year(Date())-1,year(Date())) = Forms !Membres. [Cotisations_tout].Form.[Année] |
|
|
00
|
|
|
#7 | ||
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 151 ![]() |
Bonsoir,
Excusez moi pour ma réaction tardive, mais écrire du code n'est pas simple pour moi. Après beaucoup de tatonnements, j'ai écrit : Code :
Que faut-il ajouter ou modifier pour empécher la suppression des enregistrements des années précedentes? Existe-t-il une méthôde plus élégante pour verrouiller l'enregistrement et non chaque champ? Jean-Pierre |
||
|
|
00
|
|
|
#8 | |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonsoir,
Citation:
Pour te documenter sur la solution à ton problème : - ouvre ton formulaire en mode création ; - clique sur la propriété "suppr autorisée" et enfonce <F1> ; => l'aide Access t'affiche la bonne page avec des exemples de code. Après beaucoup de tâtonnements... tu finiras par jongler. NB. Dans du code, si tu places le curseur de la souris sur un mot-clé, l'aide Access réagit de même. Personnellement, c'est comme cela que j'ai appris. Si tu bloques, reviens et on t'aidera. Si tu réussis, reviens le dire, ça fait plaisir ! Courage. |
|
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 151 ![]() |
Bonsoir,
Merci, grâce à ton aide, j'ai ajouté : pour interdire la suppression de l'enregistrement et pour l'autoriser et tout fonctionne. Jean-Pierre |
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 151 ![]() |
Bonjour,
Je viens de m'apercevoir que si la suppression d'un enregistrement d'une saison précédente n'est plus possible, la supression de tous les enregistrements présents dans le sous-formulaire en les sélectionnant tous est possible Comment interdire cela? Jean-Pierre |
|
|
00
|
|
|
#11 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour,
Essaie ceci : - dans la propriété suppression autorisée, tu mets "non" ; - dans l'évènement "sur activation" (current), si tu es dans les conditions, tu libères le verrou ; - dans l'évènement "après suppression", tu replaces le verrou. |
|
|
00
|
|
|
#12 | ||
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 151 ![]() |
Bonsoir,
Merci pour ta réponse. La manip proposée ne règle pas le problème. Pour tenter de résoudre le problème, j'ai : * Mis dans les propriétés du sous-formulaire "Supp autorisé" à NON * Supprimé l'autorisation de suppression dans l'évennement "Sur activation" lorsque la saison de l'enregistrement est supérieure ou égale à la saison en cours * Placé sur l'évennement "Avant suppression" Code :
* Placé sur l'évennement "Après suppression" et ça ne fonctionne pas. Le déverrouillage ne se fait pas. Où est l'erreur? Jean-Pierre PS : Lorsque le sous-formulaire ne comporte pas d'entegistrement pour la saison en cours, une sélection de tous les enregistrements par le bouton en haut à gauche permet de les supprimer, ce que je ne désire pas!! |
||
|
|
00
|
|
|
#13 | |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour,
Citation:
Si la date du formulaire principal est... alors, verrouiller le formulaire principal. N'est-ce pas le sous-formulaire que tu veux verrouiller ? => Code :
me.Sous_formulaire_cotisations.form..AllowDeletions = True |
|
|
|
00
|
|
|
#14 |
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 151 ![]() |
Bonjour,
Ce que je veux : "verrouiller est la suppression des enregistrements des années passées dans le sous-formulaire en laissant possible la suppression des enregistrements de l'année en cours ou à venir". La solution actuelle : *verrouiller le sous-formulaire dans les propriétés,fonctionne partiellement : un enregistrement passé ne peut pas être supprimé, l'enregistrement de la saison en cours ou à venir peut être supprimé. Mais la sélection de touts les enregistrements permet de tous les supprimer y compris l'année en cours ou à venir!!! Une solution, si elle est possible, serait de neutraliser le bouton en haut à gauche du sous-formulaire (mode feuille de données) mais il sera encore possible de sélectionner tous les enregistrements en maintenant la touche [Maj] enfoncée. Jean-Pierre |
|
|
00
|
|
|
#15 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Vois l’exemple en annexe.
Le sous-formulaire : suppression autorisée : non. => impossible de supprimer tout ou partie ! Lorsque les conditions sont rencontrées, un bouton « Supprimer » est rendu visible. Si tu cliques sur ce bouton, l’enregistrement est supprimé. En fait, on exécute une requête qui supprime cet enregistrement-là. Vois le code associé à « sur activation » du sous-formulaire. Vois le code associé à « sur clic » du bouton « supprimer » dans le formulaire principal. J’y ai mis du commentaire qui te permettra de comprendre le code. N’oublie pas <F1> et reviens si problème. |
|
|
00
|
|
|
#16 |
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 151 ![]() |
Bonjour Claude,
Merci ton exemple adapté à ma Bd fonctionne nickel. Jean-Pierre |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com