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 06/04/2011, 15h49   #1
Invité de passage
 
Homme
Analyste d'exploitation
Inscription : avril 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Analyste d'exploitation
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2011
Messages : 5
Points : 0
Points : 0
Par défaut Execution requête SQL vide

Par un clic sur un bouton, je veux créer une requête d'analyse croisée conditionnelles avec le code ci-dessous :

Code :
1
2
3
4
5
6
7
8
9
sql = "TRANSFORM Count(DEMANDEUR.Numdemandeur) AS [N°]"
sql = sql & " SELECT CONTACT.Prestation"
sql = sql & " FROM PERIODE_STATS_CRMA, DEMANDEUR INNER JOIN CONTACT ON DEMANDEUR.Numdemandeur = CONTACT.Numdemandeur"
sql = sql & " WHERE (((CONTACT.[Date du contact])>= " & Debut & " And (CONTACT.[Date du contact])<= " & Fin & ") AND ((CONTACT.Prestation) Like ""*4*"" Or (CONTACT.Prestation) Like ""*5*"" Or (CONTACT.Prestation) Like ""*6*"" Or (CONTACT.Prestation) Like ""*7*"") AND ((CONTACT.Action) Like ""*4*""))"
sql = sql & " GROUP BY CONTACT.Prestation"
sql = sql & " PIVOT CONTACT.TypeACC;"
DoCmd.DeleteObject acQuery, "Thematique_suivi_projet_2011"
CurrentDb.CreateQueryDef "Thematique_suivi_projet_2011", sql
DoCmd.OpenQuery "Thematique_suivi_projet_2011"
La requête est créée mais renvoit un résultat vide. Il suffit que j'ouvre la requête en mode création que modifie n'importe quoi dans la requête (je bouge graphiquement l'une des tables impliqué dans la requête) pour que la requête renvoit bien les bonnes valeurs. Le code SQL n'a pas changé d'un pouce. Quelqu'un a-t-il une explication logique a ceci ?
Merci de votre réponse.
nono48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 17h34   #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,

Tu as essayé avec une variable querydef:

Code :
1
2
3
4
5
6
7
Dim qdf As DAO.QueryDef
 
...
...
 
set qdf = CurrentDb.CreateQueryDef "Thematique_suivi_projet_2011", sql
DoCmd.OpenQuery "Thematique_suivi_projet_2011"
Peut-être faudrait-il aussi libérer la variable qdf

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 07/04/2011, 01h10   #3
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
salut User et bienvenu nono48,

je pencherais pour un pb sur tes formats de variable debut/fin.
(en sql il faut les déclarer au format us et les entourer par le symbole: #)

vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 10h19   #4
Invité de passage
 
Homme
Analyste d'exploitation
Inscription : avril 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Analyste d'exploitation
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2011
Messages : 5
Points : 0
Points : 0
Par défaut Pas de résultat positif

J'ai essayé vos 2 propositions mais pas de résultat.
J'ai mis aussi ci-dessous, la totalité de la procédure en simplifiant la clause WHERE pour mieux comprendre. Merci de votre aide.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim qdf As DAO.QueryDef
 
Set db = CurrentDb
 
Debut = #1/1/2011#
Fin = #3/31/2011#
 
' Récupération des informations thématique des projets entreprises : innovation , développement durable ou autres
sql = "TRANSFORM Count(DEMANDEUR.Numdemandeur) AS [N°]"
sql = sql & " SELECT CONTACT.Prestation"
sql = sql & " FROM PERIODE_STATS_CRMA, DEMANDEUR INNER JOIN CONTACT ON DEMANDEUR.Numdemandeur = CONTACT.Numdemandeur"
sql = sql & " WHERE (((CONTACT.[Date du contact])>= " & Debut & " And (CONTACT.[Date du contact])<= " & Fin & "))"
sql = sql & " GROUP BY CONTACT.Prestation"
sql = sql & " PIVOT CONTACT.TypeACC;"
 
DoCmd.DeleteObject acQuery, "Thematique_suivi_projet_2011"
Set qdf = CurrentDb.CreateQueryDef(("Thematique_suivi_projet_2011"), sql)
'CurrentDb.CreateQueryDef "Thematique_suivi_projet_2011", sql
Set qdf = Nothing
Set db = Nothing
DoCmd.OpenQuery "Thematique_suivi_projet_2011"
nono48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 10h53   #5
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
Code :
1
2
Debut = "#1/1/2011#"
Fin = "#3/31/2011#"
teste aussi avec un "where true".

vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 14h13   #6
Invité de passage
 
Homme
Analyste d'exploitation
Inscription : avril 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Analyste d'exploitation
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2011
Messages : 5
Points : 0
Points : 0
Par défaut Problème résolu

Effectivement le problème venait bien du format de la variable passée en argument.
Cela fonctionne bien comme indiqué par vodiem : "#01/01//2011#".
Merci encore de vos réponse.
nono48 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 05h35.


 
 
 
 
Partenaires

Hébergement Web