Access heure sur clic

Fermé
logicielavocat - 20 avril 2009 à 21:36
 LogicielAvocat - 25 avril 2009 à 19:20
Bonjour,

Je voudrais afficher l'heure système dans une zone de texte au moment où je clique sur celle-ci. comment faire?

Merci d'avance pour votre aide!

6 réponses

incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
21 avril 2009 à 14:00
Salut.

Voici le code sous Access 2000, normalement il doit fonctionner.

1) Crée une zone de texte sur ton formulaire. Ici elle s'appelera "Texte0", mais tu peux l'appeler comme tu veux.

2) Affecte lui un code en cliquant dessus avec le bouton droit "Créer code événement", puis "Générateur de code".

3) Tu arrives dans l'éditeur VBA. Dans la zone du haut, tu as le nom de l'élément pour lequel tu es en train d'écrire du code (ici Texte0) et sur la droite l'événement associé. Dans la liste, choisis "onclick".

4) Colle la ligne ci-dessous entre "Private Sub Texte0_Click()" et "End sub"

Me.Texte0.Value = Time()

5) C'est tout. Normalement quand tu exécute ton formulaire et que tu cliques dans la zone de texte, l'heure apparait.

PS : Si tu modifies le nom de la zone de texte, n'oublies pas de le faire partout dans le code. "Me." représente le formulaire access que tu utilises.

Cdlt

IC
1
LogicielAvocat
23 avril 2009 à 13:44
Un grand merci pour cette réponse efficace. L'heure s'affiche.

Deux questions complémentaires:

Comment faire pour sauvegarder la valeur qui s'affiche ?

Comment faire pour faire en sorte que la valeur ne s'affiche que pour une entrée et pas pour toutes les entrées de mon formulaire.

En d'autres termes, mon but est de créer un assistant pour gérer les prestations.

Je clique au début de la prestation, et puis à la fin, ensuite grâce à un champ calculé donnant la différence entrel es deux j'obtiens le temps passé pour chaque prestations. et puis, je passe à la prestation suivante... et ainsi de suite.

Merci d'avance,
bàv,
0
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
23 avril 2009 à 15:01
Salut.

Pour sauvegarder la valeur, tu peux soit l'enregistrer dans un fichier ou dans une table. Etant donné que tu es sous Access, je choisirai l'enregistrement dans la table. Dans ce cas là, tout dépend de la façon dont ton formulaire sera fait. Si les champs du formulaire sont directement liés à une ou plusieurs table, normalement toute modif dans le formulaire est répercuté dans la table pour l'enregistrement correspondant. Siinon, tu peux aussi enregistrer à l'aide d'une requete Insert Into ou d'une fonction écrite en VBA ou les deux.

Pour la seconde question, je ne comprend pas bien. Le code ne s'applique qu'à un seul champ pour l'événement qui lui est associé. Donc si tu as plusieurs zone de texte et que tu associes une fonction à zone de texte 1 sur clic, la fonction ne sera exécuté que pour un clic sur la zone 1 et pas pour les autres zones.

Note : si tu veux réaliser un chrono en fait, tu peux utiliser la fonction que je t'ai envoyé précedemment pour récupérer l'heure. tu inclus un bouton commencer une session et tu associe cette instruction au clic

debut = Time()

Tu inclus un bouton qui permet de finir la session de travail et quand on clique dessus, tu associes le code suivant :

fin = Time()

Tu peux ensuite récupère le temps passé comme ceci :
durée = fin-début. Evidemment, il est peut être nécessaire de convertir les heures début et fin en minutes avant de les soustraire.

Cdlt

IC
1
LogicielAvocat
24 avril 2009 à 14:44
Grand Merci!

Ca a effectivement l'air de fonctionner. L'idée des boutons m'a l'air très bonne et je devrais pouvoir trouver comment convertir la différence en minutes.

Pour le reste, si tu permets j'aurais l'une ou l'autre question complémetnaire.

par exemple:

J'une une table dossier avec la liste de mes dossiers liée à la table prestations. Pour chaque prestations j'associe une seule valeur de la table dossier. Pour chaque dossier, je facture soit en français, soit en anglais, soit en néerlandais.

Je voudrais, grâce à une table de jonction ajouter une liste déroulante reprenant les différentes sortes de prestations pour gagner du temps lors du remplissage (par exemple, email, courrier, audience, etc...). Je voudrais que le formulaire access recherche dans la zone de liste déroulante les valeurs associées à la langue correspondante.

En d'autres termes, pour un dossier en Français --> email, courrier, audience, etc... Pour un dossier en néerlandais: email, brief, zitting ... en anglais, email, letter, hearing, etc...

As tu une petite idée ?

Merci mille fois quoi qu'il en soit pour tes bons conseils,
bàt,
0
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
20 avril 2009 à 21:56
Bonsoir

Cela va dépendre du langage utilisé, mais le principe est tjs le même :

tu crées une zone de texte ou un champ texte.
Tu lui associe un événement onclick et une fonction
la fonction récupère l'heure du système (l'instruction varie selon les langages, mais elle existe généralement)
la fonction affiche l'heure dans la zone de texte.

Si tu me dis en quel langage tu programmes, je pourrai ptet t'aider plus.

Cdlt

IC
0
LogicielAvocat
21 avril 2009 à 08:09
Merci pour ce témoignage d'intérêt.

Access 2003.

J'ai d'abord essayé via l'assistant création de macro.. Sur clic. exécuter code et puis fonction : =date() mais cela ne fonctionne pas.

A défaut, quel langage sql puis je utiliser ?

Merci d'avance,
0
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
24 avril 2009 à 20:07
Salut

pour les fonctions de conversion d'heure, tu peux utiliser la fonction timeserial() puis faire la soustraction et utiliser timevalue pour reconvertir en durée.

pour la traduction, je te suggère de créer les tables suivantes :

- prestations(idprestation, libprestation)
- langues(idlangue, langue)
- traduction(idtrad, numprestation, numlangue, Libtraduit)

Dans la table prestation, tu as la liste de tes prestations en français
dans la table langue, tu as la liste des langues
dans la table traduction, tu as pour chaque langue et chaque prestation le libéllé traduit.

Tu peux ensuite utiliser une requete de ce genre :

SELECT traduction.libtraduit, traduction.numlangue FROM traduction WHERE (((traduction.numlangue)=[langue]))

qui permet de lister les prestations traduites pour la langue demandée. Tu affectes le résultat à la zone de liste du formulaire devant les afficher. Evidemment, cela dépend de la façon dont ton formulaire est construit.

Bon courage

IC
0
LogicielAvocat
25 avril 2009 à 10:35
Merci bcp.

Pour la traduction, ce système ne suppose t il pas que l'on entre à chaque fois le paramètre [langue] sur le formulaire?

J'ai une table Dossiers sur laquelle j'associe, par dossier, une langue de prestation.

j'ai une table générale PrestationsGeneral, qui regroupe les tables suggérées par ton intermédiaire, les durées, le numDossiers, etc...

Je voudrais faire en sorte que lorsque j'arrive sur mon formulaire et que j'y sélectionné un dossier au moyen de la liste déroulante, dans la liste déroulante libprestation, les libellés soient affichés dans la langue associé au dossier dans la table dossier.

Cela te paraît t il faisable ?
0
LogicielAvocat > LogicielAvocat
25 avril 2009 à 10:54
Pour être franc, j'éprouve encore quelques difficultés à utiliser convenablement les fonctions.

Par exemple timeserial ou time value. J'aurais préférer me débouiller seul mais je ne parviens pas à comprendre comment les variables peuvent être automatiquement insérées au fur et à mesure de l'entrée du formulaire.

TimeSerial («hour»; «minute»; «second»)

Peux tu stp me donner la sythaxe?
0

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

Posez votre question
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
25 avril 2009 à 18:59
Salut,

pour ton formulaire, je pense que cela est tout à fait possible. Pour les fonctions, écrire là comme cela, ca va pas être top, sans parler du risque d'erreur. Je préfère événtuellement l'écrire directement dans vba et te l'envoyer par mail. Si cela te va, envoie moi un mail avec ton adresse.

A+

IC
0
LogicielAvocat
25 avril 2009 à 19:20
ok. Thanks

quentindebournonville@hotmail.com
0