Datum laatste wijziging opslaan na drukken op importknop

Status
Niet open voor verdere reacties.

jobwol

Gebruiker
Lid geworden
11 aug 2009
Berichten
24
Ik heb een database waarin ik bankmutaties inlees. Deze mutaties (uit een CVS bestand) worden vervolgens geïmporteerd op een formulier (genaamd invoer). Ik heb in dit formulier een niet-afhankelijk veld opgenomen. In dit veld wil ik steeds de datum vastleggen waarop ik de nieuwe bankgegevens import. Ik heb dus het volgende geknutseld:
- In Form een niet-afhankelijk veld gemaakt (genaamd Dt_Import)
- In de knop "Inlezen mutaties" heb ik aan de gebeurtenisprocedure bij klikken toegevoegd:
Code:
Me.Dt_Import = Date

Nadat ik op de knop "Inlezen mutaties" heb geklikt wordt netjes de datum van vandaag ingevuld in het veld Dt_Import. Als ik het formulier afsluit, wordt deze datum echter niet onthouden. Kan iemand me vertellen waar het verkeerd gaat? De datum moet namelijk blijven staan en alleen wijzigen als ik op de knop "Inlezen mutaties" klik.

Ter informatie: ik werk met acces 2003
 
Laatst bewerkt:
Je geeft zelf al eigenlijk het antwoord :) Je hebt namelijk een niet-gebonden tekstvak gemaakt op je formulier! En de essentie daarvan is dus dat je er van alles in kunt laten zien, maar dat dat dan alleen te zien is zolang het formulier is geopend. Je kunt het dus net zo goed weglaten, want zolang je geen tabelveld koppelt aan het veld, zul je het nooit kunnen terugvragen. Hooguit kun je de 'levensduur' enigszins verlengen door een Public variabele te gebruiken waar je die datum dan in zet. In dat geval blijft de datum beschikbaar zolang de database open blijft. Maar ook daarvoor geldt: sluit je de database, dan is de waarde verdwenen.
Overigens gebruik je verkeerde begrippen:
Deze mutaties (uit een CVS bestand) worden vervolgens geïmporteerd op een formulier (genaamd invoer).
Gegevens importeer je altijd in een tabel; nooit in een formulier. Je legt een formulier a.h.w. bovenop een tabel om de gegevens er mooier uit te laten zien, dat is alles. En je kunt dus hele vluchtige gegevens maken ;)
 
Dank je wel voor de uitleg en de correctie van mijn tabel/formulier verwisseling. Ik snap dat ik de gegevens in een tabel moet gaan wegschrijven, maar... ik wil niet per mutatie de invoerdatum zien. Ik wil een veld in de database maken waar in wordt bijgehouden wanneer de gegevens voor het laatst zijn ingevoerd. Moet ik daar dan een nieuwe tabel voor maken en hoe kan ik die tabel dan steeds laten vullen met de nieuwe wijzigingsdatum?
 
Ik zou daar inderdaad een aparte tabel voor maken, waarin je dan in ieder geval een datumveld maakt voor de laatste import, en misschien nog een veld met het csv bestand dat je importeert, als dat tenminste verandert met elke import. Eigenlijk alles wat je wilt bewaren als historie. Zelf zou ik overigens gewoon voor elke import een record maken, zodat je een historie opbouwt van de import handelingen. Met een query haal je dan eenvoudig het laatste record op, als je wilt weten wanneer de laatste import heeft plaatsgevonden. Dat doe je dan door een Toevoegquery te maken. Heb je aan één record genoeg, dan heb je aan een Bijwerkquery op dezelfde tabel genoeg. Daarmee overschrijf je dan steeds dat ene record dat je hebt. Maar databasetechnisch gezien zit er bijzonder weinig winst in het bijhouden van één record, terwijl er veel meer inzicht te scoren is als je een historie opbouwt, door dus records aan de tabel toe te voegen. Als er winst te behalen zou zijn door maar één record te maken en dat bij te werken, zou ik dat misschien nog overwegen, maar daar is hier helemaal geen sprake van. Ik zou dus kiezen voor het bewaren van de historie. Je kunt die historie tabel natuurlijk simpel onderhouden door regelmatig records van een bepaalde leeftijd daar weer uit te verwijderen. Maar de essentie is: een historie tabel waarin je dus in minstens één record de import gegevens opslaat.
 
Dank je wel voor je reactie. Ik ga er morgen mee verder knutselen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan