Oprettet tir. d. 24. september 2002 kl. 16:46:23

keldo
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

sjap
sjap (62.466 point)
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

keldo
keldo (15.317 point)
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

sjap
sjap (62.466 point)
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

keldo
keldo (15.317 point)
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

sjap
sjap (62.466 point)
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

sjap
sjap (62.466 point)
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

keldo
keldo (15.317 point)
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

sjap
sjap (62.466 point)
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

keldo
keldo (15.317 point)
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

sjap
sjap (62.466 point)
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

keldo
keldo (15.317 point)
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

keldo
keldo (15.317 point)
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

sjap
sjap (62.466 point)
Keldo
Jeg fik 30 point og tak for det.

Skrevet ons. d. 25. september 2002 kl. 10:03:16| #14

keldo
keldo (15.317 point)
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

sjap
sjap (62.466 point)
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.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

bnb

Oprettet den 26. maj 2012 kl. 14.33
mikkelfraringsted giver 200 point for svar | Giv et svar »

Opdatering af data fra 1 tabel til 1 anden

Oprettet den 25. maj 2012 kl. 21.05
mllarsen giver 30 point for svar | Giv et svar »

relink tables

Oprettet den 25. maj 2012 kl. 11.14
larsgrau giver 150 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger