Avatar billede boney_m Nybegynder
10. maj 2000 - 15:17 Der er 19 kommentarer og
1 løsning

Hente data

Jeg har en database med sogn, herred og amt. Jeg har sat databasen til at jeg can slå op "look-up" fra en anden sognedatabase hver gang jeg skal indtaste et sogn. Desværre er jeg ikke klogere end at jeg skal slå den samme record op i herred feltet, og i amt feltet, altså 3 opslag på den samme ting for at indsætte disse automatisk.
Er der en her, der kan fortælle mig, hvordan jeg (evt. i form) ved at slå et sogn op og vælge det, kan lade access indsætte det tilhørende amt og herred i de respektive felter automatisk således at jeg ikke skal lave 3 opslag for den ene record?
Dette har irriteret mig meget - også at jeg ikke selv kan løse det, men jeg ved jo at eksperterne sidder netop her i panelet :)
Avatar billede roadkill Nybegynder
10. maj 2000 - 15:45 #1
Jeg antager, du har tre tabeller, der (noget forenklet) ser sådan her ud:

1) Sogn { SID, Navn }
2) Herred { HID, Navn }
3) Amt { AID, Navn }

Hvis du på Sogn-tabellen har en reference til Herred (altså bare et felt, der indeholder HID på det herred, det givne sogn tilhører) og ligeledes på Herred har en reference (et AID) på det amt, som herredet tilhører, så kan du fx bruge denne SQL til at få navnet på sognet, herredet og amtet ud fra sognets id (SID)

SELECT s.navn,h.navn,a.navn FROM Sogn s, Herred h, Amt a WHERE SID=<sognets id> AND s.hid=h.hid AND h.aid=a.aid;
Avatar billede boney_m Nybegynder
10. maj 2000 - 15:52 #2
Hej Roadkill
Nej, jeg har alt i samme database, en såkaldt sognedatabase. Men det bruger er en indlægsdatabase, hvor jeg ved at indtaste sognet, får et opslag fra sognedatabasen. Så skriver jeg de første par bogstaver, og kan nu vælge recorden fra sognedatabasen, indsat i indlægsdatabasen, men det samme skal jeg så gøre med herred og amt - altså tre opslag på den samme record i sognedatabasen. Jeg kunne forstille mig at når man allerede står på den record man ønsker fra sognedatabasen, også kunne få den til at udfylde felterne amt og herred, uden at skulle foretage opslaget her igen fra indlægsdatabasen.
Forstår du hvad jeg mener, ellers vil jeg gerne uddybe det nærmere..
Avatar billede roadkill Nybegynder
10. maj 2000 - 15:56 #3
Hvad mener du helt præcis med en 'indlægsdatabase'...? Linker du til en anden database eller...?
Avatar billede boney_m Nybegynder
10. maj 2000 - 16:02 #4
ja, selve sognedatabasen bruges kun til check af, at det indtastede sogn findes, altså til opslag. Tabellen med indlæg er den der indtastes i, såsom indlæggers navn adresse bla bla, dernæst selve stedet, altså sognet. Jeg har kun sognet at gå ud fra, og bruger derfor sognetabellen (sorry, jeg bliver ved med at anvende ordet database hvor jeg faktisk mener tabel) som opslag for at checke at det findes, hvorefter jeg så indsætter herred og amt for at have den totale stedbetegnelse. Senere sorteres disse data ud i et index med amt, herred og sogn, samt indlæggers nummer.
Avatar billede boney_m Nybegynder
10. maj 2000 - 16:05 #5
I opslaget får jeg så oplyst sogn, herred og amt fra sognetabellen. Jeg lader den så indsætte sognets navn i sognefeltet. Men i stedet for at skrive amt og herred manuelt, ville det spare mig tid hvis jeg også kunne indsætte amt og herred fra opslaget jeg netop foretog under sogn.
Avatar billede ktp Nybegynder
10. maj 2000 - 17:01 #6
Hvad anvender du til at slå sognet op med kode (DlookUp) eller kombinationsboks (ComboBox) ???
Avatar billede boney_m Nybegynder
10. maj 2000 - 17:19 #7
KTP, ja, ved en kombobox direkte i selve tabellen ...
Avatar billede jgc Nybegynder
10. maj 2000 - 23:51 #8
Du har formentlig slet ikke brug for at indtaste eller registrere Amt og Herred i din Indlægstabel. Hvis du skriver sognet ind her, fortæller Sognebasen - altså den du bruger til opslag - jo hvilket Amt og Herred det pågældende sogn hører til. Så slet felterne med Amt og Herred fra din indlægsbase, så kan du nøjes med at indtaste sognet.

Når du så skal bruge oplysningerne om Amt og Herred - enten i en rapport eller i en form - så henter du dem nemt ved en forespørgsel.

Avatar billede ktp Nybegynder
11. maj 2000 - 11:09 #9
OK, så er jeg med.
Når du anvender en ComboBox kan du anvende Column funktionen.
Eksempel:
Du har Sogn, Amt og Herred i samme tabel, du vælger som den første kolone Sogn i ComboBox, hvis du medtager Amt og Herred i den samme forespørgelse vil Sogn være Column(0), Amt vil være Column(1) og Herred vil være Column(2).
Feltetnavnet med sognet (ComboBox) vil nu indeholde alle dine oplysninger.
Hvis f.eks. du vil se Amt på det felt hvor Amt skal vises vil din kontrolelementkilden være =SognComboBox.Column(1) og Herred vil være =SognComboBox.Column(2).
Prøv det !!!!
PS: Husk at angive hvor mange column du anvender (3) på din ComboBox, gør evt. de to sidste usynlige med breden 1 cm;0 cm;0 cm.
Avatar billede boney_m Nybegynder
11. maj 2000 - 14:13 #10
Til JGC: Nej, jeg er nødt til at have alle tre felters data med - omåske også mere for overskuelighedens skyld og for at være sikker på at jeg har kontrolleret at det er det rigtige amt og herred jeg befinder mig i.
Avatar billede boney_m Nybegynder
11. maj 2000 - 14:19 #11
>KPT: jeg kan se at du er inde på noget at det rigtige og at du er sikker på at det virker, men ville du være flink at fortælle mig hvor det er, jeg skal indsætte f.eks. "=SognComboBox.Column(2)" henne. Skal felterne amt og herred være almindelige tekstfelter uden opslag, og hvis ja, hvor skal ovenstående linie så placeres i sogn-feltet? ..under generelt (hvor?) eller under opslag? .. jeg er temmelig nybegynder hvad angår access :(
Avatar billede jgc Nybegynder
11. maj 2000 - 14:22 #12
For overskuelighedens skyld eller for kontrollen er det lige meget. Hvis du indtaster direkte i tabellen har du ret - så kan du ikke se amt + herred. Men hvis du laver en form, kan du sagtens få vist de relevante oplysninger, lige så snart du har indtastet et sogn. Det svarer fuldstændigt til at indarbejde en postnummertabel i en adresseliste. Jeg gemmer aldrig bynavnet sammen med resten af adresseoplysningerne - det bør ligge sammen med postnumrene i postnummertabellen. Men i min form vil jeg selvfølgelig have vist både postnummer og bynavn - så jeg henter postnummeret fra adressetabellen og bynavnet fra postnummertabellen. Lige så snart jeg har indtastet et postnummer, dukker bynavnet op i min form - så jeg har da overskuelighed nok.
Avatar billede boney_m Nybegynder
11. maj 2000 - 14:33 #13
JGC: ok, jeg ved hvad du mener, da du selvfølgelig linker postnummer fra postnr.tabellen til din tabel. Men hvad med relationerne så, der findes f.eks. 4 sogne med navnet Astrup, og jeg får måske alt ialt indtastet 20 Astrup i indlægstabellen, hvordan ved du at det er det rigtige sogn du vælger? Så på en eller anden vis skal jeg sikre mig at det er det rigtige sogn (+ herred og amt) jeg har fat i....
Avatar billede jgc Nybegynder
11. maj 2000 - 14:40 #14
I dit opslag må du så definere mere end én synlig kolonne. Hvis der f.eks. gælder at i et herred ikke kan være flere sogne med samme navn, kan du definere dit opslag således at du får vist både sogn og herred.
Avatar billede jgc Nybegynder
11. maj 2000 - 14:50 #15
Ups - jeg læste vist ikke dit spørgsmål helt.
Med hensyn til relationer kommer det an på hvordan din amt-herred-sogn tabel er defineret.

Enten har du et dedikeret id-felt (f.eks. et sognenummer), der entydigt fastslår hvilket sogn der arbejdes med. Så skal din egen tabel (indlægstabellen) indeholde dette sognenummer, og så er både sognenavnet, amts- og herredoplysningerne hentet fra amt-herred-sognetabellen.

Alternativt er primærnøglen i amt-herred-sogn en kombination af herred og sogn eller måske amt, herred og sogn. I det tilfælde kan du ikke lave en entydig relation uden at bruge alle nøglefelterne.

Men har du ikke et sognenummer eller lignende?
Avatar billede boney_m Nybegynder
11. maj 2000 - 15:00 #16
JGC: Jo, hvert sogn har et sognenummer. Men jeg kan jo ikke alle disse udenad, ej heller indtaste dem for at vælge det rette sogn, da jeg så skulle have en liste, og det er for at gøre det så enkelt som muligt at jeg selv mente at en kombobox var det nemmeste, da jeg her med f.eks. 3 kolonner vist ville være sikker på at vælge rigtigt, men blot håbede det var muligt via mit valg at udfylde de 2 resterende felter automatisk (herred og amt).
Avatar billede jgc Nybegynder
11. maj 2000 - 15:06 #17
Du skal bestemt heller ikke kunne sognenumrene i hovedet. Access skal bare bruge dem til at identificere præcis hvilket sogn du vil have fat i.
Opslaget kan som nævnt bringes til at vise flere kolonner - eksempelvis sogn + herred - så du skal stadigvæk bare indtaste navnet på sognet, og så evt vælge mellem flere herreder.
Avatar billede ktp Nybegynder
11. maj 2000 - 15:26 #18
Vedr. ComboBox definationen.
Den skal dannes på din indtasningsformular.
Du kan sende din email adresse til mig Så skal jeg lave et eksempel.
Bruger du Access 2000 eller 97 ?
Min e-mail er: ktp@mail.dk
Avatar billede boney_m Nybegynder
11. maj 2000 - 15:53 #19
mail afsendt  :)

JGC: Jeg skal nok afprøve dit forslag lidt senere, men lad mig lige se hvad KPT kan finde ud af :)
Avatar billede boney_m Nybegynder
11. maj 2000 - 15:55 #20
Jeg bruger for øvrigt access2000 KPT :-). Glemte at fortælle dig det i emailen.
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