Autofill-in

Aroff

Gebruiker
Lid geworden
18 jun 2024
Berichten
102
Goedemiddag allemaal.

Ik heb geen idee hoe ik moet beginnen met het toepassen van autofill-in

Ik heb twee tabellen
1x met routes en onder andere een veld toaal km
1x Ritgegevens met onder andere de velden begin stand km en eindstand km
Ik heb een formulier gemaakt met daarop de route met onder andere het veld Totaal km
Ik heb ook een subformulier gemaakt met daarop de ritgegevens
onder andere chauffeur, datum en begin stand km en eindstand km.

Nu is mijn vraag
Kan ik de velden beginstand en eindstand autofillvullen zodat hij bij een nieuw record met de laatste km stand begint?

Dank jullie wel voor de te nemen moeite
 
Ja, dat kan uiteraard, al stel ik wat vragen bij jouw wens om, naast de beginstand, ook gelijk de eindstand in te willen vullen. Dat vind ik knap, aangezien ik nog nooit een rit heb gemaakt waarbij ik van te voren al wist wat de eindstand van de teller zou zijn. Het zal best zijn dat je van een van te voren bepaalde route de theoretische lengte weet, en dus ook een te verwachten eindstand, maar in de praktijk zal dat echt niet overeenkomen met het daadwerkelijk gereden kilometers. Net zo min als dat je op basis van die kilometers al de reistijd correct kan voorspellen. Denk bijvoorbeeld aan een afgesloten weg onderweg.

Al heb ik daar toevallig vanochtend wel zo een gemaakt: mijn buren zijn aan het verbouwen en de werklieden hebben een busje achter mijn auto gezet. Maar de achterklep had wat weinig ruimte, en ik aan de voorkant genoeg, dus ik heb de auto één meter naar voren gereden. Dát is een rit waarvan ik op voorhand de eindstand van de rit kon voorspellen :D.

Kortom: ik zou mij, als ik jou was, bij het plannen van een nieuwe rit beperken tot het automatisch invullen van de vorige eindstand, er daarbij vanuit gaande dat je 100% zeker weet dat de auto nadien niet meer is gebruikt, en de eindstand dus inderdaad de beginstand is van de volgende rit.

Voor het mooie zou het natuurlijk handig zijn als je een voorbeeldje van de db kan posten, dat praat een stuk makkelijker. Maar de theorie is deze: vul bij het veld Beginstand de laatste eindstand in als DefaultValue. Daarbij krijgt dat veld dus, bij het maken van een nieuw record, automatisch een waarde ingevuld. Die defaultvalue vul je bij het Opslaan van een rit in m.b.v. een kleine procedure die je onder de knop Opslaan hangt. Of een Gebeurtenis.
 
Hahahaha.

Ik heb voorgedefinieerde routes gemaakt. Daar geeft hij via een keuzelijst een route weer. Met vertrekplaats aankomstplaats en km.
In het sub formulier staan de ritgegevens. Datum begin km eind km stand etc. Reistijd is niet belangrijk.

Eigenlijk alleen dat ik bij een nieuw record een bijwerkte begin km heb. Ik ben nu niet instaat om een voorbeeld mee te sturen. Dat doe ik vanavond goed?
 
Lijkt mij prima, het is jouw vraag :). Blijkbaar heb ik je overtuigd van het principe om alleen de beginstand door te zetten. 👍
 
Goedemorgen OctaFish,

Kun je iets met mijn info en DB'tje>?
 
Zoals @OctaFish al schreef is het niet handig de eindstand te baseren op standaardafstand. Het kan, maar dan moet je achteraf corrigeren als blijkt dat er omgereden is.

Bovendien is het mijns inziens niet nodig om begin- én eindstand vast te leggen. De beginstand van een rit is immers de eindstand van de vorige rit. Je legt informatie dan dubbel vast, met de kans op fouten (inconsistente gegevens). Ik ga er daarbij vanuit dat je elke rit registreert.
Je kunt volstaan met het vastleggen van de eindstand per rit. De gereden afstand is af te leiden uit het vergelijken met de vorige rit.
 
De eindstand is niet altijd de beginstand van de vorige rit. Uit ervaring weet ik dat de volgende ritten meestal niet meegenomen worden: naar de car-wash, naar een andere standplaats op het firmaterrein (dat kan bij firma's als grote opslag- of havenbedrijven al gauw een paar kilometer zijn, ...)
Wel zijn er meestal 2 eindstanden: degene die automatisch berekend werd uit beginstand + aantal km van de gekozen route en de werkelijke eindstand. Het verschil tussen die 2 geeft relevante informatie en wordt onder andere gebruikt om het aantal km van elke route maandelijks te corrigeren waar nodig.
De berekende eindstand wordt meestal als een persistent berekend veld in de tabel opgeslagen of in een view ter beschikking gesteld.
 
Ja, daar bwn ik hewt mee eens. Ik heb nog wel moeite om het goed werkend te krijgen. Ik ben nog niet zover dat ik de laatste km stand krijg bij een nieuw record
 
Dank je wel voor je info.

Het hoeft niet zo nauwkeurig. Aantal km van ooraf gedefinieerde routes is voldoend
Het ging mij meer om de techniek
Hoe krijg ik de nw beginstand bij een nieuw record? Zeeg maar Route 1 50 km + de oude beginstand.
Als ik dan een nieuwe route invoer wil ik de nieuwe beginstand hebbben. Enzovoort
 
Aangezien de kilometerstand bij een wagen hoort, mis ik een tabel met wagens (ID, nummerplaat, datum laatste onderhoud, ...). Of is dat de tabel met chauffeurs?
een mogelijkheid voor de laatste km per wagen/chauffeur stand te vinden: via een query met de volgende structuur:

Code:
select top(1) [Eindstand km]
from [tblRittenstaatgegevens]
where [ChauffeurId] = chauffeurID of WagenID
order by [DatumRit] DESC

Je kan dit via een VBA functie laten berekenen en de waarde invullen via een AfterUpdate event van de Chauffeur/wagen
 
De techniek is niet zo spannend; kwestie van na het kiezen van de route de laatste (hoogste) eindstand ophalen en die in de beginstand zetten. Bij die beginstand tel je de ritafstand op. Het gevaar blijft wel loeren dat de feitelijke eindstand van een rit afwijkt van de automatisch ingevulde waarde en je vergeet die te corrigeren. Die fout blijft dan doorwerken.

Ik heb even een voorbeeldje gemaakt met een los rittenformulier om te demonstreren hoe het zou kunnen werken.
 

Bijlagen

Ik zal morgen een voorbeeldje maken m.b.v. de eigenschap DefaultValue. Waarbij ik mij daarnaast aansluit bij de opmerking van noella dat de beginstand van een rit niet gelijk hoeft te zijn aan de eindstand van de vorige rit. Ze geeft daar prima voorbeelden van :).
 
Terug
Bovenaan Onderaan