MortovMolotov
Gebruiker
- Lid geworden
- 10 jan 2018
- Berichten
- 12
Dag iedereen,
Een vriend van mij is arts te België, waar de patiënten per prestatie (raadpleging) betalen; na die betaling krijgt de patiënt getuigschriftjes voor verstrekte hulp uit (klik hier voor een voorbeeld).
Een beetje achtergrondinformatie m.b.t. mijn vragen hierbij is de volgende (cfr. dus ook de link hierboven).
Als arts moet je de volgende informatie altijd duidelijk opschrijven:
- de naam vd patiënt
- datum vd consultatie
- de zescijferige code(s) m.b.t. terugbetaling; dit is van belang voor de mutualiteit, omdat die dan weten hoeveel ze de patiënt moeten terugbetalen; bv. consultatie bij een huisarts: 101076, ca. 20 euro terugbetaald, afhankelijk van je statuut; bv. bij een reumatoloog: 102653, 44 euro terugbetaald, 53 euro indien je een WIGW statuut hebt.
- het bedrag
De artsen hebben dergelijke getuigschriften verzameld in "boekjes" van telkens 50 van die getuigschriften. Telkens als zo'n boekje vol is, moet je het samengeteld bedrag en de datum van het laatste getuigschrift erop zetten.
Voor het bijhouden van deze "boekjes" heb ik een access database geschreven die operationeel is, mits men op de hoogte is van de bugs in het systeem.
Men kan dus alle data ingeven, en een rapport is beschikbaar om o.a. het samengeteld bedrag te berekenen.
Maar hier komen dus de bugs
1. in het formulier waar ik mijn data ingeef, heb ik via een combinatie van VBA code en field defaults al geregeld dat:
- bij het openen van een nieuw record (getuigschrift), de nummering automatisch +1 stijgt
- de datum en het "boekje", waarvan van het vorige getuigschrift (record) deel uitmaakte, automatisch worden overgenomen in het nieuwe record
- dit is logisch, gezien je 50 getuigschriften na elkaar van 't zelfde boekje invult, en bovendien hoef je de datum dus niet telkens opnieuw in te geven, hooguit enkele malen wat te wijzigen tijdens het ingeven van je gegevens (het is nl zo dat één boekje (van 50 getuigschriften) na twee, hooguit drie dagen volledig is opgebruikt; dit afhankelijk van het aantal patiënten dat een arts in die periode ziet
2. maar anderzijds had ik graag gewild dat na invullen van het vijftigste boekje
- hetzij alles gereset wordt voor het eerstvolgende record; alle velden leeg dus, want je begint aan een nieuw boekje; alsof je op ESC drukt dus
- hetzij er géén nieuwe record wordt aangemaakt, en meteen het rapport voor dat boekje wordt geopend; ergens logisch, gezien je dan moet beginnen samentellen
- en sowieso had ik op het formulier een knop gezet die het rapport voor het huidige boekje opent.
3. Ik slaag er maar niet in om een default value automatisch te laten selecteren voor het Codes field (= lookup list); bij voorkeur zou dat 102653 moeten zijn.
Hieronder volgen enkele gegevens m.b.t. de structuur van de database; een leeg bestand heb ik opgeladen via deze topic.
(mocht dit niet voldoende zijn, laat het me weten, dan kan ik eea hier aanvullen)
1. Design van Receipts tabel:
https://prnt.sc/hyeiex
2. DB Relationship
https://prnt.sc/hyeimo
3. Formulier om data in te geven
https://prnt.sc/hyej0z
4. SQL code van de query waarvan het rapport "AllReceipts" gebruik maakt:
5. De VBA code voor hetgeen ik in puntje 1. hierboven heb beschreven
Bekijk bijlage Boekjes - leeg.zip
Alvast bedankt voor jullie advies,
Mortov Molotov
Een vriend van mij is arts te België, waar de patiënten per prestatie (raadpleging) betalen; na die betaling krijgt de patiënt getuigschriftjes voor verstrekte hulp uit (klik hier voor een voorbeeld).
Een beetje achtergrondinformatie m.b.t. mijn vragen hierbij is de volgende (cfr. dus ook de link hierboven).
Als arts moet je de volgende informatie altijd duidelijk opschrijven:
- de naam vd patiënt
- datum vd consultatie
- de zescijferige code(s) m.b.t. terugbetaling; dit is van belang voor de mutualiteit, omdat die dan weten hoeveel ze de patiënt moeten terugbetalen; bv. consultatie bij een huisarts: 101076, ca. 20 euro terugbetaald, afhankelijk van je statuut; bv. bij een reumatoloog: 102653, 44 euro terugbetaald, 53 euro indien je een WIGW statuut hebt.
- het bedrag
De artsen hebben dergelijke getuigschriften verzameld in "boekjes" van telkens 50 van die getuigschriften. Telkens als zo'n boekje vol is, moet je het samengeteld bedrag en de datum van het laatste getuigschrift erop zetten.
Voor het bijhouden van deze "boekjes" heb ik een access database geschreven die operationeel is, mits men op de hoogte is van de bugs in het systeem.
Men kan dus alle data ingeven, en een rapport is beschikbaar om o.a. het samengeteld bedrag te berekenen.
Maar hier komen dus de bugs
1. in het formulier waar ik mijn data ingeef, heb ik via een combinatie van VBA code en field defaults al geregeld dat:
- bij het openen van een nieuw record (getuigschrift), de nummering automatisch +1 stijgt
- de datum en het "boekje", waarvan van het vorige getuigschrift (record) deel uitmaakte, automatisch worden overgenomen in het nieuwe record
- dit is logisch, gezien je 50 getuigschriften na elkaar van 't zelfde boekje invult, en bovendien hoef je de datum dus niet telkens opnieuw in te geven, hooguit enkele malen wat te wijzigen tijdens het ingeven van je gegevens (het is nl zo dat één boekje (van 50 getuigschriften) na twee, hooguit drie dagen volledig is opgebruikt; dit afhankelijk van het aantal patiënten dat een arts in die periode ziet
2. maar anderzijds had ik graag gewild dat na invullen van het vijftigste boekje
- hetzij alles gereset wordt voor het eerstvolgende record; alle velden leeg dus, want je begint aan een nieuw boekje; alsof je op ESC drukt dus
- hetzij er géén nieuwe record wordt aangemaakt, en meteen het rapport voor dat boekje wordt geopend; ergens logisch, gezien je dan moet beginnen samentellen
- en sowieso had ik op het formulier een knop gezet die het rapport voor het huidige boekje opent.
3. Ik slaag er maar niet in om een default value automatisch te laten selecteren voor het Codes field (= lookup list); bij voorkeur zou dat 102653 moeten zijn.
Hieronder volgen enkele gegevens m.b.t. de structuur van de database; een leeg bestand heb ik opgeladen via deze topic.
(mocht dit niet voldoende zijn, laat het me weten, dan kan ik eea hier aanvullen)
1. Design van Receipts tabel:
https://prnt.sc/hyeiex
2. DB Relationship
https://prnt.sc/hyeimo
3. Formulier om data in te geven
https://prnt.sc/hyej0z
4. SQL code van de query waarvan het rapport "AllReceipts" gebruik maakt:
Code:
SELECT Books.Book, Receipts.Nr, Receipts.CDate, Receipts.Codes, Receipts.Amount, Receipts.PaymentMethod, Receipts.RDate, Receipts.Comments
FROM Books INNER JOIN Receipts ON Books.ID = Receipts.Book
ORDER BY Books.Book, Receipts.Nr;
5. De VBA code voor hetgeen ik in puntje 1. hierboven heb beschreven
Code:
Option Compare Database
Option Explicit
Private Sub Form_Current()
Dim RS As DAO.Recordset
On Error Resume Next
' Exit if not on the new record.
If Not NewRecord Then Exit Sub
' Goto the last record of the form recordset (to autofill form).
Set RS = RecordsetClone
RS.MoveLast
' Exit if you cannot move to the last record (no records).
If Err <> 0 Then Exit Sub
Painting = False
If NrTxt <= 50 Then
BookCombo = RS(BookCombo.ControlSource)
CDateTxt = RS(CDateTxt.ControlSource)
NrTxt = RS(NrTxt.ControlSource) + 1
Else
BookCombo = ""
CDateTxt = ""
End If
Painting = True
End Sub
Alvast bedankt voor jullie advies,
Mortov Molotov