Laatste datum automatich in een kolom neerzetten

Status
Niet open voor verdere reacties.

mbakker71

Gebruiker
Lid geworden
25 mei 2012
Berichten
163
Hallo

ik heb een Ding waarin staat dat hij de laatste datum zoekt (=Max([Rob B/ F D Greef/M Provoost Out] Or [Rick Out] Or [Plant Manager out] Or [Marco Out] Or [Lioyd Out] Or [Jean Out] Or [Han VDH/P Therg/E Verw Out] Or [Erwin Out] & [Dirk Out] Or [David Out] Or [C Rigo Out] Or [B Baum/R Muller Out]) ) maar als ik dat doe dan geeft hij een heel andere datum aan en hij zoekt de hele tabel af maar hij moet de form afzoeken

bey martijn
 
Laatst bewerkt:
Is deze vraag weer een variant op deze? Dan is het antwoord weer hetzelfde: breng de datums (en de bij die datum horende gegevens) over naar een aparte tabel die je koppelt aan de hoofdtabel. Vervolgens kun je met MAX heel eenvoudig (echt, heeeeeel eenvoudig) de laatste waarde opzoeken.
Dan ben je echt een stuk sneller klaar dan het gepruts wat je nu aan het doen bent....
 
Nee het is een andere. En het zijn 400 records en meer mensen gaan het gebruiken die nog nooit met access gewerkt hebben. en ze maken ook nog andere records aan
 
Ik heb ondertussen geen flauw idee meer wat je aan het maken bent, maar het klinkt allemaal als een volslagen niet-genormaliseerde database. En die is niet alleen nauwelijks te onderhouden, simpele vragen (da's namelijk een query) zijn ook bijkans onmogelijk te maken. Je doet jezelf (en ons) een enorm plezier als je ofwel je database fatsoenlijk normaliseert, ofwel een voorbeeldje post met wat er allemaal in zit, want hier is bijzonder weinig chocola van te maken. En dat geld, zoals je gemerkt hebt, ook voor je andere vragen.
 
De vandaag datum weet ik al dat is nu ee getal maar doe ik nu even een datum
 
Ik zou terug gaan naar het tekenbord op basis van dit plaatje, en de tabellenstructuur opnieuw maken. Dit formulier (en vermoedelijk ook de onderliggende tabel) deugt niet.
 
Bestandje

helaas kan ik het hele bestand niet naar je sturen want het is tegroot
 
Ik zie dat je de tabel letterlijk hebt geïmporteerd, en er een formulier overheen hebt gejast. Helemaal fout dus! Een tabel in Excel is totaal niet te vergelijken met een database in Access. Het is niet voor niks dat mensen na verloop van tijd zo'n tabel overzetten naar een Zelfs als je de tabel bekijkt, dan zie je al gelijk allerlei problemen die je moet oplossen in Access, voordat je maar mag dromen over formulieren.
Laten we eens een paar simpele zaken onder de loep nemen.
In een goede database maak je tabellen waarin geen dubbele gegevens(groepen) voorkomen. In jouw geval zijn die in ruime mate aanwezig; ik noem er een paar:
Plant Manager in Plant Manager out B Baum/R Muller in B Baum/R Muller Out Marco in Marco Out Rob B/ F D Greef/M Provoost in Rob B/ F D Greef/M Provoost Out Han VDH/P Therg/E Verw In Han VDH/P Therg/E Verw Out C Rigo In C Rigo Out Erwin In Erwin Out
Hierin sla je de datums op, waar het in al jouw vragen (deze vraag slaat wel degelijk op je eerdere vraag) om draait. Deze velden zijn herhalend, en dien je dus in een aparte tabel op te slaan. In die tabel heb je maar 4 velden nodig: een koppelveld naar je hoofdtabel, een veld MedewerkerID, een veld [DateIn] en een veld [DateOut]. Vervolgens vul je die tabel elke keer dat er een datum moet worden ingevuld vanuit je hoofdformulier. Op basis van die nieuwe tabel is het ook heel makkelijk om de laatste datum te vinden met MAX.
Volgende probleem: velden als [Factory], [Category] en [Department]. Dit zijn velden met herhalende waarden. En in jouw tabel kun je net zo makkelijk <Manufacturing> als <Manufakturing> invullen. Dat mag natuurlijk niet; voor dat soort gegevens maak je opzoektabellen die je koppelt op FactoryID, [CategoryID] en [DepartmentID]. Verandert de naam van de fabriek, dan verandert er niks in je database. En zo hoort het ook!

Wat is eigenlijk de grootste makke van jouw systeem? Nog niet eens de huidige structuur, al deugt die dus van geen kanten. Maar de manier waarop je die velden ook nog eens op je formulier gebruikt. In jouw systeem ga je er vanuit dat
a) Rigo, Erwin, Jean, Lioyd, Rick, David, en Dirk etc. het eeuwige leven hebben,
b) nooit bij het bedrijf zullen vertrekken
c) nooit een andere functie krijgen binnen het bedrijf

Want wat doe je als Rigo volgende maand onder een trein loopt, Jean op vakantie in Jamaica aan die leuke vent blijft hangen en coctails gaat verkopen op het strand, en Dirk directeur wordt en dus een hele andere functie krijgt binnen het proces? Dan ben je in de aap gelogeerd, want dan klopt er niks meer van je formulier. De simpele oplossing van de namen in de tabel en het formulier veranderen mag natuurlijk nooit, want dan heeft de vervanger nog voordat hij ook maar één vinger in het bedrijf heeft uitgestoken, al 20 jaar aan transacties getekend! Dus zit er niks anders op dan nieuwe velden aanmaken, en al je formulieren weer aanpassen.

Kortom: dit is de slechts mogelijke manier van een database maken. En dat is nu precies wat we je al een tijdje duidelijk proberen te maken..... En al die tijd had ik heerlijk in de zon kunnen zitten met een koel biertje onder handbereik :)
 
Het gaat over een factuur die langs deze mensen gaat en het mag max 30 dagen duren en ze moeten invoeren wanneer ze het kregen en wanneer ze het weggeven naar iemand anders.
 
Dat staat ook al een aantal keer in je andere berichten, dus daar twijfelt niemand aan :)
Neemt niet weg dat je totaal verkeerd bezig bent...
 
Kan je even een voor een zeggen wat ik moet doen?

dank je wel voor je tijd
 
Dat heb ik eigenlijk gisteren al gezegd in mijn bericht van 19:30, dus ik ga dat niet helemaal herhalen. Waar het op neer komt is het volgende: je hebt dus een extra tabel nodig voor de datums en personen die je wilt opslaan. Ik heb een voorbeeldje gemaakt met de tabel die je erbij moet maken, en die heb ik al gedeeltelijk gevuld. De velden die in de DATA tabel zijn toegevoegd, heb ik verwijderd in de tabel TRACKER.
Verder zit er een Toevoegquery bij waarmee je nieuwe velden kunt toevoegen. Als je die query (Query1) bekijkt, dan zie je dat die al klaar staat om de volgende persoon (Erwin) toe te voegen. Als je de query uitvoert, gebeurt dat ook. Je moet dat maar één keer doen, anders krijg je die records er twee of meer keer in, en dat is natuurlijk niet de bedoeling. Dus niet meer dan één keer op de knop <Uitvoeren> klikken!
Als je een groep hebt toegevoegd, kun je de volgende persoon met datums ([Jean In] en [Jean Out] gaan toevoegen. Daartoe hoef je in de lijst met Velden alleen maar de juiste velden (hierboven beschreven) te selecteren uit de lijst met velden, en de naam in het eerste veld aan te passen. Vervolgens voer je de query uit, en vervang je de volgende serie velden. Zo werk je de hele brontabel af. Als alles klaar is, kunnen de velden uit TRACKER worden verwijderd.
Kijk maar eens of je er uit komt....
 

Bijlagen

Laatst bewerkt:
Weet jij een manier hoe ik die database naar je kan sturen. dan weet je hoe het een beetje in elkaar zit
 
Je mag 'm wel mailen.
 
Laatst bewerkt:
Jouw laatste db is nog een stuk onbruikbaarder als het eerdere voorbeeld, want hier zitten ook nog eens verkeerde (overbodige) rijen en kolommen in. Dus daar ga ik verder niks aan doen. Ik heb vanmiddag nog wat zitten stoeien met jouw vorige bestand, in daar wat aanpassingen in gemaakt. Ik zou zeggen: kijk daar eens goed naar, en probeer het in die richting na te maken!
 
Dank je wel voor je ding. Echt waar dank je wel. Maar nu begrijp ik het een beeltje niet meer bij die Andere voerde je gewoon de datums in hoe doen jr dat nu dan? En ik wil het graag zo makelijk mogelijk houden waNT ik zelf ga het niet gebruiken maar andere mensen. En ik wil nu eem korte handleiding maken maar dar gaat een beetje moeilijk als je het zelf niet meer snapt

PS heb nog nooit met Access gewerkt dus daarom die vreemd heid
 
Om even aan te geven hoe slecht je eigen tabel was/is, hier een klein stukje van het veld Department.
Department
Boiler
Boiler room
Boilerroom
Building
cancelled
climate controle
Cold Store
Coldstore
Deze waarden komen uit een query waarbij ik groepeer op één veld ([Department]) zodat je alle waarden maar één keer terug ziet. Zoals je ziet, heb je al 3 manieren om Boiler te omschrijven, en 2 voor Cold store, en dit is nog maar een klein stukje! En dat is dus precies wat er mankeert aan jouw tabel. Dit is in Excel ingevoerd, en daarin is absoluut geen controle op eerder ingevoerde waarden. Daarom moet je zoiets inderdaad in Access maken. Dat ze bij zo'n groot bedrijf een database laten maken door iemand die dat nooit eerder heeft gedaan, vind ik zelf absoluut schandalig. Dat is het verkwanselen van je bedrijfsprocessen, en getuigt van een ongehoord amateurisme. Dat jij de database niet kan bouwen, is jou uiteraard niet aan te rekenen; je geeft zelf al aan dat je nog nooit met Access hebt gewerkt.

Als ik jou was, zou ik de opdracht teruggeven en aangeven dat ze hier een professional voor moeten inzetten. Het bedrijf denkt ongetwijfeld goedkoop uit te zijn door a) jou er op te zetten (ongetwijfeld als onderdeel van je 'leerproces') en b) door de noodzakelijke expertise van een gratis forum af te (laten) halen. Zoals ik al zei: jij zou je daar niet voor moeten laten misbruiken, en wij die geheel belangeloos ons inzetten voor HelpMij, ook niet.
 
Ik zelf ben de opdracht begonnen en in ga zaterdag alles delete en overnieuw beginnen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan