Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Condition et mise à jour [Fin] et Merci Arnaud

1 réponse
Avatar
Steph
Bonjour

Un grand merci à Arnaud (Gafish) pour son aide.
Ca n'intéresse peut être personne mais je crois de mon devoir de détailler
la solution qui marche (Si elle peut aider une personne j'en serai ravi)

Rappel du pbm :

### MA QUESTION ###
> Bonjour,
> Sous Access 2k, j'ai deux tables liées par l'ID de la première sans
intégrité référentielles. Les users les consultent par un formulaire (table
exigence) contenant un sous formulaire (table user).
> Table exigence : idexig (numéroAuto), situation (numérique car lié à un
autre table), définition (mémo), date maj (date)
> Table user : iduser (numéroAuto), liaison (numérique de la table
exigence), etat (texte 20 : liste de choix de valeurs)
>
> 1) je désirerai réaliser un contrôle entre ces deux tables. Si la valeur 2
est présente dans le champ situation (table exigence), qu'il soit impossible
de sélectionner quoi que ce soit au niveau du champ etat (table user).
Imaginons maintenant que l'on modifie le champ situation et que ce champ
devienne égal à 2, que les champs du formulaire lié à la table user soient
colorés en rouge (ou sur fond rouge) pour que les utilisateurs vient bien
qu'il y a un soucis et qu'ils interviennent en conséquence
>
> 2) Dans la table exigence il y a une date de mise à jour. Je désirerai
mettre un contrôle sur cette date a savoir : Si une ligne est modifiée
qu'Access demande si c'est une modification mineure ou majeure. Si cette
modification est mineure que a date reste identique. Par contre si la
modification est majeur que ce champ prenne la date du jour
[=maintenant()]

> Merci de votre aide et de vos lumières
>
> Cordialement
>
> Steph

### LA REPONSE D'ARNAUD ###
Bonjour

1) Tu peux mettre le contrôle sur l'évènement LostFocus de ton champ
situation.
A ce moment la, tu peux rendre disabled les champs users, et les mettre en
rouge aussi si tu le souhaites (Me![ChampUser].Enable = False et pour la
couleur tu joues sur FontColor la couleur de fond)
2) Pour faire dire à ton utilisateur si c'est mineur ou majeur, tu peux
mettre un msgbox avec bouton "Oui" et "Non" et poser la question "Est-ce une
majeure". En ce cas tu testes la valeur de retour du msgbox (regarde l'aide
en ligne pour savoir comment mettre les boutons oui/non et quelle est la
valeur de retour de oui) tu mets la valeur Date() dans le champ date que tu
souhaites.

Arnaud

### LA SOLUTION ###

Je suis passé en fait par les formulaires

Pour le 1 :
Dans le formulaire user j'ai répété le champ situation (caché)
Pour tous les champs de ce formulaire je suis passé par une mise ne forme
conditionnelle de type expression : [Formulaire]![situation_id]=2 alors fond
jaune + police en gras + couleur de police rouge.

Avec ça ils ne peuvent le manquer

Pour le 2
Je me suis résolu à me plonger dans le code et j'ai mis ça dan le formulaire
exigence

Private Sub Form_BeforeUpdate(Cansel As Integer)
' Permet d'affecter la message box à chaque modification

Dim Msg, Style, Title, Help, Ctxt, Response, MyString
' Défini les défférents éléments de la boite de message
Msg = "Est-ce une modification MAJEURE de l'exigence?"
' Définit le message que la message box va faire apparaître
Style = vbYesNo + vbCritical + vbDefaultButton1
' Définit les boutons (oui et non, et que le bouton Oui est présélectionné
Title = "Vous tentez de modifier une Exigence"
' Définit le titre.
Help = "DEMO.HLP"
' Définit le fichier d'aide mais je n'ai pas trop compris à quoi ça sert
Ctxt = 1000
' Définit le contexte de la rubrique je n'ai pas trop compris à quoi ça sert


Response = MsgBox(Msg, Style, Title, Help, Ctxt)
' Créé la boite de message

If Response = vbYes Then
' L'utilisateur a choisi Oui alors ....
Me![datemaj] = Now()
' La date est insérée dans le champ datemaj du formulaire en cours
Else
' Dans le cas ou NON est choisi, ne fait rien
End If
End Sub


Voila donc la résolution de mon pbm. Pour vous ce n'est peut être rien mais
pour moi c'est une victoire en soit et elle me comble.
Merci encore à Arnaud

Cordialement

Steph

1 réponse

Avatar
3stone
Salut,

"Steph"
| Un grand merci à Arnaud (Gafish) pour son aide.
| Ca n'intéresse peut être personne mais je crois de mon devoir de détailler
| la solution qui marche (Si elle peut aider une personne j'en serai ravi)
<snip>


Tu l'aurais placée dans le fil, elle aurait (peut-être ;) aider quelqu'un !

Mais, ici, elle n'aide réellement personne... à part Grafish, s'il la lit....


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------