Iif Formule met "Opzoeken truepart"

Status
Niet open voor verdere reacties.

Toasty

Gebruiker
Lid geworden
30 mei 2014
Berichten
50
Hallo,

ik heb een database waarin ik maandelijks resultaten opsla middels append. Een van de kolommen dient een resultaat te geven dat hierop lijkt:
(Als kolom A=0 Dan "pak de nieuwste B (waarin in het record een andere kolom zit met datums)" Anders A) B komt uit een vaste tabel. De query waarin de formule staat vult deze kolom in de vaste tabel.

Ik zou dus graag in het truepart van de Iif formule een soort van DLookup gebruiken. Helaas lukt me dat tot op heden niet. ik kan me niet voorstellen dat dit erg moeilijk moet zijn.

Op dit moment dupliceert deze formule mijn resultaat omdat er meerdere verschillende B resultaten zijn.
 
De 'nieuwste B'? Is dat de laatste datum? En is dat dan ook de meest recente datum? In dat geval zou ik geen DLookup gebruiken, maar DMax.
 
De B zelf is een waarde. Maar in diezelfde record zit een datum waarin ik inderdaad de meest recente wil hebben. Kun je me een voorbeeld geven hoe dit toe te passen? In Gewone taal zou dit dus moeten worden Vlookup(Nieuwste datum, Alle datums, Waarde die erbij hoort)
 
Je wilt de laatste dus ik zou DLast gebruiken. Met een criterium op B. Mooier is als je tabel een autonummerveld heeft, want DLast is niet erg betrouwbaar. Bij voorkeur dus DMax gebruiken op het id veld.
 
Ik snap exact wat je bedoeld. Ook met het minder betrouwbare. Access kan toch niet herkennen welk record het laatste toegevoegd is middels een numerieke waarde? Ik zou dus willen relateren naar een andere kolom om de nieuwste B te kunnen pakken. Dat lukt me tot op heden nog niet.
 
Access kan toch niet herkennen welk record het laatste toegevoegd is middels een numerieke waarde?
Waarom niet? Een autonummerveld nummert altijd oplopend op, ook al haal je nummers weg, die worden nooit meer ingevuld. Het hoogste nummer is dus per definitie het laatste record. En Access herkent wel degelijk het laatste record, want het houdt intern de Recordcounter bij. Die zie je dan wel niet, maar wordt dus wel gebruikt. Alleen is dat dus veel minder betrouwbaar.
Maar ik zou zeggen: maak eens een voorbeeldje, want ik snap nog steeds niet wat je nu aan het bakken bent...
 
Het is lastig om het even te uploaden dus ik zal proberen het duidelijk uit te leggen. Het gaat over een prijsverschildatabase. Maandelijks maak ik het vergelijk met maandnu-1 ten opzichte van maandnu-2. Daar komt een prijsverschil uit, als er een prijsverandering plaats heeft gevonden.

Mocht er geen prijsverschil zijn, dan heb ik een "PriceDif_Log"-Kolom gemaakt. Daarin dient iedere maand het laatste prijsverschil in opgenomen te worden. Hieruit dient dus, indien er geen prijsverschil uit de append-query komt, de vorige gelogde prijs gehaald te worden.

Opzich niet moeilijk lijkt me zo. Maar op dit moment heb ik een if formule gemaakt waarin staat "Iif(PriceDif=0,qdbo_TotalFile!Pricelog(en dan dus de laatste),Pricedif)" Deze kolom wordt daarna dus de laatste PriceDif_Log, die dan weer gebruikt kan worden in de nieuwe maand.

Wordt het zo ietsje duidelijker?
 
Ik snap niet waarom je elke maand een waard wilt wegzetten; mij lijkt het vastleggen van de mutaties meer dan genoeg. Dus als je in een jaar 3 keer een nieuwe prijs hebt, maak je daar 3 records voor, geen 12.
 
Dat is helaas geen optie. Want maandelijks kunnen de sales ook wijzigen. En dan dien ik de potentiele besparing ook weer te geven. DLast geeft me overigens een leeg veld. Ik begrijp dat het een beetje tasten in het duister is op dit moment, omdat ik geen voorbeeld heb.
 
Je moet elke mutatie uiteraard vastleggen, maar dat spreek ik ook niet tegen. Op basis van de mutatiedatums kun je vervolgens elke prijs opzoeken. Ook al verandert-ie 6 keer per maand...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan