Précédent   Forum du club des développeurs et IT Pro > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/02/2013, 17h46   #1
nesswaw
Nouveau Membre du Club
 
Inscription : juillet 2007
Messages : 142
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 142
Points : 27
Points : 27
Par défaut Est-il possible de faire cela sous Access?

Bonjour,

Je débute en Access et avant de me lancer dans le projet, j'aimerais savoir si il est réalisable "facilement" c'est à dire qu'il me faudra pas 6 mois pour le réaliser, sinon je peux essayer de m'orienter sur une autre solution, mais pour l'instant je dois faire des tests avec Access 2003.

J'ai deux tables:

Personnes:

- IdPersonne
- Nom
- Prenom

Cours:

- IdCours
- NbreDeCours
- PeriodeCours
- tempsCours
- fk_IdPersonne

Voici un exemple de données:

Personnes:

1, Pierre, Dubois
2, Paul, Delarue
3, Jacques, Duchateau

Cours:

1, 23, 01-2012, 36:18:52, 1
2, 42, 02-2012, 98:18:52, 1
3, 5, 01-2012, 120:07:03, 2
4, 18, 03-2012, 05:4:20, 2
5, 29, 05-2012, 27:18:52, 3
6, 11, 01-2013, 18:18:52, 3

Le but serait de faire des statistiques annuel du genre:

- Combien Pierre à eu de cours en 2012? => 65
- Pendant combien de temps Paul était en cours en 2012? => 125 heures 12min 23 secondes (oui, il me faut aussi les secondes )
- D'afficher une liste qui contient toutes les personnes avec leur stats pour une année donnée.

Est-ce possible de faire tout cela dans Access?
Possible de créer une sorte d'interface pour voir ces données affichées?

En testant un peu, j'ai déjà eu des soucis avec les heures, Access ne permet pas de stocker une heure plus grande que 24h, logique, c'est n'est plus une heure mais un temps, donc je dois stocker ces heures en centièmes? ou autre?

Ce n'est pas la création des tables qui me pose problèmes, c'est plus la création de l'interface et l'affichage des données que je n'ai jamais fais, existe-il des tutos? Avez-vous des pistes pour moi?

Merci d'avance
nesswaw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2013, 18h33   #2
GAYOT
Rédacteur/Modérateur
 
Avatar de GAYOT
 
Homme Jean-Damien GAYOT
Inscription : novembre 2004
Messages : 2 239
Détails du profil
Informations personnelles :
Nom : Homme Jean-Damien GAYOT
Âge : 57
Localisation : France, Meuse (Lorraine)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : novembre 2004
Messages : 2 239
Points : 4 397
Points : 4 397
Envoyer un message via Skype™ à GAYOT
Bonjour
Pour tout ce qui est interface, il faut passer par les formulaires.
Au début pour comprendre, ne pas hésiter à créer les formulaires avec l'assistant.
Sinon il y a des tutos ici:
http://access.developpez.com/cours/?page=interfaceform

Il y a également des bases de données exemple.
http://access.developpez.com/cours/?...nload#exemples

Bon courage
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!.

Tutoriels sur:http://jdgayot.developpez.com

Pas de sujets techniques par Mp. Sinon
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2013, 18h38   #3
jimbolion
Membre Expert
 
Avatar de jimbolion
 
Homme Jean-Marie BAGNIS
Moulticien
Inscription : janvier 2013
Messages : 1 005
Détails du profil
Informations personnelles :
Nom : Homme Jean-Marie BAGNIS
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Moulticien
Secteur : Santé

Informations forums :
Inscription : janvier 2013
Messages : 1 005
Points : 1 763
Points : 1 763
Par défaut Faisabilité

nesswaw bonsoir,

Aucun soucis pour tout ce que tu souhaites mettre en oeuvre.

Pour les heures, il te faudra stocker dans un champ numérique (calcul en secondes par exemple puis procéder à un formatage de tes données).

Sur le peu que tu décris, quelques heures suffisent à réaliser ce que tu souhaites. Aucune inquiétude.

Bon courage également

JimboLion
jimbolion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2013, 18h40   #4
nesswaw
Nouveau Membre du Club
 
Inscription : juillet 2007
Messages : 142
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 142
Points : 27
Points : 27
Bonjour,

Merci pour votre réponse, j'en conclus donc que c'est possible de faire mon projet?

Je vais allez voir ces liens, je vais surement revenir pour des questions.

Et concernant le stockage des temps au format heure, vous avez des idées?

Merci
nesswaw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2013, 19h42   #5
jimbolion
Membre Expert
 
Avatar de jimbolion
 
Homme Jean-Marie BAGNIS
Moulticien
Inscription : janvier 2013
Messages : 1 005
Détails du profil
Informations personnelles :
Nom : Homme Jean-Marie BAGNIS
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Moulticien
Secteur : Santé

Informations forums :
Inscription : janvier 2013
Messages : 1 005
Points : 1 763
Points : 1 763
Par défaut Additionner des heures

nesswaw bonsoir,

Sur cette question posée il y a quelques jours tu trouveras tes réponses

http://www.developpez.net/forums/d13...ionner-heures/

Bonne soirée

JimboLion
jimbolion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2013, 10h02   #6
chrtophe
Membre expérimenté
 
Homme
Technicien maintenance
Inscription : août 2011
Messages : 457
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : août 2011
Messages : 457
Points : 523
Points : 523
Par défaut stockage date/heure

Pour le stockage date et heure tu as un format de champs spécifique. Il est très simple d'effectuer une requête par rapport à une plage de date ( pour 2012 par exemple entre 1/1/2012 et 31/12/2012 )

Tu as des fonctions pour convertir des heures en secondes,minutes, etc...
chrtophe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2013, 10h29   #7
nesswaw
Nouveau Membre du Club
 
Inscription : juillet 2007
Messages : 142
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 142
Points : 27
Points : 27
Bonjour,

Merci pour toutes vos réponses.

J'ai commencé par créer des requêtes toutes simples, j'ai déjà deux questions:

Lors de la création de mes requêtes, je suis en mode SQL, et je fais une sorte de "mise en page" pour que ça plus lisible pour moi, exemple:

Code :
1
2
3
4
5
6
7
8
9
 
SELECT
champ1,
champ2,
champ3,
FROM table1
LEFT JOIN table2 ON table1.id = table2.id
WHERE ...
GROUP BY ...
Le problème que quand je ferme la requête et la ré-ouvre, il ne garde pas ma mise en page, il affiche:

Code :
1
2
3
4
 
SELECT champ1, champ2, champ3,
FROM table1 LEFT JOIN table2 ON table1.id = table2.id
WHERE ... GROUP BY ...
Y-a-t-il une option pour enregistrer la mise en page?

2ème soucis: Comment simplement afficher le résultat d'une requête dans un formulaire?

Exemple j'ai une requête du style: SELECT SUM(nbre) AS total FROm table

Et j'aimerais l'afficher dans un champ "Zone de texte" ou autre, j'ai essayé dans les options du champ -> Source contrôle -> j'ai mis: =[table]![nbre], sauf qu'il m'affiche un beau "#Nom*?"

Que faire?

Merci d'avance
nesswaw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2013, 17h51   #8
chrtophe
Membre expérimenté
 
Homme
Technicien maintenance
Inscription : août 2011
Messages : 457
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : août 2011
Messages : 457
Points : 523
Points : 523
Par défaut réponse aux questions

question 1

Je ne pense pas que tu puisses enregistrer la pagination de ta requête

question 2

Si ta requête est enregistré, tu auras au pseudo-champs nommé total dans ton exemple tu affecte cette requête comme source de données de ton formulaire.

Sinon en vba tu peux créer un recordsource contenant ta requête sql ( valable pour une requête figée en dur dans ton formulaire ) tu récupère la valeur dans une variable et l'affecte dans ton champ. Si cette méthode t’intéresses regarde la doc vba rescordsource

Si tu t'en sors pas reviens vers nous.
chrtophe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2013, 11h20   #9
nesswaw
Nouveau Membre du Club
 
Inscription : juillet 2007
Messages : 142
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 142
Points : 27
Points : 27
Bonjour,

Merci pour vos réponses, effectivement il n'est pas possible de sauvegarder la mise en forme de la requête SQL...bref pas grave...

J'ai bien avancé: créer les tables, les requêtes, et je fais maintenant un formulaire pour l'affichage des résultats.

Et c'est maintenant que j'ai une question: dans ma table un temps est enregistré en secondes dans un champ numérique, comment faire pour que dans mon formulaire je puisse l'afficher sous forme d'heures: 36h 26min 45 secondes, c'est possible? Si ou comment faire?

Merci d'avance
nesswaw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2013, 16h48   #10
jimbolion
Membre Expert
 
Avatar de jimbolion
 
Homme Jean-Marie BAGNIS
Moulticien
Inscription : janvier 2013
Messages : 1 005
Détails du profil
Informations personnelles :
Nom : Homme Jean-Marie BAGNIS
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Moulticien
Secteur : Santé

Informations forums :
Inscription : janvier 2013
Messages : 1 005
Points : 1 763
Points : 1 763
Par défaut Secondes en h/m/s

nesswaw bonsoir,

Voilà une fonction toute prête à l'emploi que tu pourras utiliser indifferemment dans tes formulaires ou requetes.

Code :
1
2
3
4
5
6
7
8
9
10
Function Secondes_heures_minutes(Tps_Sec)
'
heures = CLng(Tps_Sec / 3600)
minutes = CLng((Tps_Sec Mod 3600) / 60)
secondes = CLng(((Tps_Sec Mod 3600) Mod 60))
'
Secondes_heures_minutes = Format(heures, "00") & ":" & Format(minutes, "00") & ":" & Format(secondes, "00")
 
'
End Function
Bonne Soirée

JimboLion
jimbolion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2013, 07h42   #11
nesswaw
Nouveau Membre du Club
 
Inscription : juillet 2007
Messages : 142
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 142
Points : 27
Points : 27
Bonjour,

Merci pour votre réponse et cette fonction, seulement je dois l'insérer ou? dans l'éditeur VBA? je dois créer un module?

Et dans mon formulaire, je dois mettre ou cette fonction? dans le champ format?

Merci d'avance
nesswaw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2013, 07h52   #12
madefemere
Membre éprouvé
 
Homme Mandresy
Inscription : mai 2012
Messages : 282
Détails du profil
Informations personnelles :
Nom : Homme Mandresy
Localisation : Madagascar

Informations forums :
Inscription : mai 2012
Messages : 282
Points : 461
Points : 461
Bonjour,

Tu insères ce code dans un module public VBA pour y avoir accès dans toute l'application.

Dans un champ du formulaire, si tu as un champ TempsenSeconde, tu peux créer un nouveau contrôle zone de texte avec comme source :

Code :
=Secondes_heures_minutes([TempsenSeconde])
comme tu demandais ici :
Citation:
comment faire pour que dans mon formulaire je puisse l'afficher sous forme d'heures: 36h 26min 45
Bonne continuation
__________________
Mandresy

"Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.
madefemere est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h55.


 
 
 
 
Partenaires

Hébergement Web