Tabel splitsen in 2 aparte tabellen

Status
Niet open voor verdere reacties.

kruimeltjes

Gebruiker
Lid geworden
30 sep 2009
Berichten
222
Hallo Allemaal,

Ik heb een vraagje met betrekking tot het splitsen van een tabel. In mijn database heb ik een tabel met daarin alle materiaal informatie. Nu is door nieuwe studie deze tabel aardig groot geworden.

Ik zou daarom graag de tabel willen splitsen in 2 aparte tabellen, 1 waarin alleen de aantal staan van het opgeslagen materiaal en een 2de tabel waarin alle relevante studie informatie staat.

Kan dit en zo ja hoe moet ik dat doen?

Groetjes,

Simone
 
Het zal waarschijnlijk kunnen
maar het antwoord op de Hoe?-vraag blijft uit
omdat we geen enkel inzicht hebben in de structuur van de oorspronkelijke tabel.

De omschrijving "materiaal" helpt ons ook niet echt op weg
evenmin als de omschrijving "aantal".
 
Op zich is het simpel te doen: maak eerst een kopie van de tabel, zodat je in beide tabellen dezelfde gegevens hebt staan. De kopie zal wel je tweede tabel worden, en die moet op de volgende manier worden aangepast:

1. ALs je een Autonummerveld als sleutelveld hebt gebruikt, moet dat worden omgezet naar een Numeriek veld. Gebruik je handmatige sleutelvelden, dan hoeft dat niet.
2. Verwijder de velden die je in de hoofdtabel wilt laten staan.

In de Hoofdtabel verwijder je de tabellen die in de 'hulptabel' staan. Als het goed is, heb je dan twee tabellen met elk de gewenste velden. In de hoofdtabel heb je dan eventueel nog het Autonummerveld als sleutel, in de hulptabel maak je een sleutel van exact dezelfde velden als in de hoofdtabel.

In het Relaties venster maak je nu een koppeling tussen de Hoofdtabel en de Hulptabel. Dit word, als het goed is, een één-op-een relatie, omdat in beide tabellen de sleutel hetzelfde is. Klaar....
 
Oke dat lukt me idd, dank daarvoor. Het betekend uiteraard dat ik in mijn codering dan ook alles moet aanpassen, das minder maar oke dat ga ik dan maar doen.

Thnx!
 
Ik neem aan dat je daar de tweede tabel mee bedoelt die je nieuw hebt aangemaakt? Vrij logisch dat je dan een foutmelding krijgt, want elk record in de tweede tabel heeft een record in de eerste tabel nodig. Dus die zul je eerst moeten toevoegen. Als blijkt dat de records in de tweede tabel niets te maken hebben met de gegevens uit de eerste, dan was je tabel niet overdreven jofel genormaliseerd :)
 
Nee ik bedoel dat in allebei de tabellen geen gegevens worden ingevuld als ik die mbv een formulier ingeef.

De foutmelding waar je het over hebt, krijg ik niet eens :confused:
 
Wel het formulier materials. Maar het invullen van de tabellen begint altijd met het formulier patiënt.
 
In je extra tabel heb je twee velden laten staan die ook in [tblMaterials] staan. Die zouden zowiezo weg kunnen. Verder heb je het veld [MaterialID] dezelfde naam gegeven in de tweede tabel. Dat mag op zich wel, maar als je een query maakt op basis van beide tabellen, en je gebruikt alleen de sterretjes voor het gemak, dan krijg je duplicaat veldnamen, en dat mag niet. Daarom zet Access in dat geval de naam van de tabel zelf ervoor, zodat de veldnaam weer uniek is. Alleen: in jouw formulier verwijs je nog naar je oude veldnaam. Die ontbreekt nu dus, omdat je andere veldnamen hebt. Dat moet je dus aanpassen op je formulier. Verder zou ik het formulier ook splitsen, zodat je beide tabellen apart vult. Volgens mij kun je geen twee tabellen tegelijk met één formulier vullen, en ik zelfs als dat zou kunnen, dan zou ik het niet doen. Als je tabel teveel velden bevat, dan geldt dat uiteraard ook voor je formulier.... splits het formulier in twee tabbladen, en je werkt een stuk handiger.
 
In je oorspronkelijke opzet (met één tabel) gebruiktje op het formulier frmPatient een toevoegquery om een record toe te voegen aan de tabel Tbl_Materials. Deze structuur moet je nu uitbreiden, wat je moet in dezelfde procedure nu ook een record aanmaken in Tbl_Materials2. Ik zou zelf een nieuw formulier Materials maken, waarin je twee subformulieren plaatst voor de records uit de twee materials tabellen. Omdat daar een één-op-een relatie tussen bestaat, mag dat geen probleem zijn. Dus i.p.v. één tabel Materials te vullen, doe je dat nu met twee. En het formulier waarop je nu werkt vervang je door een formulier met MaterialID, waarop de twee Materials tabellen op staan, die dan koppelen op het overeenkomende MaterialID.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan