keldo
(15.317 point. Point ude: 0)
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
Skrevet tir. d. 24. september 2002 kl. 16:53:51| #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];))))
Skrevet ons. d. 25. september 2002 kl. 08:15:57| #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??
Skrevet ons. d. 25. september 2002 kl. 08:55:27| #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.
Skrevet ons. d. 25. september 2002 kl. 09:09:17| #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?
Skrevet ons. d. 25. september 2002 kl. 09:09:29| #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.
Skrevet ons. d. 25. september 2002 kl. 09:11:44| #6
Keldo
Jeg havde ikke lige set din kommentar. Prøv at angive kriterierne for Abtekst så skal jeg prøve at tilpasse funktionen.
Skrevet ons. d. 25. september 2002 kl. 09:25:18| #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.
Skrevet ons. d. 25. september 2002 kl. 09:29:08| #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.
Skrevet ons. d. 25. september 2002 kl. 09:33:39| #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??
Skrevet ons. d. 25. september 2002 kl. 09:40:54| #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]))))
Skrevet ons. d. 25. september 2002 kl. 09:57:16| #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
Skrevet ons. d. 25. september 2002 kl. 09:59:28| #12
Superjap.........jeg ville have givet dig alle point.....men jeg tror kun du fik 10......kan jeg rette det til 30??
Skrevet ons. d. 25. september 2002 kl. 10:01:42| #13
Keldo
Jeg fik 30 point og tak for det.
Skrevet ons. d. 25. september 2002 kl. 10:03:16| #14
Velbekomme og igen tak for hjælpen........... Jeg vil fremover bruge Eksperten.dk, her kan man virkelig få hjælp og tilmed hurtigt
Skrevet ons. d. 25. september 2002 kl. 10:56:35| #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.