Avatar billede oyejo Nybegynder
05. oktober 2001 - 13:58 Der er 13 kommentarer og
1 løsning

koble tabeller ved hjelp av bergnede felter

Kan noen forklare meg hvorden jeg kan koble to tabeller i ACCESS, når det ene feltet er et beregnet felt?
Tidligere benyttet jeg Lotus Approach, der var det enkelt å koble to tabeller, selv når det ene feltet var et beregnet felt.
Håper på snarlig svar.
øyvind
Avatar billede terry Ekspert
05. oktober 2001 - 14:03 #1
Can you give an example of your tables?
Avatar billede terry Ekspert
05. oktober 2001 - 14:04 #2
Also how you expect to join \"koble\" them
Avatar billede oyejo Nybegynder
05. oktober 2001 - 14:31 #3
I den ene tabellen registreres lengde, bredde og dybde på flater. Det beregnede feltet skal ha forskjellig verdi avhengig av hvor stor overflaten er og på hvilken dybde den ligger.
Registreringstabellen skal kobles til en pristabell.
Pristabellen har forskjellige poster der både m2 og dybde varierer.

Hvis jeg kan benytte et beregnet felt til å finne riktig postnr. sparer jeg mye tid. Jeg registrerer bare lengde, bredde og dybde. ACCESS finner automatisk riktig postnr og pris

takker for raskt svar øyvind
Avatar billede jens-peter Nybegynder
05. oktober 2001 - 22:55 #4
Hvis den beregnede overflade altid svarer til værdier i pristabellen, er der ikke de store problemer, men hvis overfladeberegningen f.eks. kan give 4,87 og der i pristabellen kun er værdier for 4 og 5, er det lidt sværere. Hvilket er tilfældet?

mvh/Jens-Peter
Avatar billede nih Novice
06. oktober 2001 - 11:59 #5
Du kan godt koble forespørgsler med tabeller i vinduet relationer.
Du har et beregnet felt i en forespørgsel - så kan du få forespørgslen vist i vinduet relationer, hvor du kan joine feltet til andre tabeller/forespørgsler.

Niels
Avatar billede jens-peter Nybegynder
06. oktober 2001 - 12:27 #6
>nih
Man kan kun joine felterne, hvis værdierne er ens. Det er derfor jeg er interesseret i om de beregnede værdier altid svarer til dem der findes i pristabellen, eller man skal interpolere.

mvh/Jens-Peter
Avatar billede terry Ekspert
06. oktober 2001 - 13:31 #7
oyejo>
As jens-peter says, does the calculated m2 always exist in the price table? Also what about the depth. Are there a number of records with the same m2 but differnt depth\'s in the price table.

You are going to have to give use more information.

This may help give you some ideas!

In a query you can call a function with paramters and return a price, if thats what your after.


You make a function in a module for example.

Function GetPrice( length as Double, Width as Double, Depth as Double) as Double

Dim ThePrice as Double

\'Then you can use Dlookup etc. to get the correct values to calculate your price (ThePrice)

GetPrice = ThePrice

End fucntion

In the query you create a new column

ThePrice: GetPrice([lengde],[bredde],[dyybde])
Avatar billede nih Novice
06. oktober 2001 - 18:34 #8
Jens Peter

Jeg har lige forsøgt mig frem.

2 tabeller    : tbl_Priser(areal, pris) og tbl_dimmension(højde, bredde)
1 forespørgsel : Q_Areal (areal)
1 forespørgsel : Q_res  (areal,øversteinterval,pris)

Den interessante er Q_res:
SELECT Q_Areal.areal, Min(tbl_Priser.Areal) AS ØversteInterval, Min(tbl_Priser.Pris) AS pris
FROM Q_Areal INNER JOIN tbl_Priser ON Q_Areal.areal <= tbl_Priser.Areal
GROUP BY Q_Areal.areal;

som du kan se kan man godt joine \'<=\' istedetfor \'=\'
Avatar billede nih Novice
06. oktober 2001 - 18:41 #9
Foresten

Hvad betyder \'interpolere\' ??

Niels
Avatar billede nih Novice
06. oktober 2001 - 18:46 #10
SELECT Q_Areal.areal, Max(tbl_Priser.Areal) AS mindsteInterval, Max(tbl_Priser.Pris) AS pris
FROM Q_Areal INNER JOIN tbl_Priser ON Q_Areal.areal >= tbl_Priser.Areal
GROUP BY Q_Areal.areal;

den her er vist bedre !!!

Niels
Avatar billede jens-peter Nybegynder
06. oktober 2001 - 22:53 #11
Niels

Ja, du har selvfølgelig ret, hvis man kan runde det beregnede areal op til nærmeste areal, der er angivet i pristabellen.

Interpolere betyder at man beregner en værdi mellem to kendte punkter. Hvis man f.eks. ved at areal på 4 m2 koster 100kr og areal på 5 m2 koster 200 kr, så kan man beregne prisen for et vilkårligt areal mellem 4 og 5 m2 ved at antage, at der er en lineær sammenhæng. Dvs. 4,25 m2 koster 125 kr. etc.

mvh/Jens-Peter
Avatar billede oyejo Nybegynder
08. oktober 2001 - 11:26 #12
Hei og tusen takk for alle de flotte svarene jeg har fått fra Terry, Jens-Peter og Niels.
Jeg kan ikke så mye om access, men etter å ha lest Deres svar har jeg funnet ut om moduler, funksjoner og forespørsler. Jeg fikk det faktisk til å fungere!!!

Jeg bruket svaret fra både Niels og Terry. Jeg lager en funksjon i en modul. Denne funksjonen benytter jeg i en spørring.

For å svare på noen av spørsmålene, så er både overflatene og dybdene delt inn i intervaler, slik at i pristabellen er det bare noen få verdier.

Jeg laget derfor en funksjon som tok inn lengde, bredde og dybde, for så få ut en kode som jeg benyttet til koblingen.
Jeg benyttet en Select Case setning.

mvh øyvind

Ps. Dette er første gang jeg benytter Eksperten og jeg er imponert over hvor lett det var å få svar. Men jeg rotet litt når jeg skulle akseptere poengene, slik at de kun gikk til Niels. Hva kan jeg gjøre for å gi poeng til Terry og Jens Peter også?

Uansett jeg kommer tilbake med flere spørsmå, blandt annet om hva Dlookup er?

øyvind :-)

Avatar billede terry Ekspert
08. oktober 2001 - 11:33 #13
Dont you worry about the point øyvind, Niels needs them more than I do :o)))

= DLookup(\"YourFíeld\", \"YourTable\", \"YourWhere\")
Much like an SQL statement.

SELECT YourField FROM YourTable WHERE YourCriteria
Avatar billede nih Novice
08. oktober 2001 - 12:55 #14
takker for points - Men jeg mangler dem nu ikke.
Jeg har rigligt til en bunke spørgsmål. ;)

Jeg lader Thomas, Terry og andre kæmpe om pladcering på top 10.

Niels
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