Controle op logische data met datums en urenstanden

Status
Niet open voor verdere reacties.

jhdw

Gebruiker
Lid geworden
15 dec 2012
Berichten
166
Stel ik heb de volgende situatie.

In een tabel heb ik o.a. een datumveld en een numeriekveld. De gegevens worden op een formulier ingevuld. In het datumveld de opnamedatum en in het numerieke veld de urenstand. Daarna volgt er een berekening van het aantal uren per dag dat een machine gedraaid heeft. Dat werkt naar behoren.

Nu kan het voorkomen dat de gebruiker een fout maakt, bijvoorbeeld een datum na de laatste datum maar een urenstand die lager is dan de vorige?

Bijvoorbeeld: 1-5-2021 _ 5000 uur, daarna 21 -5-2021 _ 4000 uur.

De datum wordt als eerste ingevoerd, de controle op de ingevoerde urenstand zou in de afterupdate van het urenstand veld moeten komen.

Heeft iemand een idee hoe dit het beste aangepakt kan worden?

Alvast bedankt

Mvg Jan
 
De urenstand in een nieuw record zou toch nooit lager kunnen zijn dan in de oudere records? Of komt het voor dat er achteraf records worden tussengevoegd? Want dat maakt voor de procedure wel uit.
 
De gebruiker is bezig met een inhaalslag en het komt dus voor dat er oudere gegevens tussengevoegd moeten worden
 
Volgens mij heb ik de oplossing gevonden met de volgende code:

Code:
        strSQL = "SELECT TOP 1 tbl_onderhoud_compressor.AfleveringID, tbl_onderhoud_compressor.Datum_ingave, tbl_onderhoud_compressor.Urenstanden, tbl_onderhoud_compressor.Datum_1, tbl_onderhoud_compressor.Urenstand_1 "
        strSQL = strSQL & "From tbl_onderhoud_compressor "
        strSQL = strSQL & "WHERE (((tbl_onderhoud_compressor.AfleveringID)= " & .IDAflevering & ") "
        strSQL = strSQL & "AND (tbl_onderhoud_compressor.Datum_ingave)> " & CDbl(.tDatum_ingave) & ") "
        strSQL = strSQL & "ORDER BY tbl_onderhoud_compressor.Datum_ingave;"
        Set rs2 = CurrentDb.OpenRecordset(strSQL)
            If rs2.RecordCount > 0 Then
                TempVars.Add "Uren_1", rs2!Urenstanden.Value
                TempVars.Add "Uren_2", rs2!Urenstand_1.Value
            End If
            If .Urenstanden >= TempVars!Uren_1 Or .Urenstanden <= TempVars!Uren_2 Then
                MsgBox "Deze urenstand past niet bij de historie van deze compressor." & vbCrLf _
                    & "" & vbCrLf _
                    & "Controleer de ingevoerde datum en/of urenstand.", vbOKOnly Or vbExclamation, Application.Name
                .Urenstand.Value = Null
                .tDatum_ingave.SetFocus
                .Urenstand.SetFocus
                rs2.Close
                Set rs2 = Nothing
                    Exit Sub
            End If

Gr. Jan
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan