Modification valeur par défaut d'un champ
Résolu
Iruka72
Messages postés
255
Date d'inscription
Statut
Membre
Dernière intervention
-
Iruka72 Messages postés 255 Date d'inscription Statut Membre Dernière intervention -
Iruka72 Messages postés 255 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un formulaire sous access qui doit avoir dans le bas de page une inscription sur la dernière modification de forme du formulaire, n'ayant pas trouvé de moyen de le mettre automatiquement lors d'une modification de structure du formulaire, j'avais pensé mettre un champ que l'utilisateur qui fait les modifications de forme (il n'y a qu'une seule personne dans l'entreprise qui a les droits de le faire).
La valeur apparaîtra à chaque fois en bas de page et restera la même tant que la structure du formulaire n'a pas été modifiée, donc tant que l'utilisateur ayant la possibilité de modifié le formulaire n'a pas entré la valeur dans le champ (a défaut de laisser le formulaire détecter une modification de structure, je n'ai pas vu d'événement permettant de le gérer).
J'avais pensé mettre au départ la valeur dans les propriétés du champ, dans la valeur par défaut, et puis par code vba lors de l'insertion d'une valeur par l'utilisateur dans le champ fait pour ca.
Mais je ne sais pas comment on peut modifier cette valeur par défaut en vba.
J'avais pensé utilisé un code de ce style sans la sécurité lié a l'utilisateur pour l'instant:
edit:J'ai un peu avancé dans ma réflexion, la valeur je peux la fixer une fois pour toute au démarrage du formulaire, à l'ouverture du formulaire le champ Révision vaut autant, si j'appuie sur mon champ, il active le code précédent, si oui, il met la valeur d'aujourd'hui dans le champ et doit modifier la valeur par défaut à l'ouverture du formulaire, il faut donc qu'à l'ouverture du formulaire, je prenne la valeur par défaut, donc la valeur précédente du champ Révision. Si l'utilisateur choisi non, on garde la valeur précédente du champ Révision.
Le problème est que je ne sais pas comment lui dire de prendre la valeur précédente dans le champ.
J'espère avoir été clair, merci d'avance.
La valeur apparaîtra à chaque fois en bas de page et restera la même tant que la structure du formulaire n'a pas été modifiée, donc tant que l'utilisateur ayant la possibilité de modifié le formulaire n'a pas entré la valeur dans le champ (a défaut de laisser le formulaire détecter une modification de structure, je n'ai pas vu d'événement permettant de le gérer).
J'avais pensé mettre au départ la valeur dans les propriétés du champ, dans la valeur par défaut, et puis par code vba lors de l'insertion d'une valeur par l'utilisateur dans le champ fait pour ca.
Mais je ne sais pas comment on peut modifier cette valeur par défaut en vba.
J'avais pensé utilisé un code de ce style sans la sécurité lié a l'utilisateur pour l'instant:
Private Sub Révision_Click() Dim a As Long a = MsgBox("Avez vous vraiment modifier la structure du formulaire?", vbYesNo) If (a = 6) Then ValeurChampParDéfaut = Now() [Révision]=Valeur champParDéfaut Else 'je pense que je pourrais le laisser vide, donc pas de else, si c'est non, bah il fait rien, mais 'par habitude je préfère mettre quelque chose pour sécurisé et être sur de ce qu'il me met 'dans ce champ. [Révision]=Valeur champParDéfaut End If End Sub
edit:J'ai un peu avancé dans ma réflexion, la valeur je peux la fixer une fois pour toute au démarrage du formulaire, à l'ouverture du formulaire le champ Révision vaut autant, si j'appuie sur mon champ, il active le code précédent, si oui, il met la valeur d'aujourd'hui dans le champ et doit modifier la valeur par défaut à l'ouverture du formulaire, il faut donc qu'à l'ouverture du formulaire, je prenne la valeur par défaut, donc la valeur précédente du champ Révision. Si l'utilisateur choisi non, on garde la valeur précédente du champ Révision.
Le problème est que je ne sais pas comment lui dire de prendre la valeur précédente dans le champ.
J'espère avoir été clair, merci d'avance.
A voir également:
- Modification valeur par défaut d'un champ
- Suivi de modification word - Guide
- Logiciel gratuit modification pdf - Guide
- Ouvrir avec par défaut - Guide
- Dns par defaut - Guide
- Google page d'accueil par défaut - Guide
2 réponses
Désolé pour le double post mais ca commence a faire pas mal de mise à jour du premier post.
J'ai bien avancé, j'ai trouvé le moyen de lui dire quel sera la valeur par défaut tant que ce champ est pas modifié, voici le code :
Après mise à jour du champ, la valeur par défaut est chargée dans les propriété du champ où je vois s'afficher la valeur mais si j'ouvre un nouvel enregistrement j'ai un nombre du style à 1524865242586E-6 qui apparait, je ne comprend pas pourquoi, l'erreur doit provenir de Me.Révision.value, la valeur value ne doit pas gèrer les dates, mais dans ce cas qu'est ce que je peux mettre à la place?
J'ai essayé de mettre Me.Révision.DefaultValue = [Révision], j'ai le même soucis.
Et après transformation du champ en date (j'avais oublié et laisser en texte avec masque de saisie au démarrage), il me met encore la valeur dans les propriété mais cette fois je n'ai plus rien dans le champ lors d'un nouvel enregistrement.
Et si j'essaye de mettre directement une date sans passer par la msgbox et mettre la date obligatoirement d'aujourd'hui ca me met bien une date le 30/12/1899 invariablement et si je clique sur le champ j'ai ceci 00:05:28 , et si j'oublie le masque de saisie, c'est 00:05:28.
J'espère que vous saurez m'aider, je continue à chercher mais tout coups de mais est bienvenue
J'ai bien avancé, j'ai trouvé le moyen de lui dire quel sera la valeur par défaut tant que ce champ est pas modifié, voici le code :
'modifie avec la date du jour quand on clique et qu'on choisi oui Private Sub Révision_Click() Dim a As Long a = MsgBox("Avez vous vraiment modifier la structure du formulaire?", vbYesNo) If (a = 6) Then [Révision] = Date End If End Sub 'après mise à jour, la valeur mise devient la valeur par défaut Private Sub Révision_Dirty(Cancel As Integer) Me.Révision.DefaultValue = Me.Révision.Value End Sub
Après mise à jour du champ, la valeur par défaut est chargée dans les propriété du champ où je vois s'afficher la valeur mais si j'ouvre un nouvel enregistrement j'ai un nombre du style à 1524865242586E-6 qui apparait, je ne comprend pas pourquoi, l'erreur doit provenir de Me.Révision.value, la valeur value ne doit pas gèrer les dates, mais dans ce cas qu'est ce que je peux mettre à la place?
J'ai essayé de mettre Me.Révision.DefaultValue = [Révision], j'ai le même soucis.
Et après transformation du champ en date (j'avais oublié et laisser en texte avec masque de saisie au démarrage), il me met encore la valeur dans les propriété mais cette fois je n'ai plus rien dans le champ lors d'un nouvel enregistrement.
Et si j'essaye de mettre directement une date sans passer par la msgbox et mettre la date obligatoirement d'aujourd'hui ca me met bien une date le 30/12/1899 invariablement et si je clique sur le champ j'ai ceci 00:05:28 , et si j'oublie le masque de saisie, c'est 00:05:28.
J'espère que vous saurez m'aider, je continue à chercher mais tout coups de mais est bienvenue
j'ai trouvé une solution qui fonctionne, même si c'est pas exactement ce que je voulais:
Voici le code sur le champ lui même :
et sur l'activation du formualire:
Ca me fait bien passer d'un formulaire à l'autre la valeur du champ révision et change bien si je modifie la valeur manuellement.
J'aurais préféré pouvoir modifier uniquement cette date sans avoir à le faire avec un enregistrement complet mais je ne vois vraiment pas comment faire^^".
Voici le code sur le champ lui même :
Private Sub Révision_Click() Dim a As Long a = MsgBox("Avez vous vraiment modifier la structure du formulaire?", vbYesNo) If (a = 6) Then b = MsgBox("Voulez vous mettre la date d'aujourd'hui?", vbYesNo) If (b = 6) Then Me.Révision.Value = Date End If End If End Sub
et sur l'activation du formualire:
If Me.NewRecord Then If DCount("*", "Stagiaire") > 0 Then Me.Révision = Nz(DLookup("Révision", "Stagiaire", "N°infoStagiaire=" _ & DMax("N°infoStagiaire", "Stagiaire")), 0) End If End If
Ca me fait bien passer d'un formulaire à l'autre la valeur du champ révision et change bien si je modifie la valeur manuellement.
J'aurais préféré pouvoir modifier uniquement cette date sans avoir à le faire avec un enregistrement complet mais je ne vois vraiment pas comment faire^^".