|  | 		    
					
        
         
          
         
	
          | |  | Sammenkædning i Access Fra : Kurt G
 | 
 Dato :  06-03-10 08:32
 | 
 |  | Access2007.
 Jeg er ved at lave en database over bestyresen for en forening, og her går
 ganske mange personer jo igen år efter år.
 Jeg har lavet en tabel med alle navne og en anden med alle bestyrelsesposter
 samt årstal.
 For mig at se er det en mange til mange relation, der skal bruges.
 Imidlertid kan jeg ikke få det til at virke; når jeg vil danne relationer,
 dannes der en ny  (måske kun et spejl) af persontabellen for hvert felt i
 bestyrelsestabellen.
 Hvordan får jeg det til at virke?
 
 Mvh Kurt
 
 
 
 
 |  |  | 
  Jan Kronsell (06-03-2010) 
 
	
          | |  | Kommentar Fra : Jan Kronsell
 | 
 Dato :  06-03-10 11:18
 | 
 |  | Kurt G wrote:
 > Access2007.
 > Jeg er ved at lave en database over bestyresen for en forening, og
 > her går ganske mange personer jo igen år efter år.
 > Jeg har lavet en tabel med alle navne og en anden med alle
 > bestyrelsesposter samt årstal.
 > For mig at se er det en mange til mange relation, der skal bruges.
 > Imidlertid kan jeg ikke få det til at virke; når jeg vil danne
 > relationer, dannes der en ny  (måske kun et spejl) af persontabellen
 > for hvert felt i bestyrelsestabellen.
 > Hvordan får jeg det til at virke?
 >
 > Mvh Kurt
 
 Du skal have tre tabeller.
 
 En med personerne, en med besyrelsesposterne og så en trejde tabel med
 nøglerne fra de to andre samt årstallet.
 Så laver du en én til mange relation mellem hver af de to første og den
 sidste. Denne er en såkaldt relationstabel, som "bærer" mange til mange
 relationen.
 
 Det er i den sidste tabel, at du registrer, hvem der har besat hvilken post
 hvornår.
 
 Når du så skal bruge disse informationer, henter du dem ud med en
 forespørgsel, der henter nøgleinformationen fra relationstabellen og de
 tilhørende informationer, fx navne på bestyrelsesmedlemmer fra
 persontabellen, postens betegnelse mm. fra bestyrelsesposttabellen og endeli
 årestallet fra relationstabellen.
 
 Jan
 
 
 
 
 |  |  | 
  Kurt G (06-03-2010) 
 
	
          | |  | Kommentar Fra : Kurt G
 | 
 Dato :  06-03-10 12:44
 | 
 |  | Tak for svaret, det vil jeg prøve, om jeg kan få til at virke.
 Mvh Kurt
 "Jan Kronsell" <kronsell(nomorespam)@adslhome.dk> skrev i en meddelelse
 news:4b922bae$0$36567$edfadb0f@dtext01.news.tele.dk...
 > Kurt G wrote:
 >> Access2007.
 >> Jeg er ved at lave en database over bestyresen for en forening, og
 >> her går ganske mange personer jo igen år efter år.
 >> Jeg har lavet en tabel med alle navne og en anden med alle
 >> bestyrelsesposter samt årstal.
 >> For mig at se er det en mange til mange relation, der skal bruges.
 >> Imidlertid kan jeg ikke få det til at virke; når jeg vil danne
 >> relationer, dannes der en ny  (måske kun et spejl) af persontabellen
 >> for hvert felt i bestyrelsestabellen.
 >> Hvordan får jeg det til at virke?
 >>
 >> Mvh Kurt
 >
 > Du skal have tre tabeller.
 >
 > En med personerne, en med besyrelsesposterne og så en trejde tabel med
 > nøglerne fra de to andre samt årstallet.
 > Så laver du en én til mange relation mellem hver af de to første og den
 > sidste. Denne er en såkaldt relationstabel, som "bærer" mange til mange
 > relationen.
 >
 > Det er i den sidste tabel, at du registrer, hvem der har besat hvilken
 > post hvornår.
 >
 > Når du så skal bruge disse informationer, henter du dem ud med en
 > forespørgsel, der henter nøgleinformationen fra relationstabellen og de
 > tilhørende informationer, fx navne på bestyrelsesmedlemmer fra
 > persontabellen, postens betegnelse mm. fra bestyrelsesposttabellen og
 > endeli årestallet fra relationstabellen.
 >
 > Jan
 >
 
 
 
 
 |  |  | 
  Kurt G (06-03-2010) 
 
	
          | |  | Kommentar Fra : Kurt G
 | 
 Dato :  06-03-10 14:37
 | 
 |  | "Jan Kronsell" <kronsell(nomorespam)@adslhome.dk> skrev i en meddelelse
 news:4b922bae$0$36567$edfadb0f@dtext01.news.tele.dk...
 > Kurt G wrote:
 KLIPPET
 > Du skal have tre tabeller.
 >
 > En med personerne, en med besyrelsesposterne og så en trejde tabel med
 > nøglerne fra de to andre samt årstallet.
 > Så laver du en én til mange relation mellem hver af de to første og den
 > sidste. Denne er en såkaldt relationstabel, som "bærer" mange til mange
 > relationen.
 >
 > Det er i den sidste tabel, at du registrer, hvem der har besat hvilken
 > post hvornår.
 >
 > Når du så skal bruge disse informationer, henter du dem ud med en
 > forespørgsel, der henter nøgleinformationen fra relationstabellen og de
 > tilhørende informationer, fx navne på bestyrelsesmedlemmer fra
 > persontabellen, postens betegnelse mm. fra bestyrelsesposttabellen og
 > endeli årestallet fra relationstabellen.
 >
 > Jan
 
 Jeg bliver nok nødt til at vise, hvad jeg har gjort, for at komme videre.
 Jeg havde oprindelig to tabeller:
 
 PERSONER med følgende felter:
 Id : Auto
 Navn : Tekst
 By : Tekst
 
 BESTYRELSEN:
 Id : Auto
 Aar : Tal
 Formand : Tal
 Næstformand : Tal
 Sekretær : Tal
 Kasserer : Tal
 M1 : Tal
 M1 : Tal
 M3 : Tal
 M4 : Tal
 M5 : Tal
 Sup1 : Tal
 Sup2 : Tal
 Rev1 : Tal
 Rev2 : Tal
 Arkivar : Tal
 
 Oprindeligt havde jeg forstillet mig, at jeg kunne nøjes med PERSONER og
 BESTYRELSEN.
 Så ville jeg i BESTYRELSEN f.eks. i Formand skrive et 1-tal for at angive
 navn 1 i PERSONER som formand det pågældende år. Jeg ville altså bruge
 PERSONER som opslag til at indsætte navnene.
 
 Hvordan kan det lade sig gøre?
 
 Mvh Kurt
 
 
 
 
 |  |  | 
   Jan Kronsell (06-03-2010) 
 
	
          | |  | Kommentar Fra : Jan Kronsell
 | 
 Dato :  06-03-10 17:11
 | 
 |  | Kurt G wrote:
 > "Jan Kronsell" <kronsell(nomorespam)@adslhome.dk> skrev i en
 > meddelelse news:4b922bae$0$36567$edfadb0f@dtext01.news.tele.dk...
 >> Kurt G wrote:
 > KLIPPET
 >> Du skal have tre tabeller.
 >>
 >> En med personerne, en med besyrelsesposterne og så en trejde tabel
 >> med nøglerne fra de to andre samt årstallet.
 >> Så laver du en én til mange relation mellem hver af de to første og
 >> den sidste. Denne er en såkaldt relationstabel, som "bærer" mange
 >> til mange relationen.
 >>
 >> Det er i den sidste tabel, at du registrer, hvem der har besat
 >> hvilken post hvornår.
 >>
 >> Når du så skal bruge disse informationer, henter du dem ud med en
 >> forespørgsel, der henter nøgleinformationen fra relationstabellen og
 >> de tilhørende informationer, fx navne på bestyrelsesmedlemmer fra
 >> persontabellen, postens betegnelse mm. fra bestyrelsesposttabellen og
 >> endeli årestallet fra relationstabellen.
 >>
 >> Jan
 >
 > Jeg bliver nok nødt til at vise, hvad jeg har gjort, for at komme
 > videre. Jeg havde oprindelig to tabeller:
 >
 > PERSONER med følgende felter:
 > Id : Auto
 > Navn : Tekst
 > By : Tekst
 >
 > BESTYRELSEN:
 > Id : Auto
 > Aar : Tal
 > Formand : Tal
 > Næstformand : Tal
 > Sekretær : Tal
 > Kasserer : Tal
 > M1 : Tal
 > M1 : Tal
 > M3 : Tal
 > M4 : Tal
 > M5 : Tal
 > Sup1 : Tal
 > Sup2 : Tal
 > Rev1 : Tal
 > Rev2 : Tal
 > Arkivar : Tal
 >
 > Oprindeligt havde jeg forstillet mig, at jeg kunne nøjes med PERSONER
 > og BESTYRELSEN.
 > Så ville jeg i BESTYRELSEN f.eks. i Formand skrive et 1-tal for at
 > angive navn 1 i PERSONER som formand det pågældende år. Jeg ville
 > altså bruge PERSONER som opslag til at indsætte navnene.
 >
 > Hvordan kan det lade sig gøre?
 >
 Du skal have følgende tabeller:
 
 PERSONER med følgende felter:
 Id : Auto
 Navn : Tekst
 By : Tekst
 
 BESTYRELSEN:
 ID: Auto
 Funktion: Tekst
 
 POSTER (eller hvad du nu vil kalde den)
 PersonId: Tal (long integer)
 BestyrelsesId: Tal (long integer)
 År: Tal
 
 I denne tabel skal alle felterne tilsammen udgøre en sammensat nøgle.
 
 Relationerne mellem dem går mellem Id i Poster og det tilsvarende Id i hhv.
 Personer og Bestyrelsen.
 
 I PERSONER indtaster du alle de relevante personer. Disse får nu hver sit ID
 nummer
 I BESTYRELSEN indtaster du de relevante besyrelsesposter:  Formand,
 Næstformand, Sekretær, Kasserer,  M1 M2, M3, M4, M5, Sup1, Sup2, Rev1, Rev2,
 Arkivar. Disse får nu hvert sit Id-nummer.
 I POSTER indtaster du ID-nummeret på en på en bestyrelsespost, nummeret på
 en person, og det år, vedkommende havde den pågældende post. Fortsæt med de
 øvrige poster/personer i alle de aktuelle år.
 
 Når du så vil have det vist, kan du lave en forespørgsel, som i SQL ser ud
 som følger:
 
 SELECT POSTER.År, BESTYRELSE.Funktion, PERSONER.Navn, PERSONER.Adresse,
 PERSONER.By
 FROM BESTYRELSE INNER JOIN (PERSONER INNER JOIN POSTER ON PERSONER.ID =
 POSTER.PersonId) ON BESTYRELSE.Id = POSTER.BestyrelsesId;
 
 Den struktur, du selv har foreslået kan du ikke få til at fungere. I hvert
 fald ikke på en hensigtsmæssig måde, da den ikke giver mulighed for at
 bestyrelsens sammensætning kan ændres. Mange til mange relationer skal altid
 håndteres ved oprettelse af en ekstra tabel. Det gøres  på designtidspunktet
 som en del af normaliseringsprocessen eller direkte i en E/R diagrammering.
 
 Jan
 
 
 
 
 
 
 |  |  | 
    Kurt G (07-03-2010) 
 
	
          | |  | Kommentar Fra : Kurt G
 | 
 Dato :  07-03-10 12:11
 | 
 |  | Det har jeg nu prøvet og fået til at virke.
 Og ikke nok med det, jeg har også fattet systemet.
 Tak for hjælpen.
 
 Mvh Kurt
 
 "Jan Kronsell" <kronsell(nomorespam)@adslhome.dk> skrev i en meddelelse
 news:4b927e7f$0$36568$edfadb0f@dtext01.news.tele.dk...
 > Kurt G wrote:
 >> "Jan Kronsell" <kronsell(nomorespam)@adslhome.dk> skrev i en
 >> meddelelse news:4b922bae$0$36567$edfadb0f@dtext01.news.tele.dk...
 >>> Kurt G wrote:
 >> KLIPPET
 >>> Du skal have tre tabeller.
 >>>
 >>> En med personerne, en med besyrelsesposterne og så en trejde tabel
 >>> med nøglerne fra de to andre samt årstallet.
 >>> Så laver du en én til mange relation mellem hver af de to første og
 >>> den sidste. Denne er en såkaldt relationstabel, som "bærer" mange
 >>> til mange relationen.
 >>>
 >>> Det er i den sidste tabel, at du registrer, hvem der har besat
 >>> hvilken post hvornår.
 >>>
 >>> Når du så skal bruge disse informationer, henter du dem ud med en
 >>> forespørgsel, der henter nøgleinformationen fra relationstabellen og
 >>> de tilhørende informationer, fx navne på bestyrelsesmedlemmer fra
 >>> persontabellen, postens betegnelse mm. fra bestyrelsesposttabellen og
 >>> endeli årestallet fra relationstabellen.
 >>>
 >>> Jan
 >>
 >> Jeg bliver nok nødt til at vise, hvad jeg har gjort, for at komme
 >> videre. Jeg havde oprindelig to tabeller:
 >>
 >> PERSONER med følgende felter:
 >> Id : Auto
 >> Navn : Tekst
 >> By : Tekst
 >>
 >> BESTYRELSEN:
 >> Id : Auto
 >> Aar : Tal
 >> Formand : Tal
 >> Næstformand : Tal
 >> Sekretær : Tal
 >> Kasserer : Tal
 >> M1 : Tal
 >> M1 : Tal
 >> M3 : Tal
 >> M4 : Tal
 >> M5 : Tal
 >> Sup1 : Tal
 >> Sup2 : Tal
 >> Rev1 : Tal
 >> Rev2 : Tal
 >> Arkivar : Tal
 >>
 >> Oprindeligt havde jeg forstillet mig, at jeg kunne nøjes med PERSONER
 >> og BESTYRELSEN.
 >> Så ville jeg i BESTYRELSEN f.eks. i Formand skrive et 1-tal for at
 >> angive navn 1 i PERSONER som formand det pågældende år. Jeg ville
 >> altså bruge PERSONER som opslag til at indsætte navnene.
 >>
 >> Hvordan kan det lade sig gøre?
 >>
 > Du skal have følgende tabeller:
 >
 > PERSONER med følgende felter:
 > Id : Auto
 > Navn : Tekst
 > By : Tekst
 >
 > BESTYRELSEN:
 > ID: Auto
 > Funktion: Tekst
 >
 > POSTER (eller hvad du nu vil kalde den)
 > PersonId: Tal (long integer)
 > BestyrelsesId: Tal (long integer)
 > År: Tal
 >
 > I denne tabel skal alle felterne tilsammen udgøre en sammensat nøgle.
 >
 > Relationerne mellem dem går mellem Id i Poster og det tilsvarende Id i
 > hhv. Personer og Bestyrelsen.
 >
 > I PERSONER indtaster du alle de relevante personer. Disse får nu hver sit
 > ID nummer
 > I BESTYRELSEN indtaster du de relevante besyrelsesposter:  Formand,
 > Næstformand, Sekretær, Kasserer,  M1 M2, M3, M4, M5, Sup1, Sup2, Rev1,
 > Rev2, Arkivar. Disse får nu hvert sit Id-nummer.
 > I POSTER indtaster du ID-nummeret på en på en bestyrelsespost, nummeret på
 > en person, og det år, vedkommende havde den pågældende post. Fortsæt med
 > de øvrige poster/personer i alle de aktuelle år.
 >
 > Når du så vil have det vist, kan du lave en forespørgsel, som i SQL ser ud
 > som følger:
 >
 > SELECT POSTER.År, BESTYRELSE.Funktion, PERSONER.Navn, PERSONER.Adresse,
 > PERSONER.By
 > FROM BESTYRELSE INNER JOIN (PERSONER INNER JOIN POSTER ON PERSONER.ID =
 > POSTER.PersonId) ON BESTYRELSE.Id = POSTER.BestyrelsesId;
 >
 > Den struktur, du selv har foreslået kan du ikke få til at fungere. I hvert
 > fald ikke på en hensigtsmæssig måde, da den ikke giver mulighed for at
 > bestyrelsens sammensætning kan ændres. Mange til mange relationer skal
 > altid håndteres ved oprettelse af en ekstra tabel. Det gøres  på
 > designtidspunktet som en del af normaliseringsprocessen eller direkte i en
 > E/R diagrammering.
 >
 > Jan
 >
 >
 >
 >
 
 
 
 
 |  |  | 
     Jan Kronsell (07-03-2010) 
 
	
          | |  | Kommentar Fra : Jan Kronsell
 | 
 Dato :  07-03-10 12:28
 | 
 |  | 
 
            Kurt G wrote:
 > Det har jeg nu prøvet og fået til at virke.
 > Og ikke nok med det, jeg har også fattet systemet.
 > Tak for hjælpen.
 Velbekomme. Du er velkommen til at læse mere om Databasedesing her, hvis du 
 er interesseret.
www.kronsell.net/databasedesign.htm Jan 
            
             |  |  | 
 |  |