Assistentie gevraagt bij ontwerpen Access programma

Status
Niet open voor verdere reacties.

Virusbeatbox

Gebruiker
Lid geworden
18 dec 2007
Berichten
201
Beste,

ik zou graag een database programma maken die als volgt werkt
tblArts, tblPatiënt en tblConsultatie bevatten GEEN gegevens over het in de naam vermelde onderwerp.

Via een formulier worden de gegevens van de artsen ingevoerd en opgeslagen in de tblArts.

Wanneer een patiënt op bezoek komt, wordt er via een formulier zijn gegevens in en wordt opgeslagen in tblPatiënt. Natuurlijk wordt er onmiddelijk een consultatie vastgelegd. Deze gegevens ivm consultatie, worden opgeslagen in tblConsultatie en gelinkt aan de desbetreffende patiënt.

Wanneer er later een nieuwe patiënt op bezoek komt, wordt dezelfde voorgaande procedure gevolgt.

Later kan de arts een Rapport afdrukken met de patiënten die die maand op consultatie zijn geweest.

Mijn vraag is nu, hoe ik hier aan begin?
Tussen welke gegevens moet ik relaties leggen? Hoe zorg ik ervoor dat de consultaties enkel en alleen worden toegeschreven aan de desbetreffende patiënt? En hoe zorg ik ervoor dat, de gegevens die ik heb ingevoerd correct worden opgeslagen waardoor ik deze dan kan afdrukken met rapport??


Graag een beetje assistentie!

Vriendelijke groet
 
Laatst bewerkt:
Om te beginnen: richt eerst je tabellen in, met de juiste gegevens die je wilt kunnen opslaan. De basis van 3 tabellen is in ieder geval een goede start:

tblArts
ArtsID
ArtsVoorletters
ArtsTusenvoegsel
Artsnaam
ArtsAdres
ArtsHuisnummer
ArtsPostcode
ArtsPlaats
ArtsTelefoon

tblPatiënt
PatiëntID
PatiëntVoorletters
PatiëntTusenvoegsel
Patiëntnaam
PatiëntAdres
PatiëntHuisnummer
PatiëntPostcode
PatiëntPlaats
Patiënttelefoon

tblConsultatie
ConsultatieID
ArtsID
PatiëntID
Consultdatum
Enzovoorts

Dit is uiteraard maar een hele summiere opzet, het gaat een beetje om het idee.
Het belangrijkste is, dat je artsgegevens en patiëntgegevens apart opslaat, met een unieke code voor zowel Patiënt als Arts. Deze unieke code neem je ook op in de tabel Consultatie, want je wilt straks per consult kunnen zien welke patiënt door welke arts is behandeld.
In de tabel Consultatie sla je dus de verschillende consults op. Dat betekent, dat je de tabel Consultatie gaat koppelen aan zowel tblPatiënt als tblArts. Dat doe je in het scherm Relaties. Hierbij sleep je het veld ArtsID uit de tabel tblArts naar het veld ArtsID uit de tabel Consultaties. In de volgende stap kies je dan de optie <Referentiële integriteit afdwingen>, en klik je op OK. In bijgaand plaatje zie je een voorbeeld van het scherm.
Hetzelfde doe je voor de tabel Patiënten en Consultaties. Ook hier weer Referentiële Integriteit afdwingen aanzetten. Met deze optie dwing je Access te controleren of je geen Arts of patiënt invoert, die je niet in de betreffende tabellen hebt staan. Op zich logisch, een arts die niet is geregistreerd, zou geen consultaties mogen uitvoeren lijkt mij...

Als je dit hebt gedaan, kun je formulieren gaan maken voor de verschillende tabellen. Die voor Patiënten en Artsen zijn relatief gemakkelijjk, omdat die formulieren alleen maar gegevens nodig hebben uit de bijbehorende tabellen. Je kunt die met de wizard maken, waarbij je alle velden uit de tabel selecteert, en de stappen verder opvolgt.
Voor de consultaties is het een iets ander verhaal. Zowiezo heb je alle velden nodig uit de tabel Consultaties, maar omdat je maar één artsgegeven opslaat (ArtsID) en één patiëntgegeven (PatiëntID) is het op het formulier niet gelijk duidelijk welke arts welke patiënt behandelt. Daarom kun je daar het beste eerst een query voor maken, waarbij je alle drie de tabellen toevoegt, en alle velden uit Consultaties toevoegt, en bijvoorbeeld ook alle naam-en adresgegevens van de arts en de patiënt. Nu zie je in één oogopslag alle noodzakelijke gegevens die je voor een consult nodig hebt.
Vervolgens maak je op basis van die query een formulier, en dat gebruik je als basis om consultaties te maken en op te zoeken.

Als (voorlopig) laatste stap kun je, voor het gemak, <keuzelijsten met Opzoekvak> maken voor de velden ArtsID en PatiëntID. Met zo'n keuzelijst, die je voor het ArtsID baseert op de tabel Artsen, en voor PatiëntID op de tabel Patiënten, kun je heel eenvoudig artsen en patiënten opzoeken. Access vult daarna automatisch de overige arts- en patiëntgegevens aan, zodat je een mooi consultatiescherm hebt om te gebruiken.

Overigens kan ik mij ook voorstellen dat je de tabel Consultaties opslitst in een tabel met eerste consults, en een tabel met vervolgconsults, die is gerelateerd aan de tabel EersteConsults. Het voordeel daarvan is, dat je vervolgafspraken met een patiënt veel makkelijker kunt terugvinden, en dus ook veel makkelijker overzichten kunt maken van een consult met vervolgafspraken. Je neemt dan bijvoorbeeld in de tabel Consultaties een Ja/Nee veld [Vervolgafspraak] op, waarmee je een extra formulier kunt openen voor alle vervolgafspraken. Bij eenmalige consults zie je dan het vervolgformulier niet, maar dat hoeft dan ook niet.
Ik kan mij ook nog voorstellen dat je een aparte tabel maakt voor uitgegeven medicaties, waar je dan later ook weer allerlei overzichten mee kan maken.
Overigens kun je dat ook opslaan in de tabel Consultaties, maar een aparte tabel is wel weer handig voor vervolgrecepten bijvoorbeeld.

Voor de rapporten volg je straks een vergelijkbare methodiek, want die zijn waarschijnlijk ook gebaseerd op de tabel consultaties. Maar je kunt dan bijvoorbeeld een rapport maken van een patiënt, waar alle consultaties opstaan, of een rapport van een arts met alle patiënten die door hem/haar zijn behandeld.
The sky is the limit!

Maar begin eers maar eens met het aanmaken van de noodzakelijke tabellen, dan heb je al genoeg te doen, denk ik..
 

Bijlagen

  • Relatie.jpg
    Relatie.jpg
    55,5 KB · Weergaven: 48
Laatst bewerkt:
Ok, al hartelijk bedankt voor mij op weg te helpen bij het maken van dit klein programma'tje! Indien er nog problemen zijn, hoop ik op uw hulp te mogen rekenen?

Met vriendelijke groet en 1000 maal dank
 
Je mag uiteraard altijd vragen stellen; we zijn hier tenslotte een forum om mensen te helpen! Het is daarbij niet de bedoeling dat wij de db voor je maken, maar we helpen je graag op weg :thumb:
 
Je mag uiteraard altijd vragen stellen; we zijn hier tenslotte een forum om mensen te helpen! Het is daarbij niet de bedoeling dat wij de db voor je maken, maar we helpen je graag op weg :thumb:

Beste,

ik wil je nogmaals bedanken voor de grote hulp die u mij heeft aangeboden om mij op weg te zetten bij het maken van mijn programma!

Ik heb alle tabellen en formulieren aangemaakt maar heb nog een vraagje.

Wanneer ik in het formulier een nieuwe consultatie wil aanmaken, wil ik via een keuzelijst de naam van de Arts kunnen kiezen die ik, op voorhand, al had aangemaakt in het formulier Arts...

Hetzelfde wil ik dan ook doen voor voor de naam van de patiënt, ook deze wil ik kunnen kiezen dmv keuzelijst uit de daarvoor ingevoerde patiënten in het formulier Patiënten...

Hopelijk dat mijn vraag wat duidelijk is geformuleerd!
 
De vraag is prima geformuleerd :thumb:
De oplossing hopelijk ook ;)
Als (voorlopig) laatste stap kun je, voor het gemak, <keuzelijsten met Opzoekvak> maken voor de velden ArtsID en PatiëntID. Met zo'n keuzelijst, die je voor het ArtsID baseert op de tabel Artsen, en voor PatiëntID op de tabel Patiënten, kun je heel eenvoudig artsen en patiënten opzoeken.
Om mezelf maar eens te citeren...
Je moet dus in het formulier met consultaties het tekstvak ArtsID vervangen door een keuzelijst die je kunt maken met de wizard Keuzelijst met Invoervak. Gebruik hiervoor de tabel Artsen als basis. Als je de standaardinstellingen volgt, gaat alles goedkomen. Kies in ieder geval voor het veld ArtsID en de naam van de arts, met eventueel nog wat extra velden uit de tabel Artsen, om de keuze nog wat duidelijker te maken. Laat in één van de laatste stappen de waarde van het keuzeveld opslaan in het veld ArtsID, en je keuzelijst zou moeten werken.
Dezelfde procedure kun je gebruiken voor het PatiëntId.
Mocht je er niet uitkomen, dan staan er nog wel een paar voorbeeldjes op het forum, waarvan ik de links dan wel kan geven.
 
De vraag is prima geformuleerd :thumb:
De oplossing hopelijk ook ;)

Om mezelf maar eens te citeren...

Beste,

mijn programmatje begint, dankzij jouw hulp, al aardig vorm te krijgen.

Maar heb toch nog een vraagje,

Wanneer ik in het formulier Patient een patiënt ingeef, wordt deze z'n gegevens prima opgeslagen in de tabel Patiënt.

MAAR in het formulier Patiënt bevind zich ook een tekstvak met het aantal consultaties van deze Patiënt. Hier had ik graag, na het aanmaken van een consultatie, het aantal consultaties laten verschijnen.

Hoe kan ik dit klein probleempje oplossen?

Alvast opnieuw van harte bedankt voor de hulp!
 
Om te beginnen: het aantal consultaties is altijd te herleiden uit de tabel tblConsultaties. Je legt immers elk consult vast, waarbij je artsID en patiëntID ook vastlegt. Met behulp van een Selectiequery kun je nu, als je de knop Totalen aanzet, een telling maken per patiënt, waarbij je groepeert op PatiëntID, en vervolgens het veld ConsultID op de functie Aantal zet. Je ziet dan hoeveel consultaties er per patiënt zijn geweest. Door bijvoorbeeld ook te groeperen op jaar([ConsultDatum]) (even zelf een datumveld bedacht...) krijg je een overzicht per patiënt per jaar.
Door dus de tabel tblConsultaties te gebruiken voor een telling, heb je veel meer mogelijkheden.

Wil je in de tabel tblPatiënt ook het aantal consultaties bijhouden, dan kan dat dus zowiezo alleen maar voor een totaaltelling. Je moet hiervoor ook gaan programmeren, omdat je het totaal alleen maar wilt verhogen als je een consult toevoegt, en anders niet. Ik heb zo'n constructie wel voor iemand gemaakt, maar het is nogal omslachtig, en voegt eigenlijk niks toe, omdat je het gegeven eigenlijk al hebt (via de tabel tblConsultaties). Ik zou die optie dus eerst gebruiken.
Je kunt overigens zo'n query met totalen wel maken, en koppelen aan de tabel of query die je nu gebruikt voor het formulier Patiënten. Daarbij laat je het gegeven dus alleen zien, je slaat het verder niet op. Nogmaals: er is geen noodzaak om het apart op te slaan.... Hopelijk is het duidelijk genoeg?
 
Om te beginnen: het aantal consultaties is altijd te herleiden

Beste,

ik heb een selectiequery gemaakt waardoor ik de naam van de Patiënten krijg en de ID van de Patiënten dan op Aantal gezet. Maar nu is de vraag hoe ik het resultaat van het aantal behandelingen van de query naar de tabel Patiënten krijg om dan zo later te kunnen koppelen aan het formulier Patiënten??
 
Als je een query hebt gemaakt, dan hoef je de gegevens, zoals ik eerder al probeerde uit te leggen, niet op te slaan in de tabel Patiënten. Probeer eerst eens of je de totalen kunt koppelen aan het formulier dat je hebt gemaakt.

Waarschijnlijk heb je het formulier Patiënten gebaseerd op de gelijknamige tabel. Door in het formulierontwerp naar de eigenschappen van het formulier te gaan, zie je bij Recordbron staan welke tabel of query je gebruikt. Als je vervolgens op de knop met de 3 puntjes klikt, kun je òf een query maken, als je een tabel gebruikt, of een query aanpassen, als je al een query als basis hebt.
In beide gevallen kom je vervolgens in het Query-ontwerpscherm terecht. Kies nu via de knop <Tabel toevoegen> voor het toevoegen van de nieuwe query die je hebt gemaakt, en koppel de PatiëntID velden aa elkaar door middel van slepen. Voeg het veld met Totalen toe aan de query. Heb je een tabel als basis geselecteerd, voeg dan ook alle velden uit de tabel Patiënten toe, anders heb je geen patiëntgegevens...

De volgende stap is, het aanpassen van de relatie tussen tabel Patiënten en query Totaalconsults. Als je de relatie namelijk niet aanpast, zie je alleen maar patiënten die al een consult hebben gehad. Je wilt uiteraard ook de patiënten zien, die wel zijn ingevoerd, maar nog niet zijn geweest voor een consult.
Dubbelklik nu dan ook op de lijn tussen de twee tabellen/queries, en kies de optie waarbij je Alle records ziet uit Patiënten, en alleen de gerelateerde records uit de tabel Totalen. Je hebt hierbij de keuze uit de opties 2 of 3, is een beetje moeilijk te zeggen van afstand.
Als de ene optie niet werkt, kun je probleemloos overstappen op de andere, door het proces te herhalen. Als je de query nu bekijkt, moet je alle patiënten zien, en bij degene met een consult (of meer) het aantal bezoeken. De query sluit je nu af, en uiteraard bewaar je het resultaat.
In de lijst met velden (aparte knop in de werkbalk) zie je nu het extra veld Totalen staan, en dat zet je nu met slepen op de plek op het formulier waar je het wilt hebben. Nu zie je dus altijd het aantal consults staan op het patiëntenformulier.
Als iemand een nieuwe afspraak heeft, wordt het totaal netjes bijgewerkt; daar hoef je dus nooit iets voor te doen. Makkelijker kunnen we het niet maken.... Moeilijker dus wel, als je het getal echt in de tabel Patiënten wilt opslaan ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan