24. september 2002 - 16:46Der 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??
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??
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).
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]
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.
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??
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]))))
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.
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.