Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2011, 15h35   #1
Invité de passage
 
Homme Guillaume Pincemy
Chargé d'études environnement
Inscription : mai 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Pincemy
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Chargé d'études environnement
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 11
Points : 1
Points : 1
Par défaut planning débutant à la date du jour

Bonjour,

C'est la première fois que je pose une question sur un tel forum, j'espère ne pas me tromper de section.

J'ai créé une petite base de données sous access 2007 pour mon entreprise. J'ai mis un calendrier sur un formulaire, afin d'afficher, sur deux mois, les réunions prévues.
J'ai basé tout ça sur une requête en analyse croisée et cela fonctionne.

Le problème est que mon calendrier débute au début du mois et que ma patronne voudrait que le calendrier débute à la date du jour et qu'il se termine 60 jours plus tard...
Je n'arrive pas à faire cela, car dans mon analyse croisée, je suis obligé d'associer le jour n°1 du mois au chiffre "1", et la donnée s'affiche sur le formulaire dans le champ "date-réunion.1".

Je ne suis pas du tout sûr d'être clair mais je développe tout ça sans personne dans mon entourage qui ne comprenne Access donc je me sens un peu seul !

Je remercie d'avance les bonnes âmes qui accepteront de m'aider !
Kromai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 16h43   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 256
Points : 5 256
Salut,

Remplace dans ta requête croisée:

par

Code :
DateDiff("d",[DebutCalendrier],[DateReunion])+1
Ici je suppose que ton champ date dans ta table se nomme "DateReunion" et que le paramètre, 1er jour du calendrier se nomme "[DebutCalendrier]"

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 17h19   #3
Invité de passage
 
Homme Guillaume Pincemy
Chargé d'études environnement
Inscription : mai 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Pincemy
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Chargé d'études environnement
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 11
Points : 1
Points : 1
Salut,
Merci beaucoup pour ta réponse !

J'ai en effet dans mon champ le Day(DateReunion). Mais je n'ai pas de champ définissant le début du calendrier.

En fait, ma requête est comme suit :
R_Pres_dates_global-now : la requête qui contient les données,
([DateJ]) : un champ qui va rechercher toutes les dates à partir de aujourd'hui jusque dans 60 jours : en tete de colonne
R_Pres_dates_global-now.réunion : la donnée (réunion ou pas réunion)
[R_Pres_dates_global-now].[Nom projet] : les en têtes de lignes.

Code sql :
1
2
3
4
5
TRANSFORM Count([R_Pres_dates_global-now].Réunion) AS CompteDeRéunion
SELECT [R_Pres_dates_global-now].[Nom projet]
FROM [R_Pres_dates_global-now]
GROUP BY [R_Pres_dates_global-now].[Nom projet], [R_Pres_dates_global-now].ID_projet
PIVOT Day([DateJ]) IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,60,62);

Si je ne mets pas les nombres de 1 à 62 en tête de colonne, il affiche juste les dates et il part bien de la date du jour. MAIS, le formulaire ne veut du coup plus l'afficher car c'est une donnée variable () Et si je met ces nombres de 1 à 62, le formulaire veut bien afficher, mais pour lui le nombre 1 est égal au premier jour du mois...
Peut être dois je préciser que mon formulaire "calendrier" possède 62 champs à la suite, le premier étant lié à la colonne 1 de l'analyse croisée, le deuxième à la colonne 2 etc...

Ce que je pense c'est que ma manière de faire le calendrier à la base n'est sûrement pas la meilleure ^^

Merci
Kromai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 17h25   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 256
Points : 5 256
Re,

Je vois 1 peu ton problème :

Peux-tu donner le sql de la requête qui va chercher les données:

"R_Pres_dates_global-now"

Tu dois avoir des paramètres sur le champ DateJ ?

Me-trompe-je ?

EDIT:

Si tu disposes de paramètres qui sont des zones de texte dans ton formulaire, il te faut les remplacer par une zone de texte [DebutCalendrier] de type date située sur ton formulaire et après dans ta requête "R_Pres_dates_global-now", tu fais un truc comme :

Code :
DateJ between [DebutCalendrier] and [DebutCalendrier] +59
qui selectionne les dates comprises dans les 60 jours à partir de [DebutCalendrier].

A Voir
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 17h49   #5
Invité de passage
 
Homme Guillaume Pincemy
Chargé d'études environnement
Inscription : mai 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Pincemy
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Chargé d'études environnement
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 11
Points : 1
Points : 1
A oui je vois ! Je pense que c'est une très bonne piste merci beaucoup ! Je suis très étonné et soulagé que tu comprennes ce que je dis ! A mon bureau ils pensent qu'en cliquant sur deux boutons tout se programme lol et dès que je commence à expliquer le fonctionnement d'une base de données pour eux c'est du langage extra terrestre !


Voilà le SQL de la requête : "R_Pres_dates_global-now" : (pour simplifier je n'ai posé le problème que pour les réunions, mais en fait sur mon calendrier je fais apparaître d'autres données. Je pense qu'on peut rester sur le cas des réunions pour simplifier, les autres champs fonctionnent de la même façon )


Code sql :
1
2
3
SELECT R_Jour_now.DateJ, T_dates.Réunion, T_dates.Rendu, T_dates.[Guillaume prévu], T_dates.ID_projet, T_projet.[Nom projet], T_dates.[Caroline prévu], T_dates.[Julien prévu], T_dates.[Laurence prévu], T_dates.[Date début projet], T_dates.[Date fin projet], T_dates.[Pauline prévu], T_dates.[Pauline passé]
FROM R_Jour_now LEFT JOIN (T_dates LEFT JOIN T_projet ON T_dates.ID_projet = T_projet.ID_projet) ON R_Jour_now.DateJ = T_dates.Date
GROUP BY R_Jour_now.DateJ, T_dates.Réunion, T_dates.Rendu, T_dates.[Guillaume prévu], T_dates.ID_projet, T_projet.[Nom projet], T_dates.[Caroline prévu], T_dates.[Julien prévu], T_dates.[Laurence prévu], T_dates.[Date début projet], T_dates.[Date fin projet], T_dates.[Pauline prévu], T_dates.[Pauline passé];
ET voici le sql de la requête R_jour_now, qui me sert à lister les dates entre aujourd'hui et dans 60 jours :

Code sql :
1
2
3
4
PARAMETERS [Forms]![F_Planning]![An] Value, [Forms]![F_Planning]![Mois] Value;
SELECT DateSerial(Year(Now()),Month(Now()),[Jour]) AS DateJ, T_Jour.Champ1, DateSerial([Forms]![F_planning]![An],[Forms]![F_planning]![Mois],[Jour]) AS Expr1
FROM T_Jour
WHERE (((DateSerial(Year(Now()),Month(Now()),[Jour]))>=DateSerial(Year(Now()),Month(Now()+1),Day(Now())) AND (DateSerial(Year(Now()),Month(Now()),[Jour]))<DateSerial(Year(Now()),Month(Now()),Day(Now())+60)));

Merci encore d'essayer de m'aider !! je risque de ne pas pouvoir répondre avant 2-3 heures.
Kromai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 18h13   #6
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 256
Points : 5 256
Salut,

A mon avis, il faut supprimer, sur le formulaire F_Planning, les 2 zones de textes:
[Forms]![F_Planning]![An]
[Forms]![F_Planning]![Mois]

Ensuite,

La requête "R_Jour" contenant les 60 jours devient :

Code sql :
1
2
3
 
SELECT DateAdd("d",[Jour]-1,Date()) AS DateJ
FROM T_Jour;

et la requête croisée :

Code sql :
1
2
3
4
5
TRANSFORM Count([R_Pres_dates_global-now].Réunion) AS CompteDeRéunion
SELECT [R_Pres_dates_global-now].[Nom projet]
FROM [R_Pres_dates_global-now]
GROUP BY [R_Pres_dates_global-now].[Nom projet], [R_Pres_dates_global-now].ID_projet
PIVOT (DateDiff("d",Date(),[DateReunion])+1) IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,60,62);

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 09h08   #7
Invité de passage
 
Homme Guillaume Pincemy
Chargé d'études environnement
Inscription : mai 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Pincemy
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Chargé d'études environnement
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 11
Points : 1
Points : 1
Ok, merci beaucoup j'essaie dans la matinée et je te tiens au courant.
Kromai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 15h54   #8
Invité de passage
 
Homme Guillaume Pincemy
Chargé d'études environnement
Inscription : mai 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Pincemy
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Chargé d'études environnement
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 11
Points : 1
Points : 1
Ca fonctionne !!

Merci beaucoup d'avoir pris le temps de m'aider tu m'enlèves une grande épine du pied.

Bonne journée !
Kromai est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h07.


 
 
 
 
Partenaires

Hébergement Web