Avatar billede keldo Nybegynder
24. september 2002 - 16:46 Der er 14 kommentarer og
1 løsning

Find aut. værdien af et felt i en forespørgsel?

Hej gruppe,

jeg har et stort problem jeg ikke kan løse selv. Håber derfor på hjælp.
Jeg har en forespørgsel med 3 tabeller.
Min SQL ser foreløbig sådan ud:

SELECT Faktura.Abtekst, Faktura.FakturaID, kundedata.[A-abnr], kundedata.[B-abnr], kundedata.[C-abnr], kundedata.[D-abnr], kundedata.Firma
FROM kundedata INNER JOIN (Abtekst INNER JOIN Faktura ON Abtekst.Nøgle = Faktura.Abtekst) ON kundedata.[A-abnr] = Faktura.KundeNr
ORDER BY Faktura.FakturaID;

Forespørgslen kan naturligvis give et resultat på mange data.

Jeg vil nu gerne lave et nyt felt "Værdi-abnr" som indeholder værdien af enten kundedata.[A-abnr] eller kundedata.[B-abnr] eller kundedata.[C-abnr] eller kundedata.[D-abnr] (alle disse er tal værdier alá 111-222-333)afhængig af hvad værdien er i Faktura.Abtekst (som er et tekstfelt).
Men resultatet i "Værdi-abnr" vil jo være forskellig fra kunde til kunde. Resultatet af værdien skal bruges i en rapport.
Mit spørgsmål er hvordan får jeg den værdi frem??

MVH Keldo
Avatar billede sjap Praktikant
24. september 2002 - 16:53 #1
Prøv med nedenstående

IIf(Not IsNull(kundedata.[A-abnr]);kundedata.[A-abnr];IIf(Not IsNull(kundedata.[B-abnr]);kundedata.[B-abnr];IIf(Not IsNull(kundedata.[C-abnr]);kundedata.[C-abnr];IIf(Not IsNull(kundedata.[D-abnr]);kundedata.[D-abnr];))))
Avatar billede keldo Nybegynder
25. september 2002 - 08:15 #2
Hej Superjap

tak for dit forsøg men der mangler noget. Hvis jeg kører forespørgslen nu kommer resultatet udelukkende fra Kundedata.A-Abnr. Der mangler jo nogle kriterier, den skal jo checke hvad værdien er i faktura.abtekst og afhængig af den værdi skal den finde feltet Kundedata.A-abnr eller....til Kundedata.D-abnr.

Jeg er ikke bekendt med "IIf" funktionen, så hvordan er den bygget op?? Not IsNull hvad betyder det??
Avatar billede sjap Praktikant
25. september 2002 - 08:55 #3
Keldo

iif fungerer således:

iif("udtryk", værdi hvis "udtryk" er sand", værdi hvis "udtryk" er falsk")

I min funktion ovenfor er "udtryk" f.eks. sat til Not IsNull(kundedata.[A-abnr]);  IsNull returnerer værdien sand, hvis feltet er tom, men da det er det modsatte jeg er ude efter har jeg skrevet Not foran (dvs. værdien af Not IsNull er Sand, når IsNull er falsk).

Håber det letter lidt på forståelsen.
Avatar billede keldo Nybegynder
25. september 2002 - 09:09 #4
Superjap

Tak jeg blev lidt klogere på IIF funktionen. Men i mit felt er jeg interesseret i at få værdien af feltet Kundedata.[A-abnr].....OSV til kundedata.[D-abnr] (altså et nr alá 111222333) og IKKE et sand/falsk resultat. Skal det så kombineres med en DLookUp funktionen????

Jeg søger jo noget alá:

IIf Abtekst.[Abtekst]=1 or 2, then DlookUp Kundedata.[A-abnr], IIF Abtekst.[Abtekst]=3 or 4, then DlookUp Kundedata.[B-abnr], IIf Abtekst.[Abtekst]=4 or 5, then DlookUp Kundedata.[C-abnr], IIf Abtekst.[Abtekst]=6 or 7 or 8, then DlookUp Kundedata.[D-abnr]

Ex. hvis Abtekst.[abtekst]=2 så skal den skrive 150265478, da det er det nr der står i kundedata.[A-abnr]

Kan du se mit problem?
Avatar billede sjap Praktikant
25. september 2002 - 09:09 #5
Keldo

Du kan lave en nyt felt i din forespørgsel, hvor du kopierer nedenstående ind.

Værdi-abnr: IIf([Abtekst]="A";[A-abnr];IIf([Abtekst]="B";[B-abnr];IIf([Abtekst]="C";[C-abnr];IIf([Abtekst]="D";[D-abnr]))))

Jeg ved ikke hvad dine kriterier i "abtekst" er, så for eksemplets skyld har jeg her sat dem til A, B, C og D, men det kan du jo ændre efter behov.
Avatar billede sjap Praktikant
25. september 2002 - 09:11 #6
Keldo

Jeg havde ikke lige set din kommentar. Prøv at angive kriterierne for Abtekst så skal jeg prøve at tilpasse funktionen.
Avatar billede keldo Nybegynder
25. september 2002 - 09:25 #7
Kriterierne for Abtekst er alm. tekst ex. "Prøve"

Jeg kan godt få din
Værdi-abnr: IIf([Abtekst]="A";[A-abnr];IIf([Abtekst]="B";[B-abnr];IIf([Abtekst]="C";[C-abnr];IIf([Abtekst]="D";[D-abnr]))))
til at virke men kun på det første kriterie, altså hvis værdien af [Abtekst]="A" ved de andre kriterier skriver den #Fejl, selvom jeg kan se at de opfylder et af de andre kriterier.
Avatar billede sjap Praktikant
25. september 2002 - 09:29 #8
Prøv at lave den om til

Værdi-abnr: IIf([Abtekst]="A";[A-abnr];IIf([Abtekst]="B";[B-abnr];IIf([Abtekst]="C";[C-abnr];IIf([Abtekst]="D";[D-abnr];0))))

Jeg har blot tilføjet ;0 til allersidst. Det er blot for at give Værdi-abnr: værdien 0, hvis ingen af kriterierne passer.
Avatar billede keldo Nybegynder
25. september 2002 - 09:33 #9
Superjap

Det ser ud til at du er en SuperMan...;-)  det begynder at ligne noget rigtig rigtig godt....... Det virker næsten nu, dog er der lige en enkel ting. Hvad nu hvos der er flere muligheder for Abtekst hvor den skal svare [A-abnr]???

Jen troede jeg kunne skrive:
Værdi-abnr: IIf([Abtekst]="A" Or "AH" Or "hdf";[A-abnr];IIf([Abtekst]="B";[B-abnr];IIf([Abtekst]="C";[C-abnr];IIf([Abtekst]="D";[D-abnr]))))
men det kan den ikke finde ud af, så returnerer den bare alle værdierne fra [A-abnr] i alle felterne. Hvordan kan jeg eller have flere valgmuligheder for Abtekst??
Avatar billede sjap Praktikant
25. september 2002 - 09:40 #10
Helt så nemt er det ikke - men næsten:

Værdi-abnr: IIf([Abtekst]="A" Or [Abtekst]="AH" Or [Abtekst]="hdf";[A-abnr];IIf([Abtekst]="B";[B-abnr];IIf([Abtekst]="C";[C-abnr];IIf([Abtekst]="D";[D-abnr]))))
Avatar billede keldo Nybegynder
25. september 2002 - 09:57 #11
Superjap........Superman, det er perfekt, nu virker det. Jeg har brugt utrolig meget tid på det........så du skal have tusind tak for hjælpen. Kanon
Avatar billede keldo Nybegynder
25. september 2002 - 09:59 #12
Superjap.........jeg ville have givet dig alle point.....men jeg tror kun du fik 10......kan jeg rette det til 30??
Avatar billede sjap Praktikant
25. september 2002 - 10:01 #13
Keldo
Jeg fik 30 point og tak for det.
Avatar billede keldo Nybegynder
25. september 2002 - 10:03 #14
Velbekomme og igen tak for hjælpen........... Jeg vil fremover bruge Eksperten.dk, her kan man virkelig få hjælp og tilmed hurtigt
Avatar billede sjap Praktikant
25. september 2002 - 10:56 #15
Jeg er da kun glad for at være med til at give dig et positivt indtryk af Experten - sådan har jeg det nemlig også selv, så god fornøjelse.
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