Valider un champ par defaut

[Résolu]
Signaler
Messages postés
6
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
8 novembre 2005
-
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
-
Bonjour à tous, novice en la matière, votre aide sera la bien venue.
Sur access j'essaye avec de grandes difficultés à mettre par defaut un champ.
J'ai donc une table mois dans laquelle figure un champ Date_deb_mois.
D'autre part un formulaire presence dans lequel on retrouve un champ Date_deb_pre, que je voudrais qui affiche par défaut le champ de la table mois. Comment m'y prendre? Le mieux que j'ai obtenu est 29/12/1899 Merci de votre aide.

8 réponses

Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
1
Comprend pas. peut tu être plus explicite?
Ta table [mois] contient déjà les données que tu souhaite afficher ou doit elle les enregistrer depuis ton formulaire? Que doit afficher ton formulaire exactement?
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 82 internautes nous ont dit merci ce mois-ci

Messages postés
6
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
8 novembre 2005



OK, je vois que tu as bien compris mon problème, encore merci. Alors voici les explications. Je fais une base de données pour enregistrer les présences d'élèves.
1) j'ai fais une table[ mois] contenant tous les mois avec un champ [date_deb_mois]2) une table[ presence] ou je rentre les dates de presence dans un champ [date_deb_pre], bien entendu d'autres renseignements doivent figurés faisant appel à d'autres tables, d'ou la création d'un formulaire de saisie.
Pour faciliter la saisie j'aimerai que le champ du formulaire [date_deb_pre] soit par defaut la valeur [date_deb_mois], étant entendu que dans le formulaire la selection du mois est faite à partir de la table mois.
La table [mois] contient bien les données [date_deb_mois] à afficher par défaut dans le formulaire dans le champ [date_deb_pre]
Est-ce plus clair pour toi,? merci de ton intéret .BD
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
1
ok je vois. Pour ma part, je te conseillerais une attribution de la valeur du champ sur ton formulaire par code vba. Dans un premier temps ton champ doit être de type "Zone de liste déroulante".
Dans les propriétés du champ, sur l'onglet "Données" :




<LI>A la ligne source, sélectionner le champ [date_deb_pre] de la table [presence]</LI>
<LI>A la ligne Origine source, sélectionner "Table/Requête"</LI>
<LI>La ligne Contenu est une requête SQL type SELECT [mois].[date_deb_pre] FROM [moi];</LI>
Dans les propriétés de ton formulaire ; Dans l'onglet Evénement, à la ligne "Sur chargement", sélectionner [Procédure événementielle]
Tu clique alors sur le boutton pour accéder à la fenêtre de programmation VBA et tu y colle le code ci-dessous

Private Sub Form_Load()
Dim rcd As Recordset, db As Database, Month As Date


' ouverture de la table Mois pour selection du parametre
Set db = CurrentDb
Set rcd = db.OpenRecordset(" SELECT Month([Mois]![date_deb_mois]) AS Expr1, Mois.date_deb_mois " & _
" FROM Mois WHERE (((Month([Mois]![date_deb_mois]))=Month(Now())));", dbOpenDynaset)
Month = rcd.Fields("date_deb_mois").Value ' Chargement de la variable avec la valeur du recordset
Me.ModifMois = Month ' Affectation du contenu de la variable au champ du formulaire

' Fermeture et dechargement mémoire
Set rcd = Nothing
db.Close
End Sub

Attention tout de même a bien cocher "Microsoft DAO 3.6 Object Library" dans les références de VBA
Voilà j'espère avoir été suffisamment clair et n'hésite pas à demander si tu as un Pb
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
1
A oui, j'oublié, je suis parti du principe que tes champs [date_deb_pre] et [date_deb_mois] sont tous les deux au format Date
Messages postés
6
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
8 novembre 2005

Désolé encore moi, pourtant tu n'as pas négligé tes efforts pour m'aider, mais petit problème, le champ [date_deb_pre] de la table [presence ] est défini au format date comme tu l'as bien supposé et de ce fait, il n'accepte pas d'être de type "zone de liste déroulante". Ceci dit tes explications ne sont pas innutiles car peu à peu je comprend la nécessité de programmation, moi qui pensait que ce n'était qu'une histoire de champ père et fils. Encore merci de ta patience, mais je suis un peu obstiné et nous l'aurons cette solution. Salutations BD
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
1
Tu ne peux pas modifier en effet le type comme ça. Pour cette opération un peut particulière, il faut créer manuellement ton champ grace à la boîte à outil du formulaire.
Dans ton formulaire en mode création :



<LI>A l'aide de la boite a outil du formulaire, tu clique sur le bouton nommé "Zone de liste déroulante" et tu dessine un belle zone sur ton formulaire en mode création.</LI>
<LI>Normalement l'assistant zone de liste déroulante s'ouvre et tu coche "Je veux que la liste déroulante recherche les valeurs dans une table ou requête." puis le bouton "Suivant"</LI>
<LI>Tu sélectionne ensuite la table qui contient l'information, a savoir [mois] et le bouton "Suivant"</LI>
<LI>Tu sélectionne le champ qui contient l'information, à savoir [date_deb_mois] et le bouton "Suivant"</LI>
<LI>Tu peux alors effectuer un tri sur le ou les champs précédemment sélectionné (optionnel) et toujours le bouton "Suivant"</LI>
<LI>Tu visualise alors la liste déroulante que tu as créé que tu peux a ce moment modifier en largeur. Après quoi tu clique sur le bouton "Suivant"</LI>
<LI>Vient le moment le plus intéressant! Tu coche "Stocker la valeur dans ce champ :" et en face tu sélectionne le champ en question. Soit pour toi [date_deb_pre] et tu clique sur le bouton "Suivant"</LI>
<LI>Tu mets enfin un joli nom d'étiquette tu clique sur le bouton "Terminer" </LI>
<LI>Tu peux alors supprimer ton ancien champ [date_deb_pre] zone de texte qui ne te sert plus alors.</LI>
A oui, j'allais oublier ! Dans les propriétés de ta zone de liste déroulante, sur l'onglet "Autres" tu modifieras à la ligne "Nom.......", le nom du champ de formulaire qui par défaut doit s'appeler "Modifiable1" puisqu'il est référencé dans le code VBA sous le nom "ModifMois"
Je crois que ce doit être a peut près tout. Tien moi au courant!
Messages postés
6
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
8 novembre 2005

Merci de ta perseverance, j'avais bien pensé à la zone de liste, effectivement, comme cela ça fonctionne, mon désir était de ne pas obliger la secrétaire à renter de date, c'est pourquoi je souhaitais que celle-ci s'affiche d'emblée par défaut dans le formulaire, ainsi elle n'aurait entré de dates debut et fin qu'en cas d'absence de l'élève, le choix par défaut se faisant à l'ouverture du formulaire par le n° du mois. Mais cette formule peut convenir encore merci pour ton aide précieuse.
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
1
de rien