veld controleren in alle records

Status
Niet open voor verdere reacties.

benbiesterveld280

Gebruiker
Lid geworden
3 apr 2018
Berichten
11
Hallo allemaal,

Ik heb een vraag.

ik ben bezig met een database voor mijn partner voor tupperware.
Daar heeft zij te maken met bestellingen en retouren en/of ruilen van producten.
deze producten moet zij afleveren bij de distributiecentrum en na een korte tijd krijgt zij deze terug.

Nu ben ik bezig met een database waarin zeg maar de datum wordt neergezet wanneer een klant iets af komt geven voor retour/of ruilen.

de bedoeling van de macro is dat de macro alle records afgaat en dan kijkt of er bijvoorbeeld twee weken zijn verstreken.
Dan: Als er nog geen twee weken zijn verstreken doorgaan naar het volgende record, en als er bij een veld een "ja" staat door gaan naar de volgende record.
Als er twee weken zijn verstreken dan de optie om automatisch een email te sturen en zodra dit afgehandeld is moet er in een veld een ja komen te staan dat er een email is verstuurd. en dan vervolgens weer doorgaan naar de volgende record.

Ik heb van alles geprobeerd maar ik kom er niet uit.

Kunnen een van jullie helpen hiermee.

Alvast bedankt voor jullie tijd.

Groetjes

Ben
 
Je beschrijft het proces niet heel erg handig, want het is allemaal veel simpeler dan je het voorstelt. Om te beginnen: met een query kun je precies zien welke records aan de voorwaarden voldoen. Daar heb je dus geen 'macro' (ik denk niet eens dat er een macro is die dit zou kunnen, maar dat is een ander verhaal) voor nodig. Maar je vraagstelling is ook niet helemaal duidelijk.
de bedoeling van de macro is dat de macro alle records afgaat en dan kijkt of er bijvoorbeeld twee weken zijn verstreken.
Twee weken t.o.v. wat? Besteldatum? Leveratum? Retourdatum?
Als er twee weken zijn verstreken dan de optie om automatisch een email te sturen
Ook niet duidelijk; als er twee weken verstreken, zijn, moet er een mail verstuurd worden. Punt. Dat is tenslotte vastgelegd in het systeem. Je gaat niet zelf bepalen lijkt mij of de ene bestelling wél in aanmerking komt voor een mail, en de andere niet.

Kortom: je hebt twee criteria: 1) de datum is verstreken (2 weken) en 2) er is nog geen mail verstuurd. (zou ik trouwens niet doen met een Ja/Nee veld, maar met een datumveld maar goed).

Die query kun je dus maken, en aan een formulier koppelen. Dat formulier kun je standaard laten openen als je de db start. Je ziet dan gelijk welke personen een mail zouden moeten krijgen. Die personen kun je dan een mail sturen vanuit dat formulier met een knop. Dat is dan een VBA procedure, die met SendMail of een Outlook object de mail verstuurt, wat je handig vindt. Je kunt een rapport maken die je als basis voor de mail gebruikt, met daarin de bestelgegevens bijvoorbeeld, en die naar de personen sturen.
 
Hoi, als je een knop gebruikt binnen in access moet je natuurlijk de database elke dag openen om de procedure te laten lopen. Indien je niet wil dat in het geval uw partner op vakantie is, er geen periode verstrijkt dat het proces niet loopt en de klanten hun mail 3 weken te laat krijgen, kan je hier vinden hoe je het proces automatisch kan laten lopen:
https://stackoverflow.com/questions/41731140/how-to-automate-ms-access-application

Het blijft natuurlijk zo dat de computer moet opstaan om het proces te laten lopen.
Vriendelijke groeten
Noëlla
 
Het blijft natuurlijk zo dat de computer moet opstaan om het proces te laten lopen.
Niet nodig; met een Scheduled Task en een db met automatisch startende procedures kun je het hele proces volledig automatiseren. Alsof je zelf aan de knoppen zit :).
 
Iets te snel gelezen, las het als: db moet open staan :). Bij een scheduled task moet de computer natuurlijk wel aan blijven staan, anders doet-ie (doorgaans) niks. Dus de extra uitleg voor dummies: de db wordt dus elke dag opnieuw gestart, en derhalve worden alle procedures ook elke dag opnieuw uitgevoerd. Bij een openstaande db gebeurt dat niet, tenzij je allerlei timers inbouwt die de db aanzienlijk vertagen. Zo beter?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan