Veldwaarde verversen?

Status
Niet open voor verdere reacties.

marcel53

Gebruiker
Lid geworden
22 feb 2013
Berichten
29
Ik heb een tabel met voertuigen en een gekoppelde tabel met de laatst geregistreerde km standen. Wekelijks wordt de gekoppelde tabel aangepast
Hoe kan ik nu de laatste km stand in een veld krijgen, dat in de hoofdtabel staat? Ik kom daar niet uit met de handleiding. Kijk al naar DLookup en zo. Een subformulier is geen oplossing voor 1 veld vind ik, dus vandaar de vraag.
Ben dus nog een redelijke beginner met Access.
Wie helpt me op weg?
 
Ik snap je systeem niet helemaal; wat is de zin van een aparte tabel voor de laatst geregistreerde km standen? Dan kun je net zo goed die km stand in de voertuigen tabel invoeren. Een historietabel (met oplopende km standen en datums dus) lijkt mij een stuk zinniger. In die tabel zal je vast ook het VoertuigID opslaan, en als het goed is heb je die twee tabellen aan elkaar gekoppeld in het <Relaties> venster met een één-op-veel relatie. Er is in die situatie geen enkele noodzaak om de laatste km stand ook nog eens in de tabel Voertuigen op te slaan. Simpel een kwestie van een (totalen) query maken, groeperen op VoertuigID en bij het veld [km stand] de functie MAX of LAATSTE gebruiken. Dan heb je per voertuig altijd de meest recente km stand.
Om de km stand ook nog eens in de tabel Voertuigen te zetten, is niet alleen dubbel werk, het werkt ook fouten in de hand. Niet doen dus!
 
Michel,

laat ik me iets duidelijker uitdrukken.
Er wordt op 10 locaties in Excel elke week een km stand per kenteken genoteerd. Van al die bestanden wordt 1 verzamelfile gemaakt met de maximale kmstand per kenteken.
Die file heb ik gekoppeld aan de Access tabel. Daaruit wil ik dan de km stand laten.

kan dat en zo ja hoe dan??

ben benieuwd.
 
Dat hangt er vanaf of je er behoefte aan hebt om ook een historie van de km standen bij te houden. In dat geval zou ik dus een extra tabel gebruiken waarin je de wekelijkse standen toevoegt. En vervolgens met een query zoals beschreven verder werken. In het andere geval (alleen de gekoppelde tabel) blijft de uitkomst hetzelfde; gewoon een query maken die je koppelt aan de voertuigen tabel. Omdat je verder toch geen historie bewaart, heeft het ook niet zoveel om een 'tussenstand' in een tabel te zetten, vooral niet omdat je die waarde toch al wel hebt.
 
Michel,

het is nog niet helemaal wat ik bedoel.
In een veld KMstand in de hoofdtabel wil ik de inhoud laten zien van de gekoppelde tabel. Waar in de veldeigenschappen moet ik dit aangeven, want dat lukt me dus (nog) niet. Ik wil dus geen subformulier gebruiken, maar het veld rechstreeks op het scherm neerzetten in het hoofdformulier.
Het veld staat er al, maar er is geen inhoud dus.
 
In een veld KMstand in de hoofdtabel wil ik de inhoud laten zien van de gekoppelde tabel.
Waarom? Je hebt de gegevens al (in de gekoppelde tabel), dus opslaan is nogal zinloos. Maak voor je formulier een query, als je alleen de tabel gebruikt, en hang daar de gelinkte tabel bij. Die is (als het goed is) gekoppeld aan VoertuigID, en fungeert derhalve als een normaal tabelveld. Sla geen dubbele (of onzinnige) gegevens op die je verder niet nodig hebt. Zolang je geen historie van de km standen bijhoudt, en de recente km stand al hebt, heeft het geen enkele zin om dat dubbel op te slaan.
Mocht je dat toch willen doen: bijwerkquery.
 
Dat heb ik ook geprobeerd, maar ik krijg dat veld uit die query niet in het formulier van de basisgegevens.
 
Je zal wellicht de db niet kunnen posten, maar begin eens met de query die achter het formulier hangt.
 
Hoe ik een query moet posten is mij niet duidelijk, maar misschien kan ik je morgen bellen voor wat uitleg?
 
Je formulier heeft een Recordbron. Dat is ofwel een query in de vorm van een SQL statement (Begint dan met: "SELECT etc") of je hebt een vaste query gemaakt, en dan staat daar de naam van de query. In het eerste geval kun je de hele regel kopieëren en in een berichtje plakken, in het laatste geval moet je de query openen, en de SQL weergave openen. Dan zie je ook weer de SELECT statement staan. En die wil ik dus graag zien.
 
Ik heb een query gemaakt van twee tabellen. Basistabel met als veld kenteken en de gekoppelde tabel KMstanden als veld kenteken en kmstand. Als inhoud voor het veld KM stand op het formulier staat als Besturingselementbron: =[Q KM standen 13]![Kmstand FD]. In het veld staat nu #Naam! dus een ongeldige waarde.
Wat doe ik dus fout?
Je opmerking over de SQL snap ik niet dus maar dit antwoord. Hopelijk heb je hier genoeg aan.
 
Wat je fout doet? Je verwijst in de Besturingselementbron naar een complete query. En dat kan je uiteraard nooit in één veld proppen. OVerigens wel vreemd dat je de Besturingselementbron van het tekstveld wèl kan vinden, maar de Recordbron van het formulier niet. Die staat namelijk op dezelfde plek op hetzelfde tabblad van de Eigenschappen...
 
Ik stuur het eigenschappenscherm mee bij dit veld.
Ik zie geen Recordbron staan.
Schermafbeelding 2013-03-27 om 09.33.21.png
Zit ik ergens verkeerd?
 
Elk object in een formulier heeft zijn eigen eigenschappen. Je kijkt nu naar de eigenschappen van een tekstvak. Je moet echter naar de eigenschappen van het formulier. Als je een formulier opent in Ontwerpweergave, niks selecteert en gelijk naar <Eigenschappen> gaat, zie je de formuliereigenschappen.
 
Het formulier heeft als recordbron de basistabel. Het veld KMstand zou eigenijk als recordbron de kmstand uit de gekoppelde tabel moeten laten zien. Kan dat dan wel op dit formulier??
 
(Bijna) Alles kan op een formulier... Kwestie van op de knop met de 3 puntjes klikken achter de eigenschap Recordbron, en een query maken van je huidige tabel en de gekoppelde tabel. Is je probleem in één keer opgelost!
 
Moet ik dan alle velden opnieuw toewijzen aan die nieuwe query? Als ik je raad op volg zie ik allemaal groene hoekjes verschijnen op het formulier.
 
Dan doe je iets verkeerd :)
Alle velden die je in eerste instantie had op je formulier moet je nu natuurlijk ook in de query opnemen. Anders kan Access de velden niet koppelen aan de tekstobjecten. En dus een extra tekstveld maken, voor je km. stand. Maar die kun je uit de Lijst met velden plukken.
 
Michel,

dit is het!! Ik had al bijna de hoop opgegeven, maar nu ben ik eindelijk daar waar ik wilde zijn.
Super dank voor je (geduldige) uitleg.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan