excel-achtige formule in acces

Status
Niet open voor verdere reacties.

Chris Cools

Gebruiker
Lid geworden
19 okt 2008
Berichten
152
Hallo,

is het mogelijk om de hieronderstaande formule te gebruiken in acces?
ik zou dus de waarde van de uitkomst moeten kunnen laten afhangen, afhankelijk van het feit of de waarde in een record gelijk is of verschillend van een vorige record in dezelfde kolom.
Ook zou ik de waarde in de kolom van de formule moeten kunnen vermeerderen of verminderen met een waarde van een vorige record uit een andere kolom.

Code:
=ALS( EN(C30667<> C30668; E30668="_S"); D30668; ALS(EN(C30667=C30668;E30668="_S");L30667+D30668; ALS( EN(C30667=C30668;E30668="A"); L30667+D30668; ALS(EN(C30667=C30668;E30668="_V"); L30667-D30668;  0))))

ik kan niet programmeren in acces, dus ik hoop dat dit ook mogelijk is door query's te bouwen?

alvast bedankt voor jullie hulp!!!

mvg,

Chris
 
Laatst bewerkt door een moderator:
Je kunt dit oplossen in een query door het voorlaatste record op te zoeken met de DLookup functie. Je moet namelijk waarden ophalen uit een voorgaand record, en dat kan in beginsel niet in Access. En dat wordt een ingewikkelde query... Je kunt ook nog een subquery overwegen om een waarde van een vorig record op te zoeken, maar dat is niet echt simpeler qua opzet.
Beter is dus een functie te maken die dat voor je regelt. Niet alleen werkt dat sneller, omdat je geen DLookup hoeft te gebruiken, je kunt de code ook veel overzichtelijker opzetten. Maar zoals gezegd, het kan wel in een query.
 
Bedankt voor je antwoord!
hoe pak ik dat praktisch aan, als ik in een query via de Dlookup de voorgaande record moet zoeken? hoe geef ik aan dat het specifiek de voorgaande moet zijn?

thanx!
 
eigenlijk komt het er op neer dat ik in acces zou willen bereiken wat ik nu in de bijgevoegde excel moet doen.
Alles behalve de laatste kolom komt uit acces, maar omdat ik voor het ATP moet kunnen kijken naar vorige records moet ik dit eerst exporteren in excel.
Dan voeg ik de kolom ATP dus toe en daarna moet ik nog een paar manipulaties uitvoeren. liever had ik dus alles in acces gehad zodat de manipulaties ook mee geautomatiseerd kunnen worden.
is het mogelijk om een voorbeeldje te posten van hoe ik dit via een query zou kunnen oplossen en een voorbeeldje van hoe ik dat zou kunnen doen door een functie te maken?

alvast bedankt!Bekijk bijlage Kopie van Kopie van ATP.xlsx
 
Zal eens kijken of ik het in een Access db kan maken...
 
Dat verbaast me helemaal niks.... Waar ik mij bijvoorbeeld over verbaas is het ogenschijnlijk ontbreken van een sleutelverwijzing. Je verwijst in je formules consequent naar de boveliggende rij, maar in een db heb je daar niks aan. Je wilt bijvoorbeeld naar een artikelnummer o.i.d. kunnen verwijzen. Je gaat bijvoorbeeld in rij 16 over van artikel 0347 naar 0348. Artikel 0347 komt daarna niet meer voor in je tabel. In een database is dat een zeer onrealistische situatie; in een relationele database sla je de gegevens doorgaans in een willekeurige volgorde op. Jouw systeem werkt volgens mij alleen maar doordat er een dwingende volgorde is in de rijen. Verander je die, dan klopt er niks meer van je gegevens.
Hoe denk je dat in een database op te vangen?
 
dat klopt idd. de hele oefening heeft als doel de beschikbare voorraad te kunnen bepalen op datums in de toekomst.
ATP= available to promise, om dit te kunnen bepalen moet alles in een gesorteerde volgorde van datum staan.
Dus: vertrekken met de stock van vandaag en daar opeenvolgend alle verkopen en aankopen onder zetten om zo het verloop in de beschikbare stock te kunnen krijgen.
Hiervoor heb ik idd alles gesorteerd, eerst op artikel en daarna op datum.
Deze volgorde kan ik altijd wel aanhouden in de acces-file, omdat deze gegevens een verzameling zijn van verschillende query's op een oracle database.
In de laatste query die deze gegevens bundelt wordt deze sortering dan steeds toegepast.

grtz
 
En daar heb je gelijk een probleem, omdat je de sortering van de recordset in Excel fysiek kunt veranderen, maar in Access niet. Daar wordt een dataset bepaald door de volgorder waarin je de records toevoegt. Je zou op basis van het ArtikelID en de datum misschien wel met een Recordset moeten kunnen werken, maar je zou denk ik beter in je artikelentabel een veld Huidige Voorraad (of ATP zoals jij hem noemt) kunnen maken waarin je de berekeningen verwerkt van de dagmutaties. Lijkt mij een stuk veiliger, en makkelijker.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan