dubbele lijnen verwijderen na bewerking

Status
Niet open voor verdere reacties.

rebirth

Gebruiker
Lid geworden
17 jun 2008
Berichten
170
Ik zit met een redelijk harde dobber :o
Ik heb een database waarin ik kinderopvang bij hou.
Via een query haal ik uit een tabel de records die voor éénzelfde kind op éénzelfde dag meerdere keren voorkomen. Dit zijn bijvoorbeeld kindjes die in de voormiddag een uurtje aanwezig waren, en in de namiddag nog enkele uurtjes.

Mijn bedoeling is om deze samen te voegen, waarbij hij van de namiddag de duurtijd gaat aftrekken dat het kindje in de voormiddag aanwezig was. Daardoor komt het totaal aantal uur op hetzelfde uit in 1 record, als in de 2 records samen. Na deze bewerking mag de eerste (overbodige) record van die dag van dat kindje gewist worden.

Echter, wanneer ik mijn brouwsel (want ter verduidelijking; het kan waarschijnlijk veel beter dan wat ik doe, ik ben niet echt een expert erin!) probeer uit te voeren via een knop op een formulier, krijg ik de melding:

Fout 3061 tijdens uitvoering
Er zijn te weinig parameters. Het verwachte aantal is: 2.

Dit is de de code die ik gebruik.
(En zoals al eerder gezegd, kan deze waarschijnlijk veel beter, ik ben bijlange geen expert)

Code:
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Dubbele lijnen voor Buitenschoolse met IKG")

rs.MoveFirst
Do While Not rs.EOF
    dt = rs!duur
    rs.Delete
    rs.MoveNext
    rs.Edit
    rs!Beginuur = rs!Beginuur - dt
 
    duurtijd  = rs!Einduur - rs!Beginuur
    duurtijd = rs!duur


If rs!Einduur = #6:15:00 AM# Then
    rs!Facturatie = "1"
    rs!Pampers = "2"
Else
    Select Case duurtijd
    Case Is > #12:00:00 PM#
    rs!Facturatie = "1,6"
    rs!Pampers = "5"
    Case Is > #10:00:00 AM#
    rs!Pampers = "5"
    rs!Facturatie = "1"
    Case Is > #5:00:00 AM#
    rs!Facturatie = "1"
    rs!Pampers = "4"
    Case Is > #3:00:00 AM#
    rs!Facturatie = "0,6"
    rs!Pampers = "2"
    Case Else
    rs!Facturatie = "0,4"
    rs!Pampers = "2"
    End Select
End If

    rs.Update
    dt = ""
    rs.MoveNext
Loop

Iemand een idee waarom ik deze melding zou krijgen?
Of heeft mijn fout ook te maken met de query die ik gebruik?

Alvast bedankt voor de hulp!
 
Ik ben inmiddels zelf al tot de conclusie gekomen dat het probleem waarschijnlijk bij mijn query zit.
In mijn query verwijs ik naar 2 velden in een ander formulier, waarmee de waarden in dat veld moeten overeen komen.
Het formulier waarin de knop met bovenstaande code staat, toont de gegevens van deze query perfect, op basis van die gekozen waarden.
Wanneer ik echter gewoon de query open en uitvoer, dan krijg ik 0 records. Terwijl ik hier dezelfde lijst zou moeten krijgen als in het formulier.
Waarom dit verschil er is,... geen idee.
 
Als ik je verhaal lees, vermoed ik dat het vaker voorkomt dat een kind meer dan één keer wordt ingeboekt. Dat riekt naar een normalisatiekwestie; je zou de aanwezigheidstabel dus moeten aanpassen, en de begin- en eindtijden van elk opvangblok as apart record moeten opslaan. In je overzichtsquery tel je vervolgens alle duurtijden bij elkaar op, en dan heb je je dagoverzicht. Jouw aanpak zou ik in ieder geval zo niet kiezen... Niet alleen kloppen je gegevens niet meer met de werkelijkheid Je weet namelijk nooit meer of een duurtijd aan één stuk was, of in meer tijdsblokken), je kunt er ook nooit meer vanuit gaan dat de bezettingsgraad correct is. Als je kinderen die in de ochtend aanwezig waren gaat 'verplaatsen' naar een middagsessie, hoe weet je dan straks wat de juiste bezetting is geweest in de ochtend? Kortom: volgens mij ben je op de verkeerde weg...

P.s. ik blijf er instinken: als iemand een onderwerp maakt met de tekst: ik krijg dubbele lijnen niet weg, denk ik eerst aan een opmaak probleem ;)
 
Dat komt inderdaad véél vaker voor. Alleen mogen niet al die kinderen samengevoegd worden, dat hangt nog samen met andere voorwaarden. Het probleem dat de gegevens niet meer kloppen met de werkelijkheid, is niet zo erg, omdat we infeite met 2 verschillende databanken werken, eentje met de ongewijzigde gegevens op een computer waar ons personeel mee werkt, en dan een tweede databank voor facturatie e.d. waar ik mee werk, en waar deze gegevens bijvoorbeeld moeten samengevoegd worden om door te geven aan andere instanties. Dus die aanpassing mag/moet weldegelijk gebeuren. Alleen, hij werkt dus niet.

En de fout ligt niet bij die handeling die ik doe, maar blijkbaar enkel en alleen aan de query die ik gebruik. In het formulier toont hij hem perfect. Als ik gewoon de query uitvoer, is hij leeg.

Sorry voor de verwarrende titel trouwens ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan