Hallo Forum leden
Ik heb een vraag betreft een stuk vba voor acces
Ik ben vrij recent gestart met het programma acces en wat dingen in het elkaar aan het sleutelen.
Nu loop ik tegen een probleem op waar ik al geruime tijd naar aan een oplossing aan het zoeken ben hiervoor.
Aangezien ik weinig kennis heb met vba wil ik vragen of jullie mij met dit probleem zouden kunnen helpen.
Op internet heb ik een aantal scripts gevonden welk mischien het probleem kan oplossen maar dit weet ik niet of dit te koppelen is of dat er een anderscript gemaakt kan worden met wat uitleg hiervan zodat ik het zou kunnen analyseren om hier ook wat van te kunnen leren.
Het gaat hierom.
Ik heb 2 tabellen gemaakt een tabel (jaar) met een veld jaar
en een tabel (invoer) met velden datum start,tijd start,datum stop,en tijd stop.
Nu zou ik graag in een query een berekening willen hebben welk het verschil bereken tussen (datum start,tijd start) en (datum stop,tijd stop) in minuten waarbij rekening wordt gehouden met zaterdag en zondag en feestdagen niet meegerekend als deze in de periode valt van de (datum start,tijd start) en(datum stop,tijd stop)
hierbij de script welk ik gevonden heb op internet.
Bij voorbaat dank
Groet Novita
Ik heb een vraag betreft een stuk vba voor acces
Ik ben vrij recent gestart met het programma acces en wat dingen in het elkaar aan het sleutelen.
Nu loop ik tegen een probleem op waar ik al geruime tijd naar aan een oplossing aan het zoeken ben hiervoor.
Aangezien ik weinig kennis heb met vba wil ik vragen of jullie mij met dit probleem zouden kunnen helpen.
Op internet heb ik een aantal scripts gevonden welk mischien het probleem kan oplossen maar dit weet ik niet of dit te koppelen is of dat er een anderscript gemaakt kan worden met wat uitleg hiervan zodat ik het zou kunnen analyseren om hier ook wat van te kunnen leren.
Het gaat hierom.
Ik heb 2 tabellen gemaakt een tabel (jaar) met een veld jaar
en een tabel (invoer) met velden datum start,tijd start,datum stop,en tijd stop.
Nu zou ik graag in een query een berekening willen hebben welk het verschil bereken tussen (datum start,tijd start) en (datum stop,tijd stop) in minuten waarbij rekening wordt gehouden met zaterdag en zondag en feestdagen niet meegerekend als deze in de periode valt van de (datum start,tijd start) en(datum stop,tijd stop)
hierbij de script welk ik gevonden heb op internet.
Code:
Public Function ElapsedMinutes(Datum_Start_Productie As Date, Tijd_Start_Productie As Date, Datum_Stop_Productie As Date, Tijd_Stop_Productie As Date) As String
On Error GoTo Err_ElapsedMinutes
Dim start As Date
Dim eind As Date
Dim intRetValMinutes As Long
start = Datum_Start_Productie + Tijd_Start_Productie
eind = Datum_Stop_Productie + Tijd_Stop_Productie
If Not IsNull(eind) Then
If start < eind Then
intRetValMinutes = DateDiff("n", start, eind)
Else
intRetValMinutes = DateDiff("n", start, eind - 1)
End If
Else
intRetValMinutes = 0
End If
ElapsedMinutes = intRetValMinutes
Exit_ElapsedMinutes:
Exit Function
Err_ElapsedMinutes:
MsgBox Err.Number & ": " & Err.Description
Resume Exit_ElapsedMinutes
End Function
Function Pasen(Jaar As Integer) As Date
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D As Byte
Dim E As Byte
A = Jaar Mod 19
B = Int(Jaar / 100)
C = Int((3 * B - 5) / 4)
D = (Int(12 + 11 * A + (8 * B + 13) / 25 - C) Mod 30 + 30) Mod 30
If 11 * D < A + 1 Then
E = 56 - D
Else
E = 57 - D
End If
Pasen = DateValue("01/03/" & Str(Jaar)) + E - 1 - Int(E + (5 * Jaar) / 4 - C) Mod 7
End Function
Function PlusWerkdagen(Van As Date, Werkdagen As Integer) As Date
Dim Tel As Integer
Dim Datum As Date
Datum = Van
Tel = Werkdagen
Do While Tel <> 0
Datum = DateAdd("d", 1, Datum)
If Not IsZZfVdag(Datum) Then
Tel = Tel - 1
End If
Loop
PlusWerkdagen = Datum
End Function
Function AantalWerkdagen(Van As Date, Tot As Date) As Integer
Dim Tel As Integer
Dim Datum As Date
Tel = 0
Datum = Van
Do While Datum <= Tot
If Not IsZZfVdag(Datum) Then
Tel = Tel + 1
End If
Datum = DateAdd("d", 1, Datum)
Loop
AantalWerkdagen = Tel
End Function
Function IsZZfVdag(ElapsedMinutes As Date) As Boolean
Dim Jaar As Integer
Dim TDag As String
Dim Pa1 As Date
Dim hDat As Date
IsZZfVdag = False
'Controleren of de datum een zaterdag of een zondag is
If DatePart("w", Datum) = 1 Or _
DatePart("w", Datum) = 7 Then
IsZZfVdag = True
GoTo Einde
End If
'Controleren op feestdagen met een vaste datum
TDag = Format(Datum, "dd-mm")
If TDag = "01-01" Then
IsZZfVdag = True
GoTo Einde
End If
If TDag = "30-04" Then
IsZZfVdag = True
GoTo Einde
End If
If TDag = "05-05" Then
IsZZfVdag = True
GoTo Einde
End If
If TDag = "25-12" Then
IsZZfVdag = True
GoTo Einde
End If
If TDag = "26-12" Then
IsZZfVdag = True
GoTo Einde
End If
'Bepalen eerste paasdag
Jaar = DatePart("yyyy", Datum)
Pa1 = Pasen(Jaar)
'Controle goede vrijdag
If (Datum = Pa1 - 2) Then
IsZZfVdag = True
GoTo Einde
End If
'Controle tweede paasdag
If (Datum = Pa1 + 1) Then
IsZZfVdag = True
GoTo Einde
End If
'Controle hemelvaartdag
If (Datum = Pa1 + 39) Then
IsZZfVdag = True
GoTo Einde
End If
'Controle tweede pinksterdag
If (Datum = Pa1 + 50) Then
IsZZfVdag = True
GoTo Einde
End If
'Controleren op vakantie dagen
hDat = Format(Datum, "mm-dd-yyyy")
If Not IsNull(DLookup("VAN", "Vakantie", "VAN<=#" & hDat & "# AND TEM>=#" & hDat & "#")) Then
IsZZfVdag = True
GoTo Einde
End If
Einde:
End Function
Bij voorbaat dank
Groet Novita
Laatst bewerkt: