12. december 2008 - 20:18Der er
20 kommentarer og 1 løsning
Relationer mellem tabeller - nybegynder
Jeg er ny med Access og mangler lidt hjaelp til at komme i gang. Jeg har 2 tabeller og en quiry. Ud fra tabel 1 har jeg lavet en form, hvorfra jeg bl.a. vil hente data fra tabel 2 baseret paa vaerien af et bestemt felt paa formen. Jeg har lavet en quiry der i view format fint viser den rigtige vaerdi. Naar jeg fra Expression builder henter henvisningen til det oenskede felt fra quiry'en, viser feltet blot #Name?
Dette spoergsmaal er meget upraecist, men maaske er der nogen der kan sparke mig i den rigtige retning?
Din overskrift hedder "Relationer mellem tabeller", det er det grundlæggende i en database som Access, som jo er en relationedatabase.
I db's relationsvindue kan du trække relationer lemmem tabellerne. Afhængig af hvordan tasbellernes PK (primære nøgler) er placeret, kan du have direkte eller indirekte relationer.
I din forespørgsel skal du have begge tabeller vist. Har du lavet relationer i relationsvinduet (Outer Jopins), vil disse slå igennem i query'en. Hast du ikke relationer i relationsvinduet, kan du lave dem i query'en. Det hedder så indirekte relationer. Glem alt om at lave formularer før din forespørgsdel fungerer.
Hvis du ikke vil lave relationer, kan du bruge funktionen DLookUp, som henter data fra en anden ikke relateret tabel. syntaksen er således:
Mht relationerne saa er de to tabeller i relationsvinduet forbundet. Er det en forudsaetning at tabellerne har samme primary key felt mht at fungere i en quiry?
Nej - PK behøver ikke at være det samme felt. I den tabel hvorfra du vil hente data bruger jeg et unikt felt (f.eks. autonummer) som PK. Denne PK er så relateret til en anden tabel, hvor det tilsvarende felt IKKE er PK. Tabellen bør dog have en PK som f.eks. at autonummer.
"Er det korrekt at hver FORM (Access 2003) kun kan hente data fra en TABEL?" NEJ - Lad formen få data fra en forespørgsel, og den henter data fra ALLE tabeller i forespørgslen.
"Kan QUERIES kan bruges paa REPORTS eller ogsaa forms?" Se ovenstående.
Jeg har to tabeller hvor den ene indeholder data om by(tblBY). En anden tabel der ud fra postnr (tblPOSTNR) indeholder Navn, Region og land. Jeg har en-til-mange relation fra tblPOSTNR postnr til tblBY postnr (PK). I en form (tblBY) vil jeg gerne hente Navn, Region og land ud fra det postnr, der indtastet for den paagaeldende record, men det virker ikke?
Hvis jeg skal hente felter fra tblPOSTNR, hvordan goer jeg det saa i design view form?
Jeg har faaet det til at virke med foresperogsler - mange tak.
Du skriver, at jeg kan bruge data fra alle tabeller, der indgaar i forespoergslen som reporten bygger paa. Men hvordan henter jeg et felt fra tabllerne knyttet til en forespoergsel, hvis jeg kun har valgt forespoergslen, da jeg oprettede reporten (Access2000)?
Hvis jeg har to felter i den samme tabel, der begge skal linket til en anden tabel, hvordan henter jeg saa data fra den foerste tabel til begge disse felter, saa de kan vises i fx en report. Fx hvis jeg indtaster to by-navne og saa i en report vil hente tilhoerende postnr, hvordan fortaeller jeg saa Access2000 at begge saet data skal vises?
"Du skriver, at jeg kan bruge data fra alle tabeller, der indgaar i forespoergslen som reporten bygger paa. Men hvordan henter jeg et felt fra tabllerne knyttet til en forespoergsel, hvis jeg kun har valgt forespoergslen, da jeg oprettede reporten (Access2000)?"
Det nemmeste du kan gøre er, at bruge en autorapport. Ågn db i databasevinduet > Fanen Forespørgsler > Marker den forespørgsel der skal være postkilde for rapporten > Find ikonet for "Autoformular" på din menulinie. Åbn dialogboksen og vælg aitorapport. Access vil nu generere en rapport. Denne kan du bygge videre på og ændre f.eks. formatteringen.
"Hvis jeg har to felter i den samme tabel, der begge skal linket til en anden tabel, hvordan henter jeg saa data fra den foerste tabel til begge disse felter, saa de kan vises i fx en report. Fx hvis jeg indtaster to by-navne og saa i en report vil hente tilhoerende postnr, hvordan fortaeller jeg saa Access2000 at begge saet data skal vises?"
Som udgangspunkt skal vi blive i forespørgslen. NÅr den fungerer efter hensigten, vil rapporten være et spejlbillede af forespørgslen og vise de samme poster. Din db bør være opbygget således, at du indtaster postnr. og får vist den tilhørende by. Hvis du kun vil se en del af posterne, kan du bruge kriterier. I postnrfeltet kan du indtaste f.eks. 2300 under kriterier, og du vil kun se poster med bynavn Kbh.S. Hvis du vil se flere poster, kan du indtaste 6100 or 6500. Så ser du kun poster med postnr. 6100 Haderslev ELLER 6500 Vojens.
Mugs - tak for dit svar. Og beklager at disse spoergsmaal skyder lidt i oest og vest men til trods at jeg har investeret i Access Bible, saa mangler jeg stadig at faa noget af det konceptuelle paa plads.
Mht postnr eksemplet. Hvis jeg i samme report eller form vil hente data fra to forskellige postnr samtidigt, der kunne vaere start og slut. Saa jeg baade kunne indtaste 6100 og 6500 og saa faa Access til med forespoergsel at hente by etc. Kan jeg det eller skal jeg saa lave 2 tabeller?
Nej - Og jeg får ikke nogen meddelelse om, at filer er blokerede. Men du har vel husket at zippe den!!
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.