Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1311 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access et PHP]NZ non reconnu?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Access et PHP]NZ non reconnu?

n°1577115
Mythrandil
Posté le 20-06-2007 à 10:41:43  profilanswer
 

Bonjour à Tous,
 
je suis face à un problème.  
 
J'ai réalisé 4 requêtes sous Access, je vous les colle ici :
 
Prev1

Code :
  1. TRANSFORM nz(Count(*),0) AS nbMES
  2. SELECT projet.PROGRAMME_IDENTIFIANT
  3. FROM jalons, projet
  4. WHERE (((jalons.PROJET_NUMPROJET)=[projet].[projet_numprojet]) AND ((jalons.JALONS_MISEENSERVICE) Is Not Null) AND ((Month([jalons_miseenservice]))<Month(Now())) AND ((jalons.JALONS_ETATMISEENSERVICE)='1') AND ((Year([jalons_miseenservice]))=Year(Now())))
  5. GROUP BY projet.PROGRAMME_IDENTIFIANT
  6. PIVOT Month(jalons_miseenservice);


 
Prev2

Code :
  1. TRANSFORM nz(Count(*),0) AS nbMES
  2. SELECT projet.PROGRAMME_IDENTIFIANT
  3. FROM jalons, projet
  4. WHERE jalons.PROJET_NUMPROJET=projet.projet_numprojet And jalons.JALONS_MISEENSERVICE Is Not Null And Month([jalons_miseenservice])>=Month(Now()) And jalons.JALONS_ETATMISEENSERVICE Is Null And year(jalons_miseenservice)=year(now())
  5. GROUP BY projet.PROGRAMME_IDENTIFIANT
  6. PIVOT Month(jalons_miseenservice);


 
Livrables (Union entre Prev1 et Prev2)

Code :
  1. SELECT prev1.programme_identifiant,  [1] as Janvier, [2] as Fevrier, [3] as Mars, [4] as Avril,[5] as Mai, [6] as Juin,[7] as Juillet,[8] as Aout, [9] as Septembre, [10] as Octobre,[11] as Novembre, [12] as Decembre
  2. FROM  prev1 LEFT JOIN prev2 ON prev1.programme_identifiant=prev2.programme_identifiant
  3. UNION SELECT prev2.programme_identifiant,  [1] as Janvier, [2] as Fevrier, [3] as Mars, [4] as Avril,[5] as Mai, [6] as Juin,[7] as Juillet,[8] as Aout, [9] as Septembre, [10] as Octobre,[11] as Novembre, [12] as Decembre
  4. FROM prev2 LEFT JOIN prev1 ON prev1.programme_identifiant=prev2.programme_identifiant;


 
LivrablesFinal (Ajout de certains calculs et colonnes)

Code :
  1. SELECT programme_nomprogcapex AS Programme, Jan+Fev+Mar+Avr+Mai+Juin+Juil+Aout+Sept+Oct+Nov+Dec AS Qtes, Programme_PUMoyen, Programme_PUMoyen*Qtes AS Total, cdbl(nz(Janvier,0)) AS Jan, cdbl(nz(Fevrier,0)) AS Fev, cdbl(nz(Mars,0)) AS Mar, cdbl(nz(Avril,0)) AS Avr, cdbl(nz(Livrables.Mai,0)) AS Mai, cdbl(nz(Livrables.Juin,0)) AS Juin, cdbl(nz(Juillet,0)) AS Juil, cdbl(nz(Livrables.Aout,0)) AS Aout, cdbl(nz(Septembre,0)) AS Sept, cdbl(nz(Octobre,0)) AS Oct, cdbl(nz(Novembre,0)) AS Nov, cdbl(nz(Decembre,0)) AS [Dec]
  2. FROM Livrables, Programme
  3. WHERE Livrables.Programme_Identifiant=Programme.Programme_Identifiant;


 
Tout cela s'exécute sans difficulté sous Access.
 
Je vais d'ores et déjà répondre aux questions. Pourquoi tant de cdbl et de NZ dans la dernière requête ? Parce que je ne peux pas le faire avant puisque la jointure (jointure complète) m'ajoute des champs à NULL que je dois remplacer par 0 pour faire une somme.
J'aurais pu le faire dans la requête "Livrables" mais ça revient au même.
 
Je veux exécuter "LivrablesFinal" dans un script PHP. Voici l'erreur retournée :
 
Warning: odbc_exec: SQL error [Microsoft][Pilote ODBC Microsoft Access] Fonction 'nz' non définie dans l'expression, SQL state 37000 in SQL ExecDirect in C:\.... on line 9
 
Est la fonction NZ qui pose problème ? Est ce mon code ?
 
Voilà...
 
Merci d'avance de votre aide éventuelle.

mood
Publicité
Posté le 20-06-2007 à 10:41:43  profilanswer
 

n°1577140
Mythrandil
Posté le 20-06-2007 à 11:18:38  profilanswer
 

Bien je vais m'auto répondre parce que j'ai trouvé la solution.
 
On peut remplacer par une fonction SQL reconnue par ODBC plutot que le NZ de VBA.
 
Plutot que Select NZ(Machin,0) from Truc on peut écrire select iif(isnull(machin),0, machin) from truc.
 
C'est certes un peu plus lourd, mais ça marche.
 
Voilà !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access et PHP]NZ non reconnu?

 

Sujets relatifs
[VBA sous Access] Protection moduleRequêtes SQL sur AS400 via lien ODBC ? (PHP)
Qu'est ce qui est le plus rapide à charger entre un script PHP ou...[PHP] - récupérer le texte d'un fichier doc
[Access] Enregistrement dans table liée Outlook ![Access] Déploiement avec les Runtimes 2000
[RESOLU]-[PHP] - Affichage de caractérfe bizard lors d'un includeVBA Access probleme de renvoi
Compilation PHP + ODBCVBA Access porbleme méthode objet
Plus de sujets relatifs à : [Access et PHP]NZ non reconnu?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR