Empecher modifications données

Le
dadpub
Bonsoir,

Je voudrais que les utilisateurs ne puissent pas modifiés les données sur un
formulaire si une certaine date est passée.
A l'ouverture si la date est pas dépassée on fait ce qu'on veut, si la date
est dépassée on regarde mais on peut pas modifier.
J'ai un peu tout essayé : Dirty - Snapshot - AllowEditions - mais je m'en
sort pas !
Pouvez-vous me donner une piste ?

Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Dragan
Le #17887041
Bonsoir, tu peux essayer à l'ouverture du formulaire si la date est dépassée
de bloquer l'ensemble des controles. Dans le code VBA de l'événement "Sur
chargement" (OnLoad) du formulaire :
ex:
nomducontrol.enabledúlse => aucune saisie possible
nomducontrol.locked=true => Le control n'apparaît pas grisé






"dadpub" a écrit :

Bonsoir,

Je voudrais que les utilisateurs ne puissent pas modifiés les données sur un
formulaire si une certaine date est passée.
A l'ouverture si la date est pas dépassée on fait ce qu'on veut, si la date
est dépassée on regarde mais on peut pas modifier.
J'ai un peu tout essayé : Dirty - Snapshot - AllowEditions - mais je m'en
sort pas !
Pouvez-vous me donner une piste ?

Merci.





dadpub
Le #17888961
Salut,

J'ai 250 controles dont 3 ou 4 sous-formulaires !
C'est pas possible de bloquer le formulaire ?
Merci

"Dragan"
Bonsoir, tu peux essayer à l'ouverture du formulaire si la date est
dépassée
de bloquer l'ensemble des controles. Dans le code VBA de l'événement "Sur
chargement" (OnLoad) du formulaire :
ex:
nomducontrol.enabledúlse => aucune saisie possible
nomducontrol.locked=true => Le control n'apparaît pas grisé






"dadpub" a écrit :

Bonsoir,

Je voudrais que les utilisateurs ne puissent pas modifiés les données sur
un
formulaire si une certaine date est passée.
A l'ouverture si la date est pas dépassée on fait ce qu'on veut, si la
date
est dépassée on regarde mais on peut pas modifier.
J'ai un peu tout essayé : Dirty - Snapshot - AllowEditions - mais je m'en
sort pas !
Pouvez-vous me donner une piste ?

Merci.







michel chambrillon
Le #17889421
Bonjour
Pour bloquer le formulaire
Me.alloweditsúlse => pas de modifs
Me.AllowAdditionsúlse => pas d'ajouts
Me.AllowDeletionsúlse => pas de suppressions
Voila
Michel
"dadpub" news:%
Bonsoir,

Je voudrais que les utilisateurs ne puissent pas modifiés les données sur
un formulaire si une certaine date est passée.
A l'ouverture si la date est pas dépassée on fait ce qu'on veut, si la
date est dépassée on regarde mais on peut pas modifier.
J'ai un peu tout essayé : Dirty - Snapshot - AllowEditions - mais je m'en
sort pas !
Pouvez-vous me donner une piste ?

Merci.



Dragan
Le #17889851
Ouais, tu peux te servir d'une moulinette comme suit :

Dim Ctrl as Access.Control

For Each Ctrl In Form.Controls
IF Ctrl.ControlType Ctrl.EnabledúLSE
Ctrl.Locked=TRUE
END IF
Next

ici je bloque tous les controls du formulaire qui ne sont ni des étiquettes
ni des images.


"dadpub" a écrit :

Salut,

J'ai 250 controles dont 3 ou 4 sous-formulaires !
C'est pas possible de bloquer le formulaire ?
Merci

"Dragan"
> Bonsoir, tu peux essayer à l'ouverture du formulaire si la date est
> dépassée
> de bloquer l'ensemble des controles. Dans le code VBA de l'événement "Sur
> chargement" (OnLoad) du formulaire :
> ex:
> nomducontrol.enabledúlse => aucune saisie possible
> nomducontrol.locked=true => Le control n'apparaît pas grisé
>
>
>
>
>
>
> "dadpub" a écrit :
>
>> Bonsoir,
>>
>> Je voudrais que les utilisateurs ne puissent pas modifiés les données sur
>> un
>> formulaire si une certaine date est passée.
>> A l'ouverture si la date est pas dépassée on fait ce qu'on veut, si la
>> date
>> est dépassée on regarde mais on peut pas modifier.
>> J'ai un peu tout essayé : Dirty - Snapshot - AllowEditions - mais je m'en
>> sort pas !
>> Pouvez-vous me donner une piste ?
>>
>> Merci.
>>
>>
>>





dadpub
Le #17892511
Salut,

"michel chambrillon" message de news:
Bonjour
Pour bloquer le formulaire
Me.alloweditsúlse => pas de modifs
Me.AllowAdditionsúlse => pas d'ajouts
Me.AllowDeletionsúlse => pas de suppressions



J'ai déjà tenter tout ça, ça marche pas !
'---------code------------------------------
Private Sub Form_Open(Cancel As Integer)

Dim Mydate1 As Date
Dim Mydate2 As Date
Dim NbJour As Integer
Mydate1 = Now
Mydate2 = DateAdmis
NbJour = Mydate1 - Mydate2

If NbJour > 60 Then
Me!Rectangle.BackColor = 255
Me.AllowEdits = False
Else
Me!Rectangle.BackColor = 65408
Me.AllowEdits = True
End If

End Sub
'------fin-code------------------------------

Merci
dadpub
Le #17892661
Salut,

"Dragan"
Ouais, tu peux te servir d'une moulinette comme suit :

Dim Ctrl as Access.Control

For Each Ctrl In Form.Controls
IF Ctrl.ControlType Ctrl.EnabledúLSE
Ctrl.Locked=TRUE
END IF
Next



Marche pas !
J'ai le message "erreur 438"
"propriete ou methode non gere par cet objet"
Merci.
dadpub
Le #17893381
Re-salut,
Petite rectification !
Le code ci-dessous marche .... la première fois que j'ouvre le formulaire.
Mais si je le ferme et re-ouvre sur un autre enregistrement, ben ça marche
plus ! ! !
C'est quoi ?
Merci

'---------code------------------------------
Private Sub Form_Open(Cancel As Integer)

Dim Mydate1 As Date
Dim Mydate2 As Date
Dim NbJour As Integer
Mydate1 = Now
Mydate2 = DateAdmis
NbJour = Mydate1 - Mydate2

If NbJour > 60 Then
Me!Rectangle.BackColor = 255
Me.AllowEdits = False
Else
Me!Rectangle.BackColor = 65408
Me.AllowEdits = True
End If

End Sub
'------fin-code------------------------------


michel chambrillon
Le #17894191
re Bonjour
L'evenement form_open ne me semble pas etre le bon
Il faut ecrire ton code pour qu'il s'execute a chaque changement
d'enregistrement car si j'ai bien compris dateAdmis est un champ de la
table.Donc a l'evenement form_open il tient compte que du dateAdmis du
premier enr.
Affecte ton code a l'evenement sur activation en VBA form_current
@plus
Michel
"dadpub" news:O$
Re-salut,
Petite rectification !
Le code ci-dessous marche .... la première fois que j'ouvre le formulaire.
Mais si je le ferme et re-ouvre sur un autre enregistrement, ben ça marche
plus ! ! !
C'est quoi ?
Merci

'---------code------------------------------
Private Sub Form_Open(Cancel As Integer)

Dim Mydate1 As Date
Dim Mydate2 As Date
Dim NbJour As Integer
Mydate1 = Now
Mydate2 = DateAdmis
NbJour = Mydate1 - Mydate2

If NbJour > 60 Then
Me!Rectangle.BackColor = 255
Me.AllowEdits = False
Else
Me!Rectangle.BackColor = 65408
Me.AllowEdits = True
End If

End Sub
'------fin-code------------------------------






dadpub
Le #17894611
Bonsoir,
C'est sympa de m'aider ...
J'étais en train de comprendre ceci, de "maitre Raymond" ! Qu'en penses-tu ?
http://groups.google.com/group/microsoft.public.fr.access/browse_thread/thread/2b2983ed9caa7f43/7758a51eb1c0b575?hl=fr&lnk=gst&q=AllowEdits+ne+peut+pas+intervenir+si+dirty+est+%C3%A0+True#7758a51eb1c0b575

Tu me dis de mettre le code sur Activation et pas sur Open.
J'ai essayé ce code quasiment sur tous les evenements sans succés.
A ce stade il faut peut-etre preciser 2 choses :
- J'ai 3 sous-formulaires dans mon formulaire, et je me demande si
l'insuccés viendrait pas de là !
- Sur Activation (tiens, tiens !) le code fait tout un tas de vérifications
et donc de modifications d'enregistrement, le probleme pourrait venir de là
aussi !
Exemple de code :
'-------------------------------
If Sexe.Value = "Male" Then
Menopause.Enabled = False
Else
Menopause.Enabled = True
End If
'--------------------------------
@ +
Merci.

"michel chambrillon" message de news:
re Bonjour
L'evenement form_open ne me semble pas etre le bon
Il faut ecrire ton code pour qu'il s'execute a chaque changement
d'enregistrement car si j'ai bien compris dateAdmis est un champ de la
table.Donc a l'evenement form_open il tient compte que du dateAdmis du
premier enr.
Affecte ton code a l'evenement sur activation en VBA form_current
@plus
Michel
"dadpub" news:O$
Re-salut,
Petite rectification !
Le code ci-dessous marche .... la première fois que j'ouvre le
formulaire.
Mais si je le ferme et re-ouvre sur un autre enregistrement, ben ça
marche plus ! ! !
C'est quoi ?
Merci

'---------code------------------------------
Private Sub Form_Open(Cancel As Integer)

Dim Mydate1 As Date
Dim Mydate2 As Date
Dim NbJour As Integer
Mydate1 = Now
Mydate2 = DateAdmis
NbJour = Mydate1 - Mydate2

If NbJour > 60 Then
Me!Rectangle.BackColor = 255
Me.AllowEdits = False
Else
Me!Rectangle.BackColor = 65408
Me.AllowEdits = True
End If

End Sub
'------fin-code------------------------------









Dragan
Le #17895771
si le code marche. Mais tu dois avoir des controls qui n'ont pas de
propriétés ENABLED et LOCKED comme des lignes ou des rectangles.

"dadpub" a écrit :

Salut,

"Dragan"
> Ouais, tu peux te servir d'une moulinette comme suit :
>
> Dim Ctrl as Access.Control
>
> For Each Ctrl In Form.Controls
> IF Ctrl.ControlType > Ctrl.EnabledúLSE
> Ctrl.Locked=TRUE
> END IF
> Next

Marche pas !
J'ai le message "erreur 438"
"propriete ou methode non gere par cet objet"
Merci.





Publicité
Poster une réponse
Anonyme