Automatisch gegevens terugkeren in tekstvak

Status
Niet open voor verdere reacties.

Virusbeatbox

Gebruiker
Lid geworden
18 dec 2007
Berichten
201
Beste,

ik heb een database gemaakt die een dokterspraktijk simuleert.

Ik heb in het formulier Patiënten een keuzelijst met invoervak voor de naam van de Patiënt. Wanneer een patiënt voor de eerste maal langskomt, wordt daar een nieuw record voor deze persoon aangemaakt met zijn gegevens (adres, etc..) wanneer deze na een tijdje opnieuw langskomt wil ik de naam selecteren via de keuzelijst.

Mijn vraag is nu, hoe zorg ik ervoor dat in de tekstvakken waar de gegevens staan van adres, etc... , na het kiezen van de naam in uit de keuzelijst, de gegevens automatisch terug komen te staan?

hopelijk is mijn vraag duidelijk geformuleerd!

mvg
 
Vermoedelijk bedoel je het volgende: Je hebt een keuzelijst met invoervak (we noemen hem even cboPatient) en een aantal tekstvakken. Nu wil je dat de tekstvakken worden gevuld met de patiëntgegevens als je iemand hebt geselecteerd met de keuzelijst. Klopt dit?

Dan zet je in de tekstvakken het volgende commando bij <Besturingselementbron>:

=[cboPatient].Column(#)

Hierbij is # de kolom die je wilt laten zien, waarbij de eerste kolom met het getal 0 begint. Als je 4 kolommen hebt opgenomen in de keuzelijst, dan kun je dus met de nummers 0-3 alle vier kolommen uitlezen.
 
Vermoedelijk bedoel je het volgende: Je hebt een keuzelijst met invoervak (we noemen hem even cboPatient) en een aantal tekstvakken. Nu wil je dat de tekstvakken worden gevuld met de patiëntgegevens als je iemand hebt geselecteerd met de keuzelijst. Klopt dit?

Dan zet je in de tekstvakken het volgende commando bij <Besturingselementbron>:

=[cboPatient].Column(#)

Hierbij is # de kolom die je wilt laten zien, waarbij de eerste kolom met het getal 0 begint. Als je 4 kolommen hebt opgenomen in de keuzelijst, dan kun je dus met de nummers 0-3 alle vier kolommen uitlezen.

gedeeltelijk

ik heb een keuzelijst met enkel de naam van de patiënt. Onder deze keuzelijst bevinden zich tekstvakken. Wanneer een Patiënt voor de eerste maal komt, wordt de naam ingegeven in de keuzelijst en de adres gegevens in de invoervakken. Wanneer de patiënt na een x aantal tijd terug komt, wordt in de keuzelijst de naam van de patiënt geselecteerd. Nu wil ik dus, van zodra ik de naam heb gekozen, dat de gegevens van deze patiënt, van zijn vorige bezoek, in de invoervakken komt
 
Dan heb ik je vraag in eerste instantie niet helemaal goed gesnopen :o
Ik neem aan, dat je de tabel hebt gebaseerd op de tabel met bezoekgegevens? Al zie ik dan eerlijk gezegd niet hoe je een nieuwe patiënt met zijn vaste gegevens kunt invoeren...
Normaal gesproken zou je een tabel moeten hebben met patiëntgegevens, zoals naam, adres etc, en een tabel met consultatiegegevens. In deze laatste tabel staan dan de bezoekgegevens, en uiteraard een koppeling naar de patiëntID.

Als ik je vraag zo lees, dan gebruik je nu één tabel, waarin je alles tegelijk wilt beheren, en dat raad ik dus eigenlijk af. Ik zou de tabel met consultaties apart beheren van de tabel met patiëntgegevens. In de tabel consultaties kun je dan een keuzelijst met patiënten maken, die is gebaseerd op de tabel Patiënten. Op het moment dat je een nieuwe patiënt intypt in de keuzelijst, loop je dan uiteraard tegen een probleem aan, namelijk dat de patiënt nog niet in de tabel staat. Op dat moment moet er dan een trigger worden geplaatst op de keuzelijst <Bij niet in lijst>, die het formulier Patiënten opent, zodat je de patiëntgegevens kunt invoeren. Bij sluiten van het formulier heb je dan gelijk de juiste gegevens op het formulier Consultaties staan.
Bij bestaande patiënten kun je met deze zoeklijst dus het laatste bezoek van de patiënt opvragen, en bij nieuwe patiënten krijg je een Patiënten formulier te zien. Is dat ongeveer wat je wilt/hebt?
 
Ik snap de uitleg niet helemaal, misschien ligt de fout bij mij.

Ik heb dus een formulier van de patiënten. Hierin staat een keuzelijst met invoervak voor hun naam en de rest van de contactgegevens zijn gewone tekstvakken.

Waarom ik een keuzelijst met invoervak neem voor de naam is omdat, indien de patiënt voor de eerste maal bij de dokter langskomt, wordt in het formulier patiënten de naam (+ gegevens) ingegeven. Wanneer de patiënt na x aantal tijd opnieuw langskomt, kan de dokter, via de keuzelijst met invoervak, de naam van de patiënt zoeken waardoor er AUTOMATISCH de gegevens van de patiënt in de tekstvakken komt te staan zodat de arts deze niet telkens opnieuw moet ingeven.

Ik weet wel dat er dan na een tijdje, in de tabel patiënten meerdere keren die patiënt voorkomt omdat er telkens hij op bezoek komt, een nieuw record in het formulier patiënten wordt ingevoerd maar dit is geen probleem.

Hopelijk is mijn wartaal van eerder nu wat duidelijker? :d

grtss
 
Als je mijn uitleg niet helemaal hebt gesnapt, dan ligt dat uiteraard eerder aan mijn kant... Moet ik het maar gelijk goed uitleggen ;)

Ik zou het persoonlijk als een probleem ervaren als ik een steeds groter wordende keuzelijst met steeds dezelfde namen (afhankelijk van het aantal consults) zou krijgen. Zo'n lijst wordt namelijk onbeheersbaar. En wat doe je met de adresgegevens als die veranderen? En om een veel groter probleem te noemen: wat doe je als je een naam invoert met een kleine spelfout er in? Het systeem weet dat niet dat de patiënt nog niet in het syseem staat, en zal dus een nieuwe patiënt voor je aanmaken. Op deze manier zal je systeem heel snel vervuilen... En wat een ook een groot probleem is: je slaat heel veel keer steeds dezelfde gegevens op, waardoor je db dus buitensporig snel heel groot wordt.
En dan heb je ook nog een technisch probleem: een keuzelijst is bedoeld om gegevens op te zoeken. De gegevens moeten dus wel bestaan. Je kunt dus een actie uitvoeren bij de gebeurtenis <Bij niet in lijst> (oftwel: patiënt bestaat nog niet) maar die actie kan niet worden uitgevoerd worden op hetzelfde formulier dat is geopend. Je maakt het jezelf dus onwaarschijnlijk moeilijk door deze oplossing te willen...

Kortom... Ik zal het nog een maar keer herhalen: als je echt een goed systeem wilt gaan maken, zorg er dan voor dat je een aparte tabel hebt voor de patiënten, en een aparte tabel voor de consultaties. Op het formulier consultaties kun je dan prima met een keuzelijst patiënten kiezen, en als de patiënt niet bestaat, een patiënt toevoegen. Dit is een veel gebruikt, en beproefd concept, waarbij je de grootse flexibiliteit hebt, en ook op een uitstekende manier rapporten en overzichten kunt maken. Uiteraard kunnen we daar prima bij helpen, want daar zijn genoeg voorbeeldjes voor gemaakt de laatste tijd.

Ik vind, dat je met het werken met één tabel op een verkeerd spoor zit...
 
Beste,

ik heb in het formulier Patiënt een keuzelijst met invoervak voor de Postcode en een invoervak voor de Gemeente.

In de keuzelijst staan de postcodes van de regio. Wanneer ik dan de code =[Postcode].Column(#) in het tekstvak van Gemeente zet en de postcode kies, komt er automatisch in het tekstvak van gemeente de corresponderende gemeente

MAAR

wanneer er een patient van een andere gemeente afkomstig is, wens ik in de keuzelijst met invoervak de nieuwe postcode in te geven en in gemeente gewoon de gemeente van deze postcode maar wanneer ik in het tekstvak van gemeente, de gemeente ingeef, krijg ik een foutmelding dat dit niet kan omdat de code =[Postcode].Column(#) in het besturingselement staat... hoe los ik dit op?
 
Met je huidige constructie kun je dat niet oplossen; het tekstvak Gemeente heeft immers een waarde nodig uit de keuzelijst. Als je een pc intypt die niet in de lijst staat, krijg je dus een foutmelding.
De enige oplossing is (denk ik) om de tekst in het tekstvak te laten plaatsen door de keuzelijst, en de regel Besturingselementbron dus leeg te maken. Daarbij gebruik je de gebeurtenis <Na bijwerken> van de keuzelijst om het tekstvak te vullen. Dat ziet er zo uit:

Private Sub LstPostcode_AfterUpdate()

Me.txtPlaats.Value = Me.LstPostcode.Column(2)
Me.txtLand.Value = Me.LstPostcode.Column(3)

End Sub
 
Bij deze wil ik u vn harte bedanken voor de vele steun die u mij geboden heeft bij het maken van mn database.

Graag had ik nog 1 klein extra dingetje aan toe willen voegen.
Voordat de database in werking kan genomen worden, moet er eerst een loginnaam en wachtwoord ingegeven worden.

Hoe kan ik dit het beste en eenvoudigst mogelijk aanpakken?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan