Het lukt mij niet om een simpele relationele database te maken, wie helpt?

Status
Niet open voor verdere reacties.

Ron F

Nieuwe gebruiker
Lid geworden
23 sep 2003
Berichten
2
Hallo,

Ik ben al een tijdje bezig om database te maken die een envoudige telefoonlijst kan produceren, echter het lukt mij niet. Ik heb al tientallen DB opgezet, met en zonder wizard maar zonder het gewenste resultaat. In het verleden deed ik veel met Dbase III+ en Clipper en dan was het een fluitje van cent. Access 2000 geeft mij echter een slecht humeur, mogelijk kan iemand mij helpen.

Ik wil namelijk het volgende: een DB met de naamsgegevens, met aan elke persoon een reeks van telefoonnummers. Deze telefoonnummers heb ik dan naar soort nr. ingedeeld. Dit om ze later bij het printen bij elke persoon in dezelfde volgorde te printen.
Het moet er dus zo ongeveer uitzien:
Jan Jansen 1234 toestel werk
0111-123456 privé
06-12345678 mobiel werk
Piet van Laar 5432 toestel werk
0111-654321 privé
enz.

Wie helpt?

Groeten,

Ron
 
Misschien dat deze en/of deze site je stuk op weg kunnen helpen, succes.
 
Ok even proberen (is al weer een poosje geleden):

0 NV:
ID, voornaam, achternaam RG(omschrijving, telnr)

1 NV:
ID, voornaam, achternaam
ID, telnr, omschrijving

2 NV = 1 NV (telnr is niet uniek er kunnen namelijk 2 of meer mensen hetzelfde nr hebben bijv. samenwonenden)

3 NV = 2 NV (kleine database dus geen dingen van een niet sleutel afhankelijk)

Tabel naam: ID, voornaam, achternaam
Tabel telnrs: ID, telnr, omschrijving

Onderstreept betekent een sleutel (ik weet niet of acces 2 sleutels ondersteunt dacht het niet dan moet je geen sleutel geven of anders een eigen sleutelveld)

De groeten,
Mark
 
Hij kan btw nog mooier:

0NV:
ID, voornaam, achternaam RG(omschrijvingnr, omschrijving, telnr)

1 NV:
ID, voornaam, achternaam
ID, telnr, omschrijvingnr, omschrijving

2 NV = 1 NV (telnr is niet uniek er kunnen namelijk 2 of meer mensen hetzelfde nr hebben bijv. samenwonenden)

3 NV:
ID, voornaam, achternaam
ID, telnr, omschrijvingnr
omschrijvingnr, omschrijving

Tabel naam: ID, voornaam, achternaam
Tabel telnrs: ID, telnr, omschrijvingnr
Tabel omschrijving: omschrijvingnr, omschrijving

De groeten,
Mark
 
Simpel
Dowload ADRES200 en het werkt perfekt mits je de juiste velden maar aanmaakt .werk hier zelf al een hele tijd mee met enorme base (360 mb) per adres 13 velden ... succes !!!
 
Geplaatst door kalden
Simpel
Dowload ADRES200 en het werkt perfekt mits je de juiste velden maar aanmaakt .werk hier zelf al een hele tijd mee met enorme base (360 mb) per adres 13 velden ... succes !!!
Ligt aan de situatie waarvoor je deze moet gebruiken. In een acces kun je veel meer dan een voorgemaakt pakket. En de uitwisselbaarheid met een nieuw/ander pakket kan nog wel eens minder zijn.

PS ik weet niet of je de tabelen die je wilt maken ook in dbase hebt want die kun je namelijk in acces importeren.

De groeten,
Mark
 
Laatst bewerkt:
Geplaatst door TheM

Ligt aan de situatie waarvoor je deze moet gebruiken. In een acces kun je veel meer dan een voorgemaakt pakket. En de uitwisselbaarheid met een nieuw/ander pakket kan nog wel eens minder zijn.

PS ik weet niet of je de tabelen die je wilt maken ook in dbase hebt want die kun je namelijk in acces importeren.

De groeten,
Mark
Kan wel maar de vraagsteller zegt dat acces hem een slecht humeur bezorgt dus...vandaar .
 
Geplaatst door kalden

Kan wel maar de vraagsteller zegt dat acces hem een slecht humeur bezorgt dus...vandaar .
ps.
en de voorbeelden die gegeven worden werken uitstekend in deze base..
 
Hij kan nog mooier dan dit:

Tabel naam: ID, voornaam, achternaam
Tabel telnrs: ID, IDNaam, telnr, omschrijving

De primaire sleutel van een tabel is altijd ID (autonumber veld). Hiermee maak je de sleutel van je tabel betekeninsloos. Als je de sleutel van een tabel niet betekenisloos maakt (hier was dit zo met telnr), dan heb je een probleem als je dat veld wilt wijzigen. Overal waar je dan gebruik maakt van dit veld als sleutelveld moet je dan ook die wijziging doorvoeren.
Zorg dus altijd dat sleutelvelden in tabellen betekenisloos zijn.
Verwijzingen naar sleutelvelden (in dit geval IDNaam) in andere tabellen zijn dan altijd numerieke velden (long) die ik meestal als veldnaam ID<naamtabel> geef.

Omschrijving zou ik in dit geval niet in een aparte tabel zetten.
 
Geplaatst door Bartuls
Hij kan nog mooier dan dit:

Tabel naam: ID, voornaam, achternaam
Tabel telnrs: ID, IDNaam, telnr, omschrijving

De primaire sleutel van een tabel is altijd ID (autonumber veld). Hiermee maak je de sleutel van je tabel betekeninsloos. Als je de sleutel van een tabel niet betekenisloos maakt (hier was dit zo met telnr), dan heb je een probleem als je dat veld wilt wijzigen. Overal waar je dan gebruik maakt van dit veld als sleutelveld moet je dan ook die wijziging doorvoeren.
Zorg dus altijd dat sleutelvelden in tabellen betekenisloos zijn.
Verwijzingen naar sleutelvelden (in dit geval IDNaam) in andere tabellen zijn dan altijd numerieke velden (long) die ik meestal als veldnaam ID<naamtabel> geef.

Omschrijving zou ik in dit geval niet in een aparte tabel zetten.

Ten eerste wil ik zeggen dat de primaire sleutel in acces niet geheel hetzelfde is als een sleutel in de normalisatie. Telnr kan namelijk niet eens als primaire sleutel worden ingesteld aangezien deze niet uniek is (je kunt 2 mensen in je database hebben staan die samenwonen en hetzelfde nr hebben).

Ten tweede is er een hele goede reden om omschrijving in een aparte tabel te zetten aangezien je er dan voor zorgt dat je geen verschillende termen (ken de officiele benaming niet) voor hetzelfde gebruikt. Bijvoorbeeld je zet er de ene keer Privenr neer en de andere keer Prive en weer een andere keer thuis een ander voorbeeld is met het mobielenummer de ene keer Mob nr de andere keer Mobiel. Dit omzeil je door een extra tabel omschrijving die middels een code koppelt en heeft als voordeel dat je zeker weet dat een query naar alle mobielenr of privenr werkt aangezien je altijd hetzelfde ingeeft (namelijk de code).

De groeten,
Mark
 
Mark,

Als je omschrijving op die manier gebruikt dan kun je nog verder normaliseren.
Maak inderdaad nog een tabel aan: tblTypeTelnr met de velden ID (autonummer) en fldType (Text 50).
In de tabel telnrs neem je dan een verwijzing naar deze tabel op middels veld IDTypeTelnr (long).

Op je formulieren kun je dan middels een combobox het type telefoonnummer selecteren.
 
allereerst bedankt voor jullie reacties.

Ik ben opnieuw begonnen met een DB te maken zoals Mark en ''bartuls" in hun voorbeelden lieten zien.

Omdat ik ook een selectie en een soortering wil maken op het soort telefoon heb ik een 3e tabel aangemaakt met het soort telefoonnummer.

Ik ben verder gaan stoeien met de aanmaak van een rapport en dat is nu gelukt, het ziet er uit zoals ik het ongeveer wilde hebben.

Echter een formulier met subformulier maken is mij nog steeds niet gelukt, althans zonder allerlei rare toestanden te krijgen. Ik heb op diverse sites en in de help van access gekeken maar (nog) niet met het gewenste resultaat.

Wie kan mij verder helpen?

PS: de laatste berichten gingen mij boven de pet

(ik zal de Database bijvoegen)
 
je moet nu tussen de tabellen een relatie leggen en referentiele integriteit aan vinken.
Selecteer uit de ene tabel een sleutelveld en de ander tabel een veld met dezelfde benaming maar geen sleutelveld. Onder formulieren kun je met [nieuw] en met de wizzard beide tabellen kiezen dan zal access vragen of je met subformulieren wilt werken dmv een knop of het subformulier in het ander formulier opgenomen moet worden.

Hopelijk heb ik het goed en duidelijk uitgelegd.

Henk
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan