Public Sub HerlaadBepalen()
StatusBar "Variabelen declareren..."
Dim BeginTijd, EindTijd, Duur, Tabel, rstSQL, rstCount, rstKPI_ID, Herlaadland, Herlaadplaats, Herlaadpc, Update_Query As String, rstSQL2
BeginTijd = Time
Set rstKPI = New ADODB.Recordset
Tabel = "KPI-VDBT-LFR"
'rstSQL = "Select * From `" & Tabel & "` WHERE ((([KPI-VDBT-LFR].zendnr)=1) AND (([KPI-VDBT-LFR].goednr)=1) AND (([KPI-VDBT-LFR].OplCont_Charter) Not Like ""0 - *"" And ([KPI-VDBT-LFR].OplCont_Charter) Not Like ""0 - ?"" And ([KPI-VDBT-LFR].OplCont_Charter) Not Like ""? - 0"" And ([KPI-VDBT-LFR].OplCont_Charter) Not Like ""999999 - 0"") AND (([KPI-VDBT-LFR].Laadland) Is Not Null) AND (([KPI-VDBT-LFR].Laadlokatie) Is Not Null) AND (([KPI-VDBT-LFR].losland) Is Not Null) AND (([KPI-VDBT-LFR].loslokatie) Is Not Null) AND (([KPI-VDBT-LFR].Begindatum_laden) Is Not Null) AND (([KPI-VDBT-LFR].Begintijd_laden) Is Not Null) AND (([KPI-VDBT-LFR].Einddatum_lossen) Is Not Null) AND (([KPI-VDBT-LFR].Eindtijd_lossen) Is Not Null) AND (([KPI-VDBT-LFR].OpdrachtStatus)>0 And ([KPI-VDBT-LFR].OpdrachtStatus)<5) AND (([KPI-VDBT-LFR].LaadPC) Is Not Null) AND (([KPI-VDBT-LFR].LosPC) Is Not Null)) ORDER BY [KPI-VDBT-LFR].OplCont_Charter, [KPI-VDBT-LFR].Begindatum_laden, [KPI-VDBT-LFR].Begintijd_laden"
rstSQL = "Select * From `" & Tabel & "` WHERE ((([KPI-VDBT-LFR].zendnr)=1) AND (([KPI-VDBT-LFR].goednr)=1) AND (([KPI-VDBT-LFR].OplCont_Charter) Not Like '0 - %' And ([KPI-VDBT-LFR].OplCont_Charter) Not Like '0 - ?' And ([KPI-VDBT-LFR].OplCont_Charter) Not Like '? - 0' And ([KPI-VDBT-LFR].OplCont_Charter) Not Like '999999 - 0') AND (([KPI-VDBT-LFR].Laadland) Is Not Null) AND (([KPI-VDBT-LFR].Laadlokatie) Is Not Null) AND (([KPI-VDBT-LFR].losland) Is Not Null) AND (([KPI-VDBT-LFR].loslokatie) Is Not Null) AND (([KPI-VDBT-LFR].Begindatum_laden) Is Not Null) AND (([KPI-VDBT-LFR].Begintijd_laden) Is Not Null) AND (([KPI-VDBT-LFR].Einddatum_lossen) Is Not Null) AND (([KPI-VDBT-LFR].Eindtijd_lossen) Is Not Null) AND (([KPI-VDBT-LFR].OpdrachtStatus)>0 And ([KPI-VDBT-LFR].OpdrachtStatus)<5) AND (([KPI-VDBT-LFR].LaadPC) Is Not Null) AND (([KPI-VDBT-LFR].LosPC) Is Not Null)) ORDER BY [KPI-VDBT-LFR].OplCont_Charter, [KPI-VDBT-LFR].Begindatum_laden, [KPI-VDBT-LFR].Begintijd_laden;"
'ddd = InputBox("ddd", "excel", rstSQL)
StatusBar "Recordset openen..."
rstKPI.Open rstSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rstCount = rstKPI.RecordCount
' MsgBox rstCount
' rstKPI.Close
' Exit Sub
rstKPI.MoveFirst
i = 1
i2 = 1
StatusBar "While recorset is not empty herlaad gegevens bepalen..."
Do While Not rstKPI.EOF
' Do something useful with the "current" record
If IsNull(rstKPI.Fields("Herlaadland").Value) Or rstKPI.Fields("Herlaadland").Value = "" Or rstKPI.Fields("Herlaadland").Value = Null Or rstKPI.Fields("Herlaadland").Value = 0 Then
rstKPI_ID = rstKPI!Id
'StatusBar "Herlaad gegevens bepalen Record " & i & " van " & rstCount & " (Bezig met record: " & rstKPI_ID & ") ..."
StatusBar Format((Time - BeginTijd), "hh:mm:ss") & " Herlaad gegevens bepalen, voortgang: " & Round((i / rstCount * 100), 2) & "%"
rstSQL2 = "SELECT TOP 1 [KPI-VDBT-LFR].OplCont_Charter, CDate([Begindatum_laden] & ' ' & [KPI-VDBT-LFR]![Begintijd_laden]) AS Expr1, [KPI-VDBT-LFR].Laadland, [KPI-VDBT-LFR].Laadlokatie, [KPI-VDBT-LFR].LaadPC FROM [KPI-VDBT-LFR] WHERE ((([KPI-VDBT-LFR].OplCont_Charter)='" & rstKPI!OplCont_Charter & "') AND ((CDate([Begindatum_laden] & ' ' & [KPI-VDBT-LFR]![Begintijd_laden])) Is Not Null And (CDate([Begindatum_laden] & ' ' & [KPI-VDBT-LFR]![Begintijd_laden]))>CDate('" & rstKPI!Begindatum_laden & " " & rstKPI!Begintijd_laden & "'))) ORDER BY CDate([Begindatum_laden] & ' ' & [KPI-VDBT-LFR]![Begintijd_laden]);"
Set rst2KPI = New ADODB.Recordset
rst2KPI.Open rstSQL2, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If rst2KPI.RecordCount <> 1 Then
Herlaadland = "RETOUR ONBEKEND"
Herlaadplaats = "RETOUR ONBEKEND"
Herlaadpc = "RETOUR ONBEKEND"
Else
rst2KPI.MoveFirst
Herlaadland = rst2KPI!Laadland
Herlaadplaats = rst2KPI!Laadlokatie
Herlaadpc = rst2KPI!LaadPC
End If
'Controle op ' of "
Herlaadland = Replace(Herlaadland, "'", "")
Herlaadplaats = Replace(Herlaadplaats, "'", "")
Herlaadpc = Replace(Herlaadpc, "'", "")
rst2KPI.Close
'Update_Query = "UPDATE [KPI-VDBT-LFR] SET [KPI-VDBT-LFR].HerlaadLand = '" & Herlaadland & "' WHERE ((([KPI-VDBT-LFR].Id)=" & rstKPI_ID & "))" '"UPDATE `" & Tabel & "` SET Herlaadland = '" & Herlaadland & "' WHERE Id = " & rstKPI_ID & ""
Update_Query = "UPDATE [KPI-VDBT-LFR] SET [KPI-VDBT-LFR].HerlaadLand = '" & Herlaadland & "', [KPI-VDBT-LFR].HerlaadPC = '" & Herlaadpc & "', [KPI-VDBT-LFR].HerlaadLokatie = '" & Herlaadplaats & "' WHERE ((([KPI-VDBT-LFR].Id)=" & rstKPI_ID & "))" '"UPDATE `" & Tabel & "` SET Herlaadland = '" & Herlaadland & "' WHERE Id = " & rstKPI_ID & ""
CurrentProject.Connection.Execute Update_Query
'nummering
i2 = i2 + 1
End If
' Get the next record
StatusBar "Next record in Recordset..."
i = i + 1
rstKPI.MoveNext
Loop
StatusBar "Recordset Sluiten..."
rstKPI.Close
StatusBar "Afronden..."
EindTijd = Time
Duur = Format((EindTijd - BeginTijd), "hh:mm:ss")
StatusBar (i - 1) & " records van de " & rstCount & " doorgelopen." & " Tijdsduur: " & Duur
MsgBox (i - 1) & " records van de " & rstCount & " doorgelopen, " & (i2 - 1) & " records bijgewerkt." & Chr(13) & "Tijdsduur: " & Duur
StatusBar ""
End Sub
Sub StatusBar(Optional Msg As Variant)
Dim Temp As Variant
' if the Msg variable is omitted or is empty, return the control of the status bar to Access
If Not IsMissing(Msg) Then
If Msg <> "" Then
Temp = SysCmd(acSysCmdSetStatus, Msg)
Else
Temp = SysCmd(acSysCmdClearStatus)
End If
Else
Temp = SysCmd(acSysCmdClearStatus)
End If
End Sub