anoniem Geplaatst: 18 oktober 2005 Delen Geplaatst: 18 oktober 2005 Ik wil een database in access maken waarin 3 tabellen voorkomen maar deze tabellen moeten d.m.v. een (primaire) key aan elkaar gerelateerd worden. Hoe doe je dat als de velden in de verschillende tabellen niets gemeen hebben met de andere tabellen. De tabellen zij overigens maar heel klein resp. 8 en 4 en 2 velden. Quote Link naar reactie
anoniem Geplaatst: 18 oktober 2005 Auteur Delen Geplaatst: 18 oktober 2005 Extra velden toevoegen die wel met elkaar te maken hebben. Je vraagstelling is voor mij overigens niet 100% duidelijk. Wil je een tabel met 'subtabellen'? bv[code:1:8d05cf25a4]tabel1 PKleverancierID leveranciernaam tabel2 awID adres woonplaats zip FKleverancierID[/code:1:8d05cf25a4]Vervolgens de leverancierID's aan elkaar knopen (via relaties) Vraagje: wat heeft dit met programmeren te maken? Past beter in software->anders. Quote Link naar reactie
anoniem Geplaatst: 18 oktober 2005 Auteur Delen Geplaatst: 18 oktober 2005 Wat betreft het vraagje het volgende. Het gaat over Access en dat is een toepassing onder Windows ik dacht dus dat het onder programmeren valt maar als het hier niet thuishoort dan zet ik het ergens anders, ik zou alleen niet weten waar. Een verduidelijking van mijn vraag. De 3 tabellen waar ik het over had hebben de volgende veldnamen: 1. Frequentie, Post, Bedrag, betaalmaand en Vpmerk. 2. Periode, weken, maandnummer en Betaalmaand. 3. Rekening en Spaarbedrag. Je begrijpt dat het met een huishoudboekje heeft te maken, maar ik weet niet op welk veld ik een key moet loslaten. O ja houd er even rekening mee dat mijn eerste schreden in Access zijn. Quote Link naar reactie
anoniem Geplaatst: 18 oktober 2005 Auteur Delen Geplaatst: 18 oktober 2005 Databasetechniek mag van mij wel in Programmeren, het gaat tenslotte niet om "Hoe werkt Access?" (forum Anders Software) Als je een database gaat ontwerpen, begin je met het bepalen van de [i:5964b33753]entities[/i:5964b33753] waarmee je te maken hebt. Een entity laat zich altijd omschrijven door een zelfstandig naamwoord en van entities maak je tabellen. Per tabel kies/maak je een veld (evt. een extra veld genaamd ID) dat unieke waardes bevat en daarop zet je de primaire sleutel. Die sleutel wordt gebruikt in de tabelindex waarmee de database-engine snel records kan zoeken. In Access loopt het index-verhaal op de achtergrond, hoef je niks voor te doen. Een primaire sleutel instellen maakt de tabel sneller, bij dat veld instellen dat ie "geindexeerd (geen duplicaten)" is, maakt de tabel ook sneller. Een relatie laat zich omschrijven in een zin waarin 2 entities voorkomen, bijv. Een uitgave moet op een (grootboek)rekening worden geboekt, of Een uitgave moet maandelijks worden gedaan. In die zinnen herken je de entities: Uitgaven, Rekeningen en Periodes. Voor de eerste relatie maak je in de tabel Uitgaven dus velden: Bedrag, Datum, Rekening, Credit (ja/nee) en in de tabel Rekeningen: Rekeningnummer, Naam. Om de tabel Uitgaven te kunnen indexeren maak je ook een veld ID (Autonummering) waarop je de primaire sleutel zet. Rekeningen.Rekeningnummer is een uniek veld (niet autonummering) waarop je ook een sleutel kan zetten. Je maakt de relatie (in Access) in het venster Relaties door een lijntje te trekken tussen Uitgaven.Rekening en Rekeningen.Rekeningnummer. De tweede relatie vereist een derde tabel Periodes, met velden als ID (Autonummering), Dag, Maand. En in de tabel Uitgaven moet dan een velden Periodiek (Lange integer) komen. Je maakt de relatie door weer een lijntje te trekken tussen Periodes.ID en Uitgaven.Periodiek. Een andere mogelijkheid is dat je een veld Periodes.Uitgave (Lange integer) maakt en een relatie tussen Periodes.Uitgave en Uitgaven.ID maakt. Kies maar, maakt weinig uit. Je maakt dan dus een periodieke uitgave door een record in Uitgaven (zonder datum, waardoor ie niet direct op de betreffende Rekening wordt geboekt) te maken en in Periodes, waarmee je definieert wanneer de uitgaven geboekt moeten worden. De records waarmee periodiek moet worden geboekt, moeten dan nog wel los op iedere periode worden gedaan. Dat kan met deze opzet geautomatiseerd worden, maar het is een wat geavanceerdere database-functie, je zou kunnen beginnen zonder die tabel Periodes, of een andere, niet-gerelateerde tabel die je zelf als leidraad gebruikt voor het periodiek maken van Uitgaven-records. Ik weet niet of het ontwerp een beetje op je wensen aansluit, maar ik hoop dat je nu wat inzicht hebt in het ontwerpen van een database en dat je wat termen hebt waarop je naar andere, uitgebreide handleidingen kan googlen. Quote Link naar reactie
anoniem Geplaatst: 19 oktober 2005 Auteur Delen Geplaatst: 19 oktober 2005 Paulus, Bedankt voor je uitgebreide en heldere uitleg, hier moet ik toch verder mee kunnen komen. Ik ga met deze kennis nog eens in mijn access boek studeren, het is overigens de bedoeling om zodra ik de beginselen begrepen heb om met VBA de gewenste info uit de tabellen te krijgen. Ik heb heel lang geleden in het DOS tijdperk met DBase en Clipper gewerkt en het programmeren zoals ik dat in VBA tegenkom komt me nog steeds bekend voor. Quote Link naar reactie
anoniem Geplaatst: 19 oktober 2005 Auteur Delen Geplaatst: 19 oktober 2005 Graag gedaan hoor, ik moest ff een adrenalinekick afreageren en voor je het weet staat er dan een heel verhaal :-) als je nog wil gaan VBA'en dan zou ik vooral ook kijken naar ADO/DAO, objectbibliotheken om met record(set)s te werken. DAO is een beetje verouderd, maar werkt wat eenvoudiger in een Access-omgeving. ADO is wat alomvattender (ODBC en gebruik in andere apps dan Access). En probeer vooral ook SQL goed onder de knie te krijgen. Quote Link naar reactie
anoniem Geplaatst: 20 oktober 2005 Auteur Delen Geplaatst: 20 oktober 2005 Ik heb een hele goed site op intenet gevonden met eengoede uileg en voorbeelden, http://www.functionx.com/access/ , waar ik erg veel vandaan kan halen. Voor wat betreft het verdere programmeren in Access zal ik rekening houden met je raad. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen