10. marts 2009 - 13:21Der er
16 kommentarer og 1 løsning
Personnavn vil ikke vises når jeg tilføjer "Not in" kriterie
Hejsa.
Jeg har en formular med underformular. I underformularen skal jeg kunne tilføje personer udfra de valg jeg laver i hovedformularen. Underformularen indeholder en komboboks med følgende opslag:
SELECT SpillerID, Spillernavn FROM tblSpillere WHERE tblspillere.LandID=Forms!Spillertilmelding.txtLandID and tblspillere.SpillerID Not In (select spillerID from tblHoldTildeling where DisciplinID=Forms!Spillertilmelding.txtDisciplinID);
Her vil jeg jo så have komboboksen til at vise feltet "spillernavn", og har derfor 0cm;5cm i feltstørrelser. Men når jeg gør dette, er felterne blanke med de indtastninger jeg HAR foretaget mig. Ændrer jeg så feltstørrelser til at være 1cm;5cm;, viser felterne fint nok "SpillerID". Den vil altså IKKE vise navnet, som er påkrævet. Fjerner jeg så kriteriet for not in, så koden ser således ud, virker det hele som det skal...:
SELECT SpillerID, Spillernavn FROM tblSpillere WHERE tblspillere.LandID=Forms!Spillertilmelding.txtLandID
Mit spørgsmål er så: Hvad er det mit "Not in" kriterie gør, så spillernavn ikke kan vises som opslagsfelt, men KUN spillerID, og hvordan løser jeg det?
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Slettet bruger
10. marts 2009 - 13:29#1
skal du ikke bruge Is Null
Synes godt om
Slettet bruger
10. marts 2009 - 13:32#2
du skal også have sat bundet kolonne til 2
Synes godt om
Slettet bruger
10. marts 2009 - 13:36#3
det jeg mener med is null er at man kan f.eks. have en underforespørgsel inde i din forespørgsel og så lave din relation, sådan at den skal vise alle fra forespørgslen og kun dem som har hits fra din underforespørgsel.
Hvis man så sætter Is Null under kriterie for et felt i underforespørgslen, så får du den ønskede effekt.
Du kan faktisk få guidet forespørgsel til at lede dig igennem dette!~)
Synes godt om
Slettet bruger
10. marts 2009 - 13:38#4
din underforespørgsel vil være:
select spillerID from tblHoldTildeling where DisciplinID=Forms!Spillertilmelding.txtDisciplinID
Altså feltet jeg skriver til, når jeg vælger en spiller, er er tal felt, og skal altså skrive ID'et, så derfor skal bundet kolonne være 1.
Jeg forstår ikke helt hvad du mener med din "is null"
Det hele virker hvis jeg skriver SELECT SpillerID, Spillernavn FROM tblSpillere WHERE tblspillere.LandID=Forms!Spillertilmelding.txtLandID
Men altså ikke hvis jeg bruger min "not in" kriterie. Den vil godt vise SpillerID, hvis jeg sætter en bredde på dette felt... Jeg kan evt prøve at sende det til dig, så du kan se hvad jeg mener ?
din underformular viser SELECT * FROM tblSquadTildeling WHERE SquadID=Forms!Holdtilmelding.txtSquadID;
så vil du have en dropdown i underformularen, der har HoldId som kontrolelementkilde.... sql'en på dropdownboksen er SELECT HoldID, Holdnavn FROM tblHold WHERE DisciplinID=Forms!Holdtilmelding.txtDisciplinID and HoldID not in (Select HoldID from tblSquadtildeling) ORDER BY Holdnavn;
Læg mærke til: HoldID not in (Select HoldID from tblSquadtildeling), så kan den jo netop ikke vise det HoldId, som underformularen forsøger at vise!~)
Du sidder så i en situation hvor du kan se alt andet end det du vælger i din comboboks...
Det er jo ikke underfomularen der har "not in" kriteriet. Det er jo kun komboboksen. Og sætte du at den skal vise HoldID, som beskrevet ovenover, skriver den fint alle de tilmeldte. Det er først i det øjeblik jeg vil have skjult HoldID og vist Holnavn, at den fejler...
Synes godt om
Slettet bruger
13. marts 2009 - 13:25#13
Ja, det ser mærkeligt ud, men jeg er overbevist om at den viser holdid fordi det ligger i kontrolelementkilden. Problem er så når den skal vise holdnavn, der skal den jo slå op i forespørgslen for komboboksen og her eksisterer det specifikke holdid ikke!~)
Synes godt om
Slettet bruger
13. marts 2009 - 13:29#14
Jeg kan illustrere det med en fjollet løsning!~)
prøv at indsætte denne i komboboksen:
SELECT tblSquadTildeling.HoldID, tblHold.HoldNavn FROM tblSquadTildeling INNER JOIN tblHold ON tblSquadTildeling.HoldID = tblHold.HoldID WHERE (((tblSquadTildeling.SquadID)=[Forms]![Holdtilmelding].[txtSquadID])) UNION SELECT HoldID, Holdnavn FROM tblHold WHERE DisciplinID=Forms!Holdtilmelding.txtDisciplinID and HoldID not in (Select HoldID from tblSquadtildeling) ORDER BY Holdnavn;
Synes godt om
Slettet bruger
13. marts 2009 - 13:30#15
...men du skal nok have kigget på om din komboboks ikke skal vise noget andet end det du egentlig får den til!~)
Hmm ja, det er lidt underligt. Det eneste jeg skal være sikker på, er at det samme hold ikke tilmeldes 2 gange... Er der en anden måde det kan fikses på så? Forstår bare statig ikke hvorfor den ikke kan vise det holdnavn :-)
Lukker denne, da der ikke er kommet en brugbar løsning. Jeg takker alle der er kommet med et bud
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.