OVH Cloud OVH Cloud

verrouillage-déverrouillage à la demande d'un formulaire

5 réponses
Avatar
lecrol
Bonjour
Sur un formulaire comportant des champs de saisie clavier et des champs
calculés automatiquement, je voudrais empêcher les modifs intempestives.
Est-il possible de verrouiller le formulaire, sauf ajout de nouveaux records
? Pour les records existants, un bouton de commande devrait permettre de
"déverrouiller" le seul enregistrement en cours quand, par exception, il doit
être modifié. Mais le verrouillage devrait se rétablir aussitôt après
l'écriture. Comment réaliser un tel exploit ? D'avance, un grand merci !
Roland

5 réponses

Avatar
lecrol
mille excuses En fouillant dans la FAQ, j'ai trouvé un post sur cette même
demande Je vais essayer et si ça ne marchait pas, je reviendrais vous
présenter mes doléances ( amicales)
Roland
------------------------------------
"lecrol" wrote:

Bonjour
Sur un formulaire comportant des champs de saisie clavier et des champs
calculés automatiquement, je voudrais empêcher les modifs intempestives.
Est-il possible de verrouiller le formulaire, sauf ajout de nouveaux records
? Pour les records existants, un bouton de commande devrait permettre de
"déverrouiller" le seul enregistrement en cours quand, par exception, il doit
être modifié. Mais le verrouillage devrait se rétablir aussitôt après
l'écriture. Comment réaliser un tel exploit ? D'avance, un grand merci !
Roland



Avatar
lecrol
Grrrrrrrr.... Y'a kamoa ksa arrrive ?
J'ai essayé la solution ci-dessous, pourtant toute simple, proposée sur un
ancien post du forum Et... ça ne MARCHE PAS ! Je peux toujours saisir et
modifier le formulaire !
Qui saura me dire ?
Cordialment,
Roland
i
Private Sub Form_Current()
Me.AllowEdits = False ' modif interdite
End Sub
---
et sur clic du bouton:
Private Sub Commande1_Click()
Me.AllowEdits = True ' modif autorisée
End Sub
----------------------------------------

"lecrol" wrote:

mille excuses En fouillant dans la FAQ, j'ai trouvé un post sur cette même
demande Je vais essayer et si ça ne marchait pas, je reviendrais vous
présenter mes doléances ( amicales)
Roland
------------------------------------
"lecrol" wrote:

> Bonjour
> Sur un formulaire comportant des champs de saisie clavier et des champs
> calculés automatiquement, je voudrais empêcher les modifs intempestives.
> Est-il possible de verrouiller le formulaire, sauf ajout de nouveaux records
> ? Pour les records existants, un bouton de commande devrait permettre de
> "déverrouiller" le seul enregistrement en cours quand, par exception, il doit
> être modifié. Mais le verrouillage devrait se rétablir aussitôt après
> l'écriture. Comment réaliser un tel exploit ? D'avance, un grand merci !
> Roland
>


Avatar
Fabien
lecrol wrote:
Grrrrrrrr.... Y'a kamoa ksa arrrive ?
J'ai essayé la solution ci-dessous, pourtant toute simple, proposée sur un
ancien post du forum Et... ça ne MARCHE PAS ! Je peux toujours saisir et
modifier le formulaire !
Qui saura me dire ?
Cordialment,
Roland
i
Private Sub Form_Current()
Me.AllowEdits = False ' modif interdite
End Sub
---
et sur clic du bouton:
Private Sub Commande1_Click()
Me.AllowEdits = True ' modif autorisée
End Sub
----------------------------------------

"lecrol" wrote:

mille excuses En fouillant dans la FAQ, j'ai trouvé un post sur cette même
demande Je vais essayer et si ça ne marchait pas, je reviendrais vous
présenter mes doléances ( amicales)
Roland
------------------------------------
"lecrol" wrote:

Bonjour
Sur un formulaire comportant des champs de saisie clavier et des champs
calculés automatiquement, je voudrais empêcher les modifs intempestives.
Est-il possible de verrouiller le formulaire, sauf ajout de nouveaux records
? Pour les records existants, un bouton de commande devrait permettre de
"déverrouiller" le seul enregistrement en cours quand, par exception, il doit
être modifié. Mais le verrouillage devrait se rétablir aussitôt après
l'écriture. Comment réaliser un tel exploit ? D'avance, un grand merci !
Roland







Salut,
Completes par

Me.AllowEdits = not(Me.AllowEdits) ' On édite ou pas
Me.AllowAdditions = not(Me.AllowAdditions) ' on ajoute ou pas
Me.AllowDeletions = not(Me.AllowDeletions) ' et on supprime ou pas
@+
Avatar
lecrol
Merci Fabien et les autres de vos lumières ! ça y est, je m'en suis tiré.
Mon formulaire est a présent bien bloqué aux modifs et ne peut qu'être
consulté, ce que je voulais !

A présent, il me faudait une autre entrée dans mon menu de départ pour
ouvrir ce même formulaire, mais cette fois en autorisant et les modifs et les
ajouts. J'imaginais copier sous un autre nom mon formulaire, en en otant les
interditions à l'activation. Je ne vois pas d'autre solution, en effet. Car
comment savoir, à l'activation du formulaire, quelle touche du menu général a
été choisie pour l'appeler ?

Merci encore
Roland
Avatar
Fabien
lecrol wrote:
Merci Fabien et les autres de vos lumières ! ça y est, je m'en suis tiré.
Mon formulaire est a présent bien bloqué aux modifs et ne peut qu'être
consulté, ce que je voulais !

A présent, il me faudait une autre entrée dans mon menu de départ pour
ouvrir ce même formulaire, mais cette fois en autorisant et les modifs et les
ajouts. J'imaginais copier sous un autre nom mon formulaire, en en otant les
interditions à l'activation. Je ne vois pas d'autre solution, en effet. Car
comment savoir, à l'activation du formulaire, quelle touche du menu général a
été choisie pour l'appeler ?

Merci encore
Roland



Bonjour,
Les option disponibles dans la commande docmd.openform permettent de
préciser comment tu veux que ton formulaire fonctionne.
Cf l'aide
"La méthode OpenForm exécute l'action OuvrirFormulaire dans Visual Basic.

expression.OpenForm(NomFormulaire, Afficher, NomFiltre, ConditionWhere,
ModeDonnées, Modefenêtre, ArgOuverture)
expression Requise. Expression renvoyant l'un des objets figurant
dans la liste Application.

NomFormulaire Variant requis.Expression chaîne qui est le nom valide
d'un formulaire dans la base de données en cours. Si vous exécutez du
code Visual Basic contenant la méthode OpenForm dans une base de données
bibliothèque, Microsoft Access recherche le formulaire portant ce nom
dans la base de données bibliothèque, puis dans la base de données en cours.

Afficher AcFormView facultatif.

AcFormView peut être l'une de ces constantes AcFormView.
acDesign
acFormDS
acFormPivotChart
acFormPivotTable
acNormal Constante par défaut. Ouvre le formulaire en mode Formulaire.
acPreview
Si vous laissez cet argument vierge, la constante par défaut (acNormal)
est choisie.


NomFiltre Variant facultatif. Expression chaîne qui est le nom
valide d'une requête dans la base de données en cours.

ConditionWhere Variant facultatif. Clause SQL WHERE valide sans le
mot WHERE.

ModeDonnées AcFormOpenDataMode facultatif. Le mode de saisie des
données pour le formulaire. S'applique uniquement aux formulaires
ouverts en mode Formulaire ou Feuille de données.

AcFormOpenDataMode peut être l'une de ces constantes AcFormOpenDataMode.
acFormAdd L'utilisateur peut ajouter de nouveaux enregistrements mais il
ne peut pas modifier ceux qui existent.
acFormEdit L'utilisateur peut modifier les enregistrements existants et
en ajouter de nouveaux.
acFormPropertySettings constante par défaut
acFormReadOnly L'utilisateur peut seulement afficher les enregistrements.
Si vous laissez cet argument vierge, la valeur par défaut
(acFormPropertySettings) est choisie, Microsoft Access ouvre le
formulaire dans le mode de données défini par les propriétés AllowEdits,
AllowDeletions, AllowAdditions et DataEntry du formulaire.


ModeFenêtre AcWindowMode facultatif. Le mode de fenêtre dans lequel
s'ouvre le formulaire.

AcWindowMode peut être l'une de ces constantes AcWindowMode.
acDialog Les propriétés Modal et PopUp du formulaire sont réglées sur Yes.
acHidden Le formulaire est masqué.
acIcon Le formulaire s'ouvre sous forme réduite dans la barre des tâches
Windows.
acWindowNormal par défaut Le formulaire est dans le mode défini par ses
propriétés
Si vous laissez cet argument vierge, c'est la constante par défaut
(acWindowNormal) qui est choisie.


ArgOuverture Variant facultatif. Expression chaîne. Cette expression
sert à définir la propriété OpenArgs du formulaire. Ce paramètre peut
ensuite être utilisé par du code dans un module d'un formulaire, comme
dans la procédure événementielle Open. Vous pouvez également faire
référence à la propriété OpenArgs dans des macros et des expressions.

Par exemple, supposez que le formulaire que vous ouvrez est un
formulaire continu contenant une liste de clients. Si vous voulez
activer l'enregistrement d'un client spécifique à l'ouverture du
formulaire, vous pouvez spécifier le nom du client avec l'argument
ArgOuverture , puis utiliser la méthode FindRecord pour activer
l'enregistrement correspondant au client du nom spécifié.

Cet argument n'est disponible que dans Visual Basic.

"
@+