Avatar billede woolbox Nybegynder
15. april 2004 - 01:43 Der er 37 kommentarer og
1 løsning

Query returnerer nul records, probs. med relationer?

Jeg har en query som skal liste regningsadresserne for hver sag i en tabel.

Hver sag er enten koblet på en kendt institution eller bliver registreret som UdenForOrdning, hvor adressen indtastes på den enkelte sag. Registreres sagen under en institution er her også to muligheder: Enten skal regningen sendes til institutionen selv eller til den overordnede abonnent (der kan være flere institutioner under hver abonnent).

Stillet op i lidt pseudokode, uden hensyn til semantik :)...

If Sager.UFO = true Then
    RegningsAdresse = UFOer.Adresse
Else
    If Institution.RegningTil = institution Then
        RegningsAdresse = Institution.Adresse
    Else
        RegningsAdresse = Abonnent.Adresse

Inden jeg begyndte at tilføje UFO funktionen virkede alt fint vha. nedenstående for hvert regningsfelt:

RegningAdresse: IIf([RegningTil]='institution';Institutioner!Adresse;Abonnenter!Adresse)

Jeg troede så bare at jeg kunne tilføje lidt, så det ser sådan ud:

RegningAdresse: IIf([UFO]=True;UFOer!Adresse;IIf([RegningTil]='institution';Institutioner!Adresse;Abonnenter!Adresse))

Men når queryen eksekveres nu, indeholder den ingen poster.

Jeg kan smide et link til et screendump at tabelrelationerne hvis der er behov for det, min server er bare nede pt. :(

Håber i kan hjælpe, og måske give nogle fifs til hvordan man troubleshooter en query der returnerer nul records!?
15. april 2004 - 08:57 #1
hmm, det lyder mærkeligt, da uanset hvad du skriver i en kolonne-definition, så burd du få det samme antal records (med mindre at der er tale om en 'Group by'-forespørgsel).
Det hele burde afhænge af kriterierne. Kan du enten vise SQL'en eller give et link til et screendump til selve forespørgslen i designvisning?
Avatar billede woolbox Nybegynder
15. april 2004 - 09:01 #2
Avatar billede woolbox Nybegynder
15. april 2004 - 09:07 #3
Query definition: http://www.rask.d2g.com/diverse/eksperten.dk/spm/489393/RegningsAdresse_Definitioner.PNG

Helt teksten i felt 3-8 er:

RegningNavn: IIf([UFO]=True;UFOer!Navn;IIf([RegningTil]='institution';Institutioner!Navn;Abonnenter!Navn))
RegningAtt: IIf([UFO]=True;UFOer!Kontakt;IIf([RegningTil]='institution';Institutioner!Kontakt;Abonnenter!Kontakt))
RegningAdr1: IIf([UFO]=True;UFOer!Adresse1;IIf([RegningTil]='institution';Institutioner!Adresse1;Abonnenter!Adresse1))
RegningAdr2: IIf([UFO]=True;UFOer!Adresse2;IIf([RegningTil]='institution';Institutioner!Adresse2;Abonnenter!Adresse2))
RegningPostnr: IIf([UFO]=True;UFOer!Postnr;IIf([RegningTil]='institution';Institutioner!Postnr;Abonnenter!Postnr))
RegningBy: IIf([UFO]=True;UFOer!By;IIf([RegningTil]='institution';Institutioner!By;Abonnenter!By))

Jeg har før bakset med at en query returnere nul records uden fejl, men kan ikke gennemskue hvad der går galt her.

Sig endelig til hvis du har brug for mere info!
15. april 2004 - 09:49 #4
Hvad er [UFO]? Jeg kan ikke se, at det er et felt. Er det en funktion? (i så fald er syntaksen forkert)
15. april 2004 - 10:14 #5
woolbox?
Avatar billede woolbox Nybegynder
15. april 2004 - 10:53 #6
Sorry, thomas - er på arb. så jeg så ikke lige at du havde skrevet (kommer til en anden  mail) :)

UFO betyder Uden For Ordning og et afkrydsningsfelt man sætter på en sag hvis det ikke er en af de faste institutioner der har startet sagen.
15. april 2004 - 10:58 #7
ok, men findes feltet i tabellen Sager og hedder det "UFO"?
Avatar billede woolbox Nybegynder
15. april 2004 - 11:02 #8
Jeps! - hmmm, skal jeg skrive [UFO]=yes i stedet for [UFO]=true?
15. april 2004 - 11:03 #9
nej, True eller blot:
IIf([UFO];UFOer!Navn....

Har du evt mulighed for at sende en db til mig med de relevante tabeller og forespørgslen?
Avatar billede woolbox Nybegynder
15. april 2004 - 11:06 #10
Jeps, ved dog ikke om jeg kan nå det før i aften... Jeg smider lige et link herinde når den er klar :)
15. april 2004 - 11:11 #11
eller send den direkte til mig (min email adresse finder du ved at klikke på mit navn)
Avatar billede woolbox Nybegynder
16. april 2004 - 00:09 #12
Så ligger databasen klar, jeg sender et link på opfordring til dem der skulle have lyst. Jeg kan desværre ikke sende DB'en via det her lorte dial-up, da min webmail konstant timer ud...

Der er to queries som er interessante mht. dette spørgsmål:

RegningsAdresse - som virker nu, men skelner mellem regning til institution eller abonnent
RegningsAdresse_testUFO - som gerne skulle kunne give den korrekte adresse, hvad enten regningen skal sendes til en UFO, inst. eller abn.

Håber i kan hjælpe! :)
16. april 2004 - 06:50 #13
smid gerne et link til mig, Woolbox.
Avatar billede woolbox Nybegynder
16. april 2004 - 10:44 #14
Gjorde jeg ikke det igår aftes? - Nå skidt være med det, smider det her så: http://www.rask.d2g.com/diverse/eksperten.dk/spm/489393/journalsystem.zip
16. april 2004 - 10:53 #15
Hej Woolbox,

Det slår mig, at fejlen jo ikke skyldes nogle af dine kriterier i kolonnerne (hvilket jeg jo heller ikke kunne forstå), men at du har tilføjet 2 tabeller til forespørgslen i forhold til den, som virkede. Disse 2 nye tabeller sætter i høj grad begrænsning på outputtet, da den alm. join mellem hver tabel kræver at der er en forekomst på begge sider.

Prøv i stedet at indsætte denne SQL:

SELECT Sager.ID, Institutioner.ID, IIf([UFO]=True,[UFOer]![Navn],IIf([RegningTil]='institution',[Institutioner]![Navn],[Abonnenter]![Navn])) AS RegningNavn, IIf([UFO]=True,[UFOer]![Kontakt],IIf([RegningTil]='institution',[Institutioner]![Kontakt],[Abonnenter]![Kontakt])) AS RegningAtt, IIf([UFO]=True,[UFOer]![Adresse1],IIf([RegningTil]='institution',[Institutioner]![Adresse1],[Abonnenter]![Adresse1])) AS RegningAdr1, IIf([UFO]=True,[UFOer]![Adresse2],IIf([RegningTil]='institution',[Institutioner]![Adresse2],[Abonnenter]![Adresse2])) AS RegningAdr2, IIf([UFO]=True,[UFOer]![Postnr],IIf([RegningTil]='institution',[Institutioner]![Postnr],[Abonnenter]![Postnr])) AS RegningPostnr, IIf([UFO]=True,[UFOer]![By],IIf([RegningTil]='institution',[Institutioner]![By],[Abonnenter]![By])) AS RegningBy
FROM ((Abonnenter INNER JOIN Institutioner ON Abonnenter.RekvKode = Institutioner.Abonnent) LEFT JOIN Sager ON Institutioner.ID = Sager.Institution) LEFT JOIN UFOer ON Sager.Sagsnr = UFOer.SagsNr;
Avatar billede woolbox Nybegynder
16. april 2004 - 11:08 #16
Damn du er hurtig! :) - Jeg ser lige hvornår jeg får en ledig stund til at teste det (kort frokostpause), foreløbig tak! :)
Avatar billede woolbox Nybegynder
16. april 2004 - 12:41 #17
Ok, det ser lidt bedre ud. Nu lister den rent faktisk regningsadresserne og kan stadigvæk kende forskel på regningl til abonnent eller institution.

Men, selvom jeg på en sag krydser UFO af så returnere den stadigvæk abonnentens/institutionens navn og adresse!?
16. april 2004 - 12:56 #18
hmm...ikke hos mig !??
16. april 2004 - 12:57 #19
næ....ikke alligevel...vender tilbage om lidt
16. april 2004 - 13:09 #20
Efter at have studeret dine tabeller nærmere, kan jeg se, at fejlen ligger i din UFOer-tabel - nærmere betegnet i feltet Sagsnr. Som dit opslag (komboboks) er defineret, så er det ID fra Sager som du gemmer i tabellen i stedet for Sagsnr. Så hvis du fjerner ID fra rækkekilden og ændrer Antal kolonner til 1 og fjerner kolonnebredderne, så burde du kunne rette værdierne i Sagsnr.

Herefter vil det virke.

Du kan selvfølgelig også ændre UFO'er.Sagsnr til et numerisk felt (hvilket vil være det mest optimale), men så skal du ændre Join-forbindelsen mellem de 2 tabeller også.
Avatar billede terry Ekspert
19. april 2004 - 10:13 #21
what is the status here?
Avatar billede woolbox Nybegynder
19. april 2004 - 23:45 #22
Hey Thomas, så er weekenden ovre - sidder og kigger på sagerne nu :)
Avatar billede woolbox Nybegynder
19. april 2004 - 23:48 #23
Hey terry, hopefully Thomas is found the problem - will get back to ya.

Also, seems that constantly new demands will eventually drain me of all my points in here. I will post a new question soon.
Avatar billede terry Ekspert
20. april 2004 - 17:51 #24
Hi!
You shouldnt give so many points, that way you can place more questions :o)
And Thomas as enough too :o)
Avatar billede woolbox Nybegynder
21. april 2004 - 00:03 #25
Thomas, jeg forstår simpelthen ikke hvad du mener! :) ...

"Som dit opslag (komboboks) er defineret, så er det ID fra Sager som du gemmer i tabellen i stedet for Sagsnr".
- Hvilken komboboks mener du? I hvilken form? Så vidt jeg kan se indeholder UFOer-tabellen de rigtige data på den sag jeg har sat kryds i UFO ved.

"Du kan selvfølgelig også ændre UFO'er.Sagsnr til et numerisk felt (hvilket vil være det mest optimale), men så skal du ændre Join-forbindelsen mellem de 2 tabeller også."
- Det ville jeg også gerne men de insisterede på at sagsnr skal have et punktum mellem år og sagsnummer, derfor er det gemt som text :(
21. april 2004 - 00:11 #26
Hej Rasmus,

Jeg har lige prøvet at sende dig db'en, men fik en fejl tilbage om at du ikke kunne modtage den på rasmusrask@mailme.dk.
Jeg kan ikke længere huske hvad jeg lavede og hvad jeg ikke lavede ;o)

Men den komboboks, som jeg snakker om, er det opslag, som er defineret på feltet Sagsnr på UFOer-tabellen.

Har du en anden mail-adresse?
21. april 2004 - 00:12 #27
Terry-> You are so full of good ideas :o)
Avatar billede woolbox Nybegynder
21. april 2004 - 00:22 #28
Det andet spørgsmål jeg snakkede om: http://www.eksperten.dk/spm/491619, don't worry Terry I haven't rated it that high - Yeah, Thomas sure got a lot if points, but he probably earned it :)
Avatar billede woolbox Nybegynder
21. april 2004 - 00:34 #29
Hej Thomas, prøv eksperten@rask.dk, den er dedikeret til sådanne emergencies :)

Jeg har prøvet at ændre på den kombobox, men uden resultat! :(
Avatar billede woolbox Nybegynder
21. april 2004 - 00:36 #30
Går udfra at du mener combo'en under fanebladet lookup i field defintion for SagsNr i UFOer?

Kan ikke se at det har gjort en forskel1?
Avatar billede woolbox Nybegynder
21. april 2004 - 00:38 #31
Det er stadigvæk Institutionens adresse og intet sagsnr queryen returnerer.
21. april 2004 - 09:16 #32
her lige sendt både frontend og backend retur til ny adresse...
21. april 2004 - 21:58 #33
Woolbox, har du fåt kigget på det?
Avatar billede woolbox Nybegynder
23. april 2004 - 00:17 #34
Hej Thomas, jeg har modtaget DB'en fra dig og tak for det. Jeg har desværre ikke haft tid til at kigge på det endnu, da mine sidste to dage har været booket. På søndag har jeg afsat noget tid til at lure hvad du har sendt mig!

God weekend! :)
Avatar billede woolbox Nybegynder
27. april 2004 - 00:39 #35
Det kan godt være at jeg er helt blank, men kan simpelthen ikke få det til at virke - heller ikke det du sendte! Der vises ingen records i queryen! :(

Jeg opdagede en fejl i UFO formen, den gemte ID istedet for Sagsnr i feltet Sagsnr, det. Så slettede jeg alle records i UFOer og forsøgte at gøre en sag til UFO igen. Efter at indtaste oplysningerne og verifiere at de står korrekt tjekker jeg queryen som returnerer nul records.

Belært at hvad du tidligere sagde omkring joins prøvede jeg så at lave om på joins'ne, så de gik fra hhv. Sager til UFOer og Sager til Institutioner men fik en ambigous joints fejl.

Jeg forstå ikke hvorfor det virker hos dig og ikke hos mig? Synes også at jeg har tjekket flere gange at lookup på sagsnr. i UFO'er tabllen er bundet til Sagsnr feltet.

Er jeg bare for træt - eller ???
27. april 2004 - 08:52 #36
hmm, der går lidt lang tid mellem, så det er lidt svært at huske alle detaljer om problemet fra gang til gang.

Men de 2 db'er, som jeg sendte dig skulle gerne give én post i forespørgslen "RegningsAdresse_testUFO".
Har du sammenkædet korrekt tl den backend, som jeg sendte?
Avatar billede woolbox Nybegynder
28. april 2004 - 00:01 #37
Hey, fandt ud af det nu. Det du lavede fik faktisk queryen til at virke - nu var det min UFO form som gemte sagsnr istedet for Sager.ID, brugte to forskellige kriterier! :)

Er lige ved at se om jeg nu kan implementere det samme i min udviklings DB (har lavet noget kode siden jeg sendte den til dig nemlig).

Jeg vender lige tilbage du, foreløbig tak!!
Avatar billede woolbox Nybegynder
17. maj 2004 - 02:03 #38
Hey Thomas, så er det rettet til og spiller - tak for hjælpen! :)

Har du spekuleret over mit problem i http://www.eksperten.dk/spm/491619?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester