09. maj 2004 - 22:32Der er
10 kommentarer og 1 løsning
En forespørgsel, flere dynamiske resultater
Jeg prøver at få lidt dynamik ind en forespørgsel, som skal summe minutter i et tidsregistreringssystem efter forskellige kriterier.
I min forespørgsel har jeg skrevet: Felt: Udtryk1: GetGrupperEfter() Tabel: Total: Grupper efter Vis: "flueben"
Funktionen GetGrupperEfter() består af en række if-sætninger som afgør hvilken værdi GetGrupperEfter skal have. En af disse værditildelinger ser således ud: GetGrupperEfter = "[Aktivitet]![AktivitetsNavn]"
Resultatet skulle være at jeg fik summet antal minutter for hver Aktivitet, men jeg får kun een række med een samlet sum.
Hvis jeg laver flere forespørgsler hvor jeg indsatte værdierne, som f.eks.:
Felt: Udtryk1: [Aktivitet]![AktivitetsNavn]
får jeg alle aktiviteter på hver sin række, så jeg gætter på at fejlen ligger i specialtegnsætningen i værditildelingen, men talrige forsøg har ikke givet resultat. Hjælp.
SQL som bliver genereret af designviewet er således ud:
SELECT GetGrupperEfter() AS Udtryk1, Sum(TidsObservation.Minutter) AS SumOfMinutter FROM Projekt RIGHT JOIN (Opgave INNER JOIN (Aktivitet INNER JOIN (Afdeling INNER JOIN TidsObservation ON Afdeling.AfdelingID = TidsObservation.AfdelingId) ON Aktivitet.AktivitetsId = TidsObservation.AktivitetId) ON Opgave.OpgaveId = TidsObservation.OpgaveId) ON Projekt.ProjektId = TidsObservation.ProjektId WHERE (((TidsObservation.Dato) Between [Forms]![FAdministratorForm]![AdmStartDato] And [Forms]![FAdministratorForm]![AdmSlutDato])) GROUP BY GetGrupperEfter();
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
OK Hvad sker der hvis du laver en blank Query og laegger din Getgrupperefter() funktion ind som eneste felt? Hvis den kun viser en enkelt linje ligger fejlen for din nuvaerende query i funktionen og hvis den viser alle Aktivitetsnavne ligger fejlen i din query.
Hmmm, den gør hverken eller, den viser Udtryk1 [Aktivitet]![AktivitetsNavn] [Aktivitet]![AktivitetsNavn] [Aktivitet]![AktivitetsNavn] . . . [Aktivitet]![AktivitetsNavn]
Ser ud til at virke, på min Access 2000. Prøver det lige af i den fulde sammenhæng. Hvis andre skulle kunne bruge dette så er det DAO referencen der skal slås til ikke ADO :)
Der er en detalje som ikke var helt god: dbs.CreateQueryDef("temp",strSQL) overskriver ikke en eksisterende query. Giver problem anden gang funktionen køres.
Problemet blev løst ved at tilføje: DoCmd.DeleteObject acQuery, "temp" efter visning af query'en.
-> overchord. Hvis du vil have de point som du har fortjent, må du lave et svar :)
Både ja og nej, jeg fik mit problem løst, "Resultatet skulle være at jeg fik summet antal minutter for hver Aktivitet" dog på en anden måde end jeg havde regnet med.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.