Avatar billede lars_hoeberg Praktikant
10. marts 2009 - 13:21 Der 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?
Avatar billede Slettet bruger
10. marts 2009 - 13:29 #1
skal du ikke bruge Is Null
Avatar billede Slettet bruger
10. marts 2009 - 13:32 #2
du skal også have sat bundet kolonne til 2
Avatar billede 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!~)
Avatar billede Slettet bruger
10. marts 2009 - 13:38 #4
din underforespørgsel vil være:

select spillerID from tblHoldTildeling where DisciplinID=Forms!Spillertilmelding.txtDisciplinID

og så laver du relation på spillerID
Avatar billede lars_hoeberg Praktikant
10. marts 2009 - 17:10 #5
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 ?
Avatar billede mugs Novice
10. marts 2009 - 18:33 #6
Is Null = tom streng
Avatar billede Slettet bruger
10. marts 2009 - 21:19 #7
så vidt jeg kan se så virker din oprindelige SQL!~)
Avatar billede Slettet bruger
10. marts 2009 - 23:27 #8
du er velkommen til at sende til spg.eksperten@gmail.com
Avatar billede lars_hoeberg Praktikant
12. marts 2009 - 15:27 #9
Db er sendt
Avatar billede Slettet bruger
12. marts 2009 - 22:24 #10
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...
Avatar billede lars_hoeberg Praktikant
13. marts 2009 - 12:50 #11
Prøv at sætte feltstørrelser til 1;5 istedet for 0;5... Så kan du se holdID'et... Men hvorfor kan den ikke vise personnavnet?
Avatar billede lars_hoeberg Praktikant
13. marts 2009 - 12:55 #12
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...
Avatar billede 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!~)
Avatar billede 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;
Avatar billede 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!~)
Avatar billede lars_hoeberg Praktikant
13. marts 2009 - 14:17 #16
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 :-)
Avatar billede lars_hoeberg Praktikant
11. juni 2012 - 19:12 #17
Lukker denne, da der ikke er kommet en brugbar løsning. Jeg takker alle der er kommet med et bud
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