vijverbegeman
Gebruiker
- Lid geworden
- 27 apr 2007
- Berichten
- 22
Hallo,
Ik bouw een toepassing voor het registreren van de vliegtijden van een vliegclub. Hieronder een korte omschrijving van het probleem.
Ik heb te maken met een starttijd en een landingstijd. Ik heb deze velden numeric gemaakt omdat ik dan niks te maken heb met het invoerformat "00:00". Bij het invoeren werkt dat soms lastig voor de muisgebruikers onder ons.
In totaal dus 4 velden om de start- en landingstijd te registreren, nl. start_hr, start_min, landing_hr en landing_min. Ik heb een query geschreven die ervoor zorgt dat per vlucht de vluchtduur wordt berekend. Als ik nu deze query gebruik in mijn formulier (die afgaat na wijzigen van het veld landing_min) door gebruik te maken van onderstaand script, dan worden de records in het form geupdate met telkens de eerste berekening uit de query. Er moet dus een link gelegd worden naar het record waar het veld landing_min wordt gewijzigd. Een link naar het unieke id of iets met current record?
Hieronder de gebruikte code:
--------------------------------------------------------------------
Private Sub landing_min_AfterUpdate()
On Error GoTo ERR_FOUT
Dim db As Database
Dim RS As DAO.Recordset
Dim tijd_hr As String
Dim tijd_min As String
Dim sql As String
sql = "SELECT IIf(s.landing_min - s.start_min < 0, (s.landing_hr - s.start_hr - 1), (s.landing_hr - s.start_hr)) As vliegtijd_uren " & _
",IIf(s.landing_min-s.start_min<0,((60-s.start_min)+s.landing_min),(s.landing_min-s.start_min)) AS vliegtijd_min " & _
" FROM t_startlijst AS s"
Set db = CurrentDb
Set RS = db.OpenRecordset(sql)
tijd_hr = RS![vliegtijd_uren]
Set db = CurrentDb
Set RS = db.OpenRecordset(sql)
tijd_min = RS![vliegtijd_min]
'MsgBox ("tijd_hr: " & tijd_hr & "tijd_min: " & tijd_min)
RS.Close
Me.vluchtduur_uren = tijd_hr
Me.vluchtduur_min = tijd_min
Exit Sub
ERR_FOUT: MsgBox ("Er is een fout opgetreden bij het berekenen van de vliegtijd...")
Resume Next
End Sub
--------------------------------------------------------------------
Bedankt voor je reactie.
Pascal
Ik bouw een toepassing voor het registreren van de vliegtijden van een vliegclub. Hieronder een korte omschrijving van het probleem.
Ik heb te maken met een starttijd en een landingstijd. Ik heb deze velden numeric gemaakt omdat ik dan niks te maken heb met het invoerformat "00:00". Bij het invoeren werkt dat soms lastig voor de muisgebruikers onder ons.
In totaal dus 4 velden om de start- en landingstijd te registreren, nl. start_hr, start_min, landing_hr en landing_min. Ik heb een query geschreven die ervoor zorgt dat per vlucht de vluchtduur wordt berekend. Als ik nu deze query gebruik in mijn formulier (die afgaat na wijzigen van het veld landing_min) door gebruik te maken van onderstaand script, dan worden de records in het form geupdate met telkens de eerste berekening uit de query. Er moet dus een link gelegd worden naar het record waar het veld landing_min wordt gewijzigd. Een link naar het unieke id of iets met current record?
Hieronder de gebruikte code:
--------------------------------------------------------------------
Private Sub landing_min_AfterUpdate()
On Error GoTo ERR_FOUT
Dim db As Database
Dim RS As DAO.Recordset
Dim tijd_hr As String
Dim tijd_min As String
Dim sql As String
sql = "SELECT IIf(s.landing_min - s.start_min < 0, (s.landing_hr - s.start_hr - 1), (s.landing_hr - s.start_hr)) As vliegtijd_uren " & _
",IIf(s.landing_min-s.start_min<0,((60-s.start_min)+s.landing_min),(s.landing_min-s.start_min)) AS vliegtijd_min " & _
" FROM t_startlijst AS s"
Set db = CurrentDb
Set RS = db.OpenRecordset(sql)
tijd_hr = RS![vliegtijd_uren]
Set db = CurrentDb
Set RS = db.OpenRecordset(sql)
tijd_min = RS![vliegtijd_min]
'MsgBox ("tijd_hr: " & tijd_hr & "tijd_min: " & tijd_min)
RS.Close
Me.vluchtduur_uren = tijd_hr
Me.vluchtduur_min = tijd_min
Exit Sub
ERR_FOUT: MsgBox ("Er is een fout opgetreden bij het berekenen van de vliegtijd...")
Resume Next
End Sub
--------------------------------------------------------------------
Bedankt voor je reactie.
Pascal