Hoofdstuk 11. Informatiemodellering

  11.9 De tabellen laten genereren voor een database

Als het model in Infagon helemaal klaar is dan kun je er voor zorgen dat de tabellen, die volgens Infagon nodig zijn voor de database, automatisch worden gegenereerd.
Daarvoor moet je in Infagon eerst nog een visual basic programma laten genereren om de database te maken.

Als je klikt op Tasks (in de menubalk) en dan op Plug-in modules



dan krijg je het volgende een venster waarin je uit verschillende DataBase Management Systemen kunt kiezen.



Kies voor MS-Access 7.0 en klik dan op Invoke.
Bedenk een naam voor het programma dat gemaakt wordt, bijvoorbeeld h11.bas, en kies de map uit waarin het opgeslagen moet worden.

Dan ben je klaar met Infagon, dat programma kun je afsluiten.

De database laten genereren in Access

Start nu Access op en kies in Access 2003 voor: Een nieuwe database maken en klik op het rondje voor Op basis van een lege database. Klik dan op OK
Bedenk een naam voor de database, en kies de map uit waarin de database moet worden opgeslagen.

Klik dan op Invoegen (in de menubalk) en dan op Module.



Klik weer op Invoegen, en dan op Bestand.



Dan verschijnt er een venster waarin je een bestand uit kunt kiezen.
Kies bij bestandstypen voor Basic-bestanden, en zorg er dan voor dat het basic-bestand, dat m.b.v. Infagon gemaakt is, wordt ingelezen.

In Access 2007 klik je op: Lege database, bedenk een naam voor de database, en kies de map uit waarin de database moet worden opgeslagen. Klik dan op Maken

Klik dan in het lint op het tabblad Hulpmiddelen voor databases, en dan op Visual Basic
Klik dan in het lint op Invoegen en dan op Module.
Klik weer op Invoegen, en dan op Bestand.
Dan verschijnt er een venster waarin je een bestand uit kunt kiezen.
Kies bij bestandstypen voor Basic-bestanden, en zorg er dan voor dat het basic-bestand, dat m.b.v. Infagon gemaakt is, wordt ingelezen.

Dan verschijnt het visual-basic programma dat is aangemaakt met FCO.
Zet de cursor voor de regel: Public Sub FCO_CreateDatabase( )        
en klik dan op Uitvoeren (op de menuregel) en dan op Ga naar/Doorgaan (in Access 2003) of op Sub/UserForm uitvoeren (in Access 2007).



Als alles is goedgegaan dan zijn nu de tabellen aangemaakt.
Klik het visual Basic venster weg (ook de module, die hoeft niet bewaard te worden) en klik dan in Access 2003 eerst op Queries en dan op Tabellen, en dan staan de tabellen er.
In Access 2007 klik je op het pijltje achter Alle Tabellen, en dan op Gemaakt op, en dan staan de tabellen er.
Je moet nog wel even het aantal tekens dat je per veld mag gebruiken aanpassen, want het aantal dat automatisch is aangemaakt is waarschijnlijk te laag.
Verder zijn de namen van de kolommen waarschijnlijk niet naar wens, die krijgen automatisch de namen van de labeltypen die je hebt gebruikt in Infagon.
Maar die namen kun je in Access gemakkelijk veranderen.
Ook de namen van de tabellen kun je eventueel veranderen.

Als je op het tabblad tabellen klikt in Access dan krijg je de namen van de tabellen te zien, en die namen kun je daar dan eventueel veranderen (in Access 2003, in Access 2007 wil dat niet)

Als je de naam of het type van een kolom wilt veranderen dan moet je rechtsklikken op de naam van de bijbehorende tabel, en dan moet je (Access 2003) op Ontwerpen klikken, of (Access 2007) op Ontwerpweergave
En dan kun je daar in de linker kolom van het venster de namen van de velden eventueel veranderen.

In de rechter kolom van het venster staan de typen van de velden.
Als de database automatisch is aangemaakt dan is het type van alle velden tekst.
Als het inderdaad tekst is dan laat je dat gewoon staan, maar dan moet je in het venster er onder wel even de Veldlengte veranderen, die is meestal te klein.

Sommige velden wil je misschien van het type numeriek maken, en andere van het type datum, zodat er bij invoer gecontroleerd wordt of je een bestaande datum invoert.
Als je dat wilt veranderen dan klik je bij een datumveld in de type-kolom (waar Tekst staat), je klikt op het pijltje dat verschijnt en dan kies je datum/tijd uit.