Avatar billede xfox Nybegynder
16. august 2007 - 10:44 Der er 15 kommentarer og
1 løsning

Ja/Nej Kriterie i forespørgsel

Jeg har felt1 og felt2 fra hver sin tabel. felt1 er tekst og felt2 er et Ja/Nej felt. Felt1 skal vises hvis der er sat "Ja" i felt 2. Hvordan skal Kriteriet se ud under Felt1, for at det kun kommer frem når betingelsen er opfyldt i felt2?
Avatar billede jensen363 Forsker
16. august 2007 - 10:48 #1
SELECT Tabel1.Felt1, Tabel1.Felt2
FROM Tabel1
WHERE (((Tabel1.Felt2)=-1));
Avatar billede xfox Nybegynder
16. august 2007 - 11:16 #2
Skal det stå i mit kiteriefelt under felt1 i mit forspørgselsvindue?
Avatar billede jensen363 Forsker
16. august 2007 - 11:45 #3
Nej, under felt2
Avatar billede xfox Nybegynder
16. august 2007 - 12:07 #4
Men hvis der kun er kriterie under felt2, vil felt1 vel altid blive vist, og det skal det ikke. Eller er det mig der ikke har forstået kriteriefeltet...? Jeg gik ud fra at kriteriefeltet var for at begrænse det pågældende felt.
Avatar billede mugs Novice
16. august 2007 - 12:13 #5
Et kriterie begrænser udtrækket fra tabellen til de poster, der matcher kriteriet, som du selv er inde på.

Jeg er ikke siker på, at du kan lave det i SQL. Men i VBA er der ingen problemer:

If Me.felt2 = true then
Me.felt1.visible = true
else:
me.felt2.visible = false
end if

en forudsætning er så, at egenskaben synlig for felt1 er sat til false.
Avatar billede jensen363 Forsker
16. august 2007 - 12:30 #6
Du har ikke fortalt noget om de to tabellers/felters indbyrdes afhængighed, altså deres relation til hinanden ... hvad binder de to tabeller sammen ?
Avatar billede xfox Nybegynder
16. august 2007 - 13:11 #7
Måske er det lidt nemmere at forstå hvis jeg sætter navne på.

Jeg har 2 tabeller. Skab og Tilbehør_stor. I Skab har jeg et bool felt der hedder Stor. I Tilbehør_stor har jeg et felt der hedder Varenummer. Begge tabeller har et felt der hedder Bredde, der skaber en relation i mellem dem. Hvis Skab.stor er sat skal jeg have vist Varenummer fra Tilbehør_stor gennem den relation der er. Nu gik jeg ud fra at jeg under Tilbehør_stor.varenummer i kriteriefeltet skulle have stående noget der kunne minde om: "If skab.stor=true" Altså hvis der er sat 1 i skab.stor, så skal den vise Tilbehør_stor.varenummer.
Lige nu hvor der ikke er sat noget kriterie, viser den Tilbehør_stor.varenummer på alle poster i min forspørgsel. Det er som sagt i forspørgselsvinduet i Designmode at jeg arbejder, og skal bruge koden, og ikke i VBA. Hjalp det på forståelsen?
Avatar billede jensen363 Forsker
16. august 2007 - 13:44 #8
SELECT Skab.Stor, Tilbehør_stor.Varenummer
FROM Skab INNER JOIN Tilbehør_stor ON Skab.Bredde = Tilbehør_stor.Bredde
WHERE (((Skab.Stor)=-1));
Avatar billede xfox Nybegynder
16. august 2007 - 14:04 #9
Kan jeg få det skåret ud i pap. Jeg kan godt lave det i SQL, men har lidt svært ved at håndtere det sammen med Access. Hvor skal sætningen stå henne? Har du evt mulighed for at lave en test på din egen maskine?
Avatar billede jensen363 Forsker
16. august 2007 - 14:19 #10
Der er tale om en ren forespørgsel, hvor du blot ser den SQL-sætning der ligger til grund for forespørgslen
Avatar billede xfox Nybegynder
16. august 2007 - 15:08 #11
OK så er jeg med, så går vi væk fra Access guiden, og over og arbejder direkte i SQL vinduet. Alle poster i Skab tabellen skal listes, men kun når der er kryds i Stor, skal varenummer fra tilbehør_stor listes. Din SQL giver kun alle de poster hvor Stor er krydset af. Den anden måde kræver vel en Select sætning i en Select sætning. Hvordan håndtere Access det og hvordan vil det se ud?
Avatar billede mugs Novice
16. august 2007 - 16:07 #12
I dit spørgsmål skriver du:

"Felt1 skal vises hvis der er sat "Ja" i felt 2"

Hvad mener du med ordet "vises"? Hvis du mener, at feltet ikke skal ses, tror jeg stadig ikke du kan lave det i SQL. Og det er korrekt, at jemsen's SQL sætning kun viser de poster hvor Skab.Stor = true, altså hvor posterne matcher dit kriterie.
Avatar billede xfox Nybegynder
16. august 2007 - 16:10 #13
Vises er også et dumt ord at bruge, det ved jeg. Jeg kunne omformulere det til at den skal hente værdien, ellers skal der komme et blankt felt.
Avatar billede mugs Novice
16. august 2007 - 16:33 #14
SELECT skab.stor, tilbehør_stor.varenummer, IIf([stor]=0,Null,[varenummer]) AS Udtryk1
FROM tilbehør_stor RIGHT JOIN skab ON tilbehør_stor.varenummer = skab.varenr;
Avatar billede xfox Nybegynder
16. august 2007 - 16:45 #15
Og det kunne du ikke have sagt for 5 timer siden...??? ;o)

Tusinde tak mugs, og til jer andre for indsatsen.
Avatar billede mugs Novice
16. august 2007 - 17:08 #16
Selv tak - Jeg har misforstået dig og troet, at feltet skulle være usynligt. Se min kommentar Kl. 12:13:06.
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