> Tous les forumsAutres langages

 Access Requete complexe, si pas de resultat -->
Statut du sujet : NON RESOLU Imprimer
 GCUSSE
  Posté le 06/09/2003 @ 16:37  
 Petit astucien

171 Messages
hello, Voici mon ptit bleme. J'ai une table se composant de divers champs dont le champs heures (contenant un nombre d'heure sous format numérique) et le champs individuel (oui-non). De cette table, je doit extraire ,pour une certaine selection se faisant sur un autre champs, la somme des heures individuelles. Jusque là pas de prob. Mais si dans cette selection, il n'y a pas d'individuel, cette requete doit m'afficher 0. Ceci parce que cette requete selection fait partie d'une requete ajout et si elle n'affiche pas la somme ou zero, elle bloque l'ensemble de la requete mise à jour. Merci de votre aide
 Afficher le profil de GCUSSEEnvoyer un message privé à GCUSSE
 
 
Publicité
 baptiste  Posté le 06/09/2003 à 17:38  
Equipe PC Astuces



salut dans quel langage ?
Afficher le profil de baptiste Voir la configuration de baptisteEnvoyer un message privé à baptiste
 Revenir en haut de la page
 GCUSSE  Posté le 06/09/2003 à 19:40  
Petit astucien

171 Messages
Sorry j'avais oublié... (oupsss) soit en access ou en SQL (puisque moteur SQL sous access 2000) merci
Afficher le profil de GCUSSEEnvoyer un message privé à GCUSSE
 Revenir en haut de la page
 baptiste  Posté le 06/09/2003 à 22:40  
Equipe PC Astuces



Peux-tu aussi donner le code sql de ta requête ajout ? car là, je vois pas trop comment t'aider, car j'ai deux solutions différentes : 1/ tu ouvres un recordset avec ta requête genre : dim rst as recordset set rst=currendb.openrecordset("SELECT * FROM Matable;") et après tu vérifies si elle a des enregistrements : if rst.recordcount<>0 then 'execution du code else 'execution du code si pas d'enregistrement end if 2/ au niveau de ta requête, dans ton champ d'heures, tu mets : Nz([monChamp];0) qui normalement permets de convertir les résultats nuls en 0
Afficher le profil de baptiste Voir la configuration de baptisteEnvoyer un message privé à baptiste
 Revenir en haut de la page
 GCUSSE  Posté le 07/09/2003 à 14:48  
Petit astucien

171 Messages
au niveau du NZ, cela ne fonctionne malheureusement. Par contre, je te fourni les codes SQL: en gras se trouve le champs problematique 1ere requete (selection): [code]SELECT Sum(Calendrier.Heure) AS SommeDeHeure FROM Organismes INNER JOIN (FichesPres INNER JOIN Calendrier ON FichesPres.N°FichePresence = Calendrier.N°FichePrésence) ON (Organismes.N°CentreForm = FichesPres.N°CentreForm) AND (Organismes.N°CentreForm = FichesPres.N°CentreForm) GROUP BY Calendrier.N°FichePrésence, Organismes.TypeFormation, Calendrier.Indiv HAVING (((Calendrier.N°FichePrésence)=[Formulaires]![NomsClients]![FichesPres sous-formulaire].[Formulaire]![N°FichePresence]) AND ((Organismes.TypeFormation)="PREFORMATION") AND ((Calendrier.Indiv)=True));[/code] 2eme requete (ajout): [code]INSERT INTO Horforma ( FSSO, FSSRN, FSSSP, FSSR, RefFiche, INDIV ) SELECT AjoutHorforma.SommeDeHeure, AjoutHorforma2.SommeDeHeure, AjoutHorforma3.SommeDeHeure, AjoutHorforma4.SommeDeHeure, [Formulaires]![NomsClients]![FichesPres sous-formulaire].[Formulaire]![N°FichePresence] AS Expr1, AjoutHorformaI.SommeDeHeureFROM AjoutHorforma, AjoutHorforma2, AjoutHorforma3, AjoutHorforma4, AjoutHorformaI;[/code] je te remercie de ton aide
Afficher le profil de GCUSSEEnvoyer un message privé à GCUSSE
 Revenir en haut de la page
 baptiste  Posté le 07/09/2003 à 16:05  
Equipe PC Astuces



le souci vient quans tu n'as pas d'enregistrement dans la 1ere ? si tu as aussi une impression d'écran des resultats de l'extraction, ça pourrait aider aussi
Afficher le profil de baptiste Voir la configuration de baptisteEnvoyer un message privé à baptiste
 Revenir en haut de la page
 GCUSSE  Posté le 07/09/2003 à 16:45  
Petit astucien

171 Messages
c'est bien cela, s'il ne trouve pas d'enregistrement satisfaisant à ses conditions, elle n'affiche rien et dès lors, lorsque je lance la requete ajout en visu, rien "snots quedal sur fonds d'azur" pas une ligne car tous les champs de requetes ne sont pas remplis.
Afficher le profil de GCUSSEEnvoyer un message privé à GCUSSE
 Revenir en haut de la page
 baptiste  Posté le 07/09/2003 à 19:41  
Equipe PC Astuces



bah dans ce cas là j'opte pour ma première solution, on modifiant la requête ajout (une nouvelle) afin de satisfaire même s'il n'y a pas d'enregistrement
Afficher le profil de baptiste Voir la configuration de baptisteEnvoyer un message privé à baptiste
 Revenir en haut de la page
 GCUSSE  Posté le 08/09/2003 à 07:39  
Petit astucien

171 Messages
voila la solution que j'ai tenté d'adopter mais sans véritable succés. J'ai mon formulaire principal gerant mon client, dans celui-ci, j'ai un sous formulaire gerant la fiche de présence, et dans ce dernier se trouve un autre sous formulaire calendrier relatif à la fiche de présence. (en resume: Formprincipal:sous-form:sous-sous-form) j'ai récupéré le total d'individuel dans un controle de liste (le seul capable de m'afficher le total) placé dans le sous-sous-form calendrier. je fait mon test dessus. mais j'ai un serieux probleme. il ne me récupére pas la données actuelle, mais l'avant derniere donéee et ce malgré le reqery. J'ai du certainement foirer quelque chose. Voici comment je procede: je l'actualise ( controle.requery) je me deplace dessus, je selectionne son contenu ( controlle.selected(0)= true) et ensuite j'effectue la distinction (if controle.value(0) = 0 then .... ) même ma requete me donne l'avant derniere valeur???? je n'y comprend plus rien...
Afficher le profil de GCUSSEEnvoyer un message privé à GCUSSE
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page