Compléter une zone de texte après clic gauche

Claudine -  
 amigo -
Bonjour,
Je travaille avec Access2000. J'ai réalisé un formulaire de rendez-vous . Celui-ci se compose d'une liste modifiable qui me renseigne les Nom et prénom des clients, après sélection d'un client donc d'un Nom-Prénom : supposons 'Marius', je voudrais que ce dernier s'affiche dans une des zones de texte désignée ''De 11h à 12h'' ou '' De 12h à 13h ''que je choisis après clic gauche de la souris .Supposons que je clic sur lazone de texte"De 12h à 13h"
Exemple:
De 11h à 12h .....................

De 12h à 13h Marius

Pouvez-vous m'aider à afficher Marius tout en assurant la mise à jour de la table des rendez-vous?

d'avance merci

Claudine
A voir également:

33 réponses

amigo
 
Je viens de penser à un truc.

Dans Visual Basic editor, aller dans Oulits > Réferences. Verifier que les bibliothèques suivantes sont bien cochées

Visual Basic for Applications
MS Acces 9.0 Object Library
MS ActiveX Data Objects 2.1 Library
OLE Automation
MS DAO 3.6 Objetcs Library

A+.
0
Claudine
 
C'est encore moi Amigo
Pour te dire qu'après pas mal de problèmes que j'ai réussi à les résoudre(du fait en + que j'ai du modifier puisque j'ai laissé "Date", ça fontionne merveilleusement bien.
J'ai copié la procédure après avoir effacer l'ancienne pour qu'il m'affiche C:\bdclientsdef.mdb
Par la suite j'ai ajouter au début de la page de code:
Option Compare Database
Option Explicit
Const DBNAME = "C:\bdclientsdef.mdb"
Puis j'ai retaper la procédure.

En ce qui concerne les Biblio Il manquait simplement la bibliothèque MS DAO 3.6 Objects Library. Je ne sais pas si cela a contribué à la solution. Quel est son rôle?

Dernière minute: j'ai imprimé deux états à date différente et j'ai constaté que le dernier n'avait pas pris en compte la modification de dernière minute à savoir:
si je modifie un rendez-vous par exemple De 16 à 17h par Mr Y au lieu de Mr X et si je clique de suite sur le bouton d'impression, il ne tient pas compte de cette dernière modification; Sauf si je ferme le tout et puis je reprends l'enregistrement à imprimer.
Peux-tu remédier à cet état de fait? Autrement dit, il ne fait pas la mise à jour instantanée.
Par la suite je vais m'occupé de changer la Date par la DateJour.
Peux tu me préciserle rôle du signe "&"?
Les plus vifs remerciements de ton élève,
Claudine
0
amigo
 
Re,

Les bibliothèques citées ci-dessus contiennent justement les définitions des objets utilisés comme les controles, et certaines fonctions qui ne font pas partie intégrante du VB standard.
Tu as peut-être deja vu un programme en lagage C, en entête il y a souvent des #include <string.h> ..., eh bien ils ont pour fonction d'intégrer au programme source le code des fonctions definies dans ces bibliotheque, histoire de ne pas tout réinventer à chaque fois.
Ce n'est peut-etre pas très clair, disons simplement que se sont des gros dictionnaires où on va chercher la définition des fonctions du langage.

Pour mettre à jour l'enregistrement modifié, il faut valider la modif en appuyant sur la barre de gauche du formulaire où il y a tantot un triangle, tantot un crayon. Le crayon signifie que l'enregistrement en cours n'est pas validé et on peut annuler la modif. Je vais voir s'il existe (si je trouve) une instruction qui le fasse automatiquement avant de lancer la requête.

Le signe & sert à concaténer des éléments d'une chaine de caractères. En plus clair, "Bonjour " & "Claudine" devient "Bonjour Claudine". Avec une variable nom="Claudine", "Bonjour " & nom donne le même résultat.

Enfin, le nom du champ Date doit etre modifié seulement sur le formulaire, et pas dans la base comme je l'avais dit plus haut.
Sinon la ligne suivante va générer une erreur.
" WHERE ((([TableDesRendez-Vous].[Date])=#" & DateJour.Value & "#));"
[Date] c'est le nom du champ dans la base, c'est bon ;
DateJour.Value c'est le nom du textbox du formulaire, car si on laisse Date.Value c'est pas bon.

A tout à l'heure.
0
amigo
 
Re Bonjour,

Après avoir fouillé un peu partout, je pense avoir trouvé comment valider automatiquement un enregistrement.

Dans la procédure Impression inserer cette commande
Dim reponse As Integer

DoCmd.RunCommand (acCmdSaveRecord)
Set dbs = CurrentDb


Si tu ne vois pas ou l'inserer, postes la macro, je la modifierai pour toi.
Voilà, je crois que cette fois c'est bon. Dis moi si tout est au point.

A bientôt.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Claudine
 
Bonjour Amigo,
Désolé de devoir te dire que je patauge! Aussi, je vais t'expliquer tout ce que j'ai fait pour que tu puisses éventuellemnt me corriger.
J'ai fait une sauvegarde , enlevé la macro et après ouverture de la table des Rendez-vous, j'ai modifié le nom du champ Date en DateJour.
Ensuite , j'ai modifié le nom du TextBox Date sur le formulaire et a maintenant le nom: DateJour.Value, tandis que la source contrôle: DateJour.
J'ai taper le code:
Set dbs = CurrentDb
strSQL = "SELECT [TableDesRendez-Vous].[Date], [TableDesRendez-Vous].[De 10h à 11h]," _
& " [TableDesRendez-Vous].[De 11h à 12h], [TableDesRendez-Vous].[De 12h à 13h]," _
& " [TableDesRendez-Vous].[De 13h à 14h], [TableDesRendez-Vous].[De 14h à 15h]," _
& " [TableDesRendez-Vous].[De 15h à 16h], [TableDesRendez-Vous].[De 16h à 17h]" & _
" FROM [TableDesRendez-Vous]" & _
" WHERE ((([TableDesRendez-Vous].[Date])=#" & DateJour.Value & "#));" et la suite.... ainsi que:

Private Sub Form_Activate()
Calendar7.Value = Date ' 'Erreur d'exécution 2465: impossible de trouver le chamùp 'Date' auquel il est fait référence dans votre expression'' j'ai donc modifié par DateJour
End Sub

Private Sub Calendar7_Click()
If IsNull(DateJour.Value) Then DateJour.Value = Calendar7.Value
Calendar7.Value = Date
End Sub
Dès l'ouverture de"Copie de bdclientdef" erreur d'exécution 424: objet requis et la ligne de code Calender7.value = DateJour en surbrillance jaune.
Bref je suis dans la purée! Peux-tu voir les erreurs et tester ma copie?
Ce Mercredi commence décidemment mal car je me suis aperçu après essais dans la bd originale qu'il y avait un problème. Je m'explique:
Si je choisis d'imprimer une journée déterminée de rendez-vous comprise entre le 22/03/2008 et le 31/03/2008, tout se passe bien .Par contre si je choisis une journée à partir du mois suivant soit avril ou mai et que je demandel'impression, la feuille se présente avec les TextBox complètement vide y compris la date.
Je suis désolé de la suite des évènements et espère que tu pourras m'aider une fois de plus.
Sincères salutations;
Claudine.
0
amigo
 
Bonjour Claudine,

Il ne faut pas se décourager, la persévérence finit toujours par payer.
J'avais aussis oublié de chager Date en DateJour dans la procédure.

Le nom du controle textbox doit etre aussi DateJour et non DateJour.Value.

Je t'envoie la procédure complète.
Efface la procédure que tu as et fais un copié-collé, ça évitera les erreurs.
Il reste à modifier le nom de la requête et de l'état.
Private Sub Commande66_Click()
Dim dbs As Database, qdf As QueryDef, strSQL As String
Dim reponse As Integer

DoCmd.RunCommand (acCmdSaveRecord) ' <--cette commande met à jour la table avant la requête
Set dbs = CurrentDb
strSQL = "SELECT [TableDesRendez-Vous].[DateJour], [TableDesRendez-Vous].[De 10h à 11h]," _
             & " [TableDesRendez-Vous].[De 11h à 12h], [TableDesRendez-Vous].[De 12h à 13h]," _
             & " [TableDesRendez-Vous].[De 13h à 14h], [TableDesRendez-Vous].[De 14h à 15h]," _
             & " [TableDesRendez-Vous].[De 15h à 16h], [TableDesRendez-Vous].[De 16h à 17h]" & _
         " FROM [TableDesRendez-Vous]" & _
         " WHERE ((([TableDesRendez-Vous].[DateJour])=#" & DateJour.Value & "#));"

dbs.QueryDefs.Delete ("Requête1") '<---- Nom de la Requête
Set qdf = dbs.CreateQueryDef("Requête1", strSQL) '<---- Nom de la Requête
DoCmd.OpenReport "Etat1", acViewPreview '<---- Nom de l'Etat
reponse = MsgBox("Désirez-vous imprimer cette page", vbInformation + vbYesNo, "Impression Etat")
If reponse = vbYes Then
        DoCmd.OpenReport "Etat1", acNormal '<---- Nom de l'Etat
End If
End Sub


Le reste est bon.
Private Sub Form_Activate()
   Calendar7.Value = Date
End Sub

Private Sub Calendar7_Click()
   If IsNull(DateJour.Value) Then DateJour.Value = Calendar7.Value
   Calendar7.Value = Date
End Sub


Pour l'impression des journées à venir, à priori je ne vois d'ou vient le problème.
A condition que tout marche bien, la macro prend comme critère la valeur affichée du textbox DateJour.
Donc, si la table [TableDesRendez-Vous] à bien la date souhaitée, peu importe si elle est passée ou à venir, la requête fonctionnera.

Pour le moment, corriges les macros, fais un test.
Si le problème presiste, il faut ouvrir la requête et la remplir manuellement. Passer en mode Feuille de données et voir ce quelle t'affiche.
Si la feuille est vide, soit la requête est mal faite, soit il y a un problème dans la table des rendez-vous.

On verra après. Il faut d'abord que tout fonctionne comme prévu.

Allez courage. A plus tard.
0
amigo
 
PS:
As tu pensé à supprimer dans les propriétes de Calendar7 la source du contole?

A+.
0
Claudine
 
Merci pour cet encouragement, mais il y a toujours problème
J'ai modifié le nom du TextBox en 'DateJour'
La source contrôle :DateJour
J'ai modifié la procédure comme indiqué ci-haut;
Je me demande si les problèmes ne viennent pas du fait suivant:
Losque je fais clic droit sur le calendrier et propriété, je n'ai pas l'intitulé Calendar7 commeNom mais
Nom: CtlActiveX6
Source contrôle: ......
Application OLE: Calendrier
Action OLE: 0
Classe objet : MSCAL.Calendar.7

Car lorsque j'ai inséré le calendrier dans mon formulaire, j'ai cliqué outils puis Controle ActiveX puis dans la liste déroulante : ContrôleCalendrier 9.0. Je te rappelle queje travaille avec Access2000
Dés l'ouverture de la bd, il affiche maintenant l'erreur d'exécution 2465: impossible de trouver le champ'Date' auquel il est fait référence dans votre expression et la ligne de code Calendar4.Value= Date se met en surbrillance jaune.
Y-a-t'il une ligne de code à indiquer concernant l'expression 'Date' car maintenant dans la table c'est 'DateJour'
J'espère que tu pourras déceler où est mon erreur.
A bientôt et merci pour votre collaboration.
Claudine
0
amigo
 
Ok,

Le nom n'a pas vraiment d'importance, pourvu qu'il soit le meme dans l'objet et dans les macros
Sans modifier les macros, change juste le nom CtlActiveX6 par Calendar7

La, ça va marcher.

A+.
0
Claudine
 
Bonjour Amigo
Désolé de devoir te dire que rien à changer malgré lechangement de CtlActiveX6 par Calender7. d'autre part,je m'inquiète quand tu dis "Sans modifier les macros",or, dans cette copie de bd je n'ai plus de Macros puisque je veux réaliser ton système ''On va faire en sorte que le calendrier affiche toujours la Date du Jour et lorsqu'on clic sur une date du calendrier et que le champ est vide, ce champ prend la valeur de la date choisie puis revient automatiquement à la date du jour"
Toujours la même erreur 2465!
N'y a -t'il pas confusion entre la date du jour et la Date choisie?
Il n'y a plus aucune référence nulle part à la 'Date' donc, l'erreur 2465 est logique pour moi! .
J'ai également retiré les lignes suivantes:
'Private Sub Form_Activate()
'Etiquette71.Caption = "Aujourd'hui nous sommes le :" & Date
'End Sub
J'espère que cette description t'aidera à découvrir où est le problème.
Bien à toi et merci pour ton aide.
Claudine
0
amigo
 
Alors la, c'est moi qui ne comprends plus.

Quand je dis une copie, je veux dire une copie complète du dossier de ta BD, avec tous les fichiers qui en font partie.
Une sauvegarde quoi. Pour le cas ou une fausse manip endomagerait les données de la base.
Dans ta copie,tu dois avoir exactement la meme chose que dans l'original, tables , formulaires, requêtes, Etats.
Les macros font partie du formulaire, donc elle sont présentes si le formulaire est le meme que l'original.
Il ne faut pas tout reconstruire. Sinon on va pas s'en sortir.

Maintenant, je peux te proposer de le faire à ta place, si tu veux. Mais je suppose que les données sont confidentielles.
Que fait-on, on reprend du début? Dis moi si tu veux bien continuer.

Ce qu'il faut faire, Fermer Acces, aller avec l'explorateur windows, sur la racine c:, créer nouveau dossier BaseTest.
Ensuite aller dans le dossier de la vraie BD, selectionner tous les fichiers et Edition Copier.
Retour dans le dossier BaseTest qui est vide, Edition Coller.
Quitter l'explorateur, Relancer Acces, et ouvrir la BD dans le dossier BaseTest.

Est-ce bien comme ça que tu as fait une copie?

A+.
0
Claudine
 
Bonjour Amigo
Dis-moi comment je peux te faire parvenir le tout.
Sache que les données ne sont pas confidentielles mais tout à fait inventées pour mes exercices de programmation et que je n'ai pas du tout l'envie d'abandonner; Je crois que je me suis mal exprimé car, la bd est compléte si ce n'est que j'avais simplement supprimé lé macro que j'avais personnellement ajouteé pour faire apparaitre la date du jour dans un petit formulaire séparé qui s'affichait en même temps que le formulaire principal des rendez-vous.
Comme il y a toujours le problème de Date ....
A bientôt et un grand merci
Claudine
0
amigo
 
OK, alors je te donne ma boite postale "poubelle".
J'ai besoin du fichier "C:\bdclientsdef.mdb", normalement tout est dedans.

enzo.momo@wanadoo.fr

J'espère que ça passera, sinon je te donnerai le site de téléchargement de la où je travaille.

Si tu veux d'autres fonctionnalités, profites-en.

Bonne soirée.
0