twee functies in een queryveld; bij fout eerste functie moet tweede functie werken

Status
Niet open voor verdere reacties.

mispelhage

Gebruiker
Lid geworden
27 okt 2010
Berichten
53
In een tabelmaakquery wil ik een berekend veld toevoegen welke afhankelijk van de beschikbare gegevens uit verschillende functies bestaat. In excel lost ik dit op door:
=ALS(ISFOUT(1e_formule);2e_formule;1e_formule)). In access is het me tot nu toe niet gelukt om hetzelfde te creeren. Ik heb het geprobeerd met IsError, IsNull en Isempty genest in een IIf-functie. Ik krijg vaak de melding dat er haakjes ontbreken. Als ik daar veel mee experimenteer geeft ie een foutmelding dat de functie niet klopt.


de eerste formule:


a2=a1/som*(schatting+som)/deel


Als bovenstaande formule problemen geeft (delen door nul), dan gaat de volgende formule gelden:

a2=a1/som*(schatting+som)

Nu heb ik het zo in access staan (sorry voor de ingewikkelde formule; bovenstaand staan versimpelde versies van de formules);


Expr1: [ IIf ( IsError ( stap1_omcoderen_naar ECOBASE-waarden]![esaabundantie]/[2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1]*([Invullen schattingen en deel zeef]![schatting]+[2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1])/[Invullen schattingen en deel zeef]![deel zeef]) , stap1_omcoderen_naar ECOBASE-waarden]![esaabundantie]/[2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1]*([Invullen schattingen en deel zeef]![schatting]+[2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1]), stap1_omcoderen_naar ECOBASE-waarden]![esaabundantie]/[2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1]*([Invullen schattingen en deel zeef]![schatting]+[2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1])/[Invullen schattingen en deel zeef]![deel zeef])

heeft iemand tips hoe ik hier verder mee kom?
 
Laatst bewerkt:
Ik krijg de indruk dat je velden uit andere queries ophaalt. Klopt dat beeld?
Bijvoorbeeld het veld [2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1] oogt alsof je een andere query aanroept.
Verder is het begin van de IIF verkeerd, maar dat komt misschien door iets te enthousiast kopieëren/plakken; dat zou dit moeten zijn:
Expr1: IIf(IsError([stap1_omcoderen_naar ECOBASE-waarden]![esaabundantie]/
 
dat klopt, ik haal inderdaad sommatie gegevens op uit een andere query. Dat werkt ook, als ik slechts 1 van mijn functies gebruik, geeft deze het juiste berekende antwoord.

Ik heb dat [ haakje toegevoegd, maar werkt nog steeds niet. Ik krijg een melding dat ik teveel haakjes sluiten heb, met verwijzing naar het haakjesluiten van de Iserror-functie (voor de eerste komma). Als ik dit haakje verwijder, dan is de syntaxis van de expressie ongeldig...
 
Er zaten best nog veel fouten in de syntaxis; probeer deze eens:

Code:
Expr1: IIf (IsError ([stap1_omcoderen_naar ECOBASE-waarden]![esaabundantie]/[2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1]*([Invullen schattingen en deel zeef]![schatting]+[2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1])/[Invullen schattingen en deel zeef]![deel zeef]);([stap1_omcoderen_naar ECOBASE-waarden]![esaabundantie]/[2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1]*([Invullen schattingen en deel zeef]![schatting]+[2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1]));([stap1_omcoderen_naar ECOBASE-waarden]![esaabundantie]/[2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1]*([Invullen schattingen en deel zeef]![schatting]+[2: sommeren ABUNDANTIE per soortgroep per volgnummer query]![SomVanesaabundantie1])/[Invullen schattingen en deel zeef]![deel zeef]))

Overigens mag ik je aanraden om de namen van de queries toch wat leesbaarder te houden, in ieder geval zonder spaties... En als je ze in een query gebruikt, met een Alias werken, zodat de code een stuk korter wordt!
 
bedankt!

:)

ik heb je wijzigingen doorgevoerd en toen werkte het vrij snel. Ik zag dat je de berekeningen tussen haakjes gezet hebt. De functie begon pas echt te werken nadat ik IsError verving door IsNull (blijkbaar leidt delen door nul niet tot foutmeldingen in access). Nu gaat de tweede functie werken als de eerste niets opleverd.

:thumb:

Waar kun je trouwens die alias instellen? Ik heb gezocht, maar kan het niet vinden. Is dat net zo iets als het verwijzen via naam in excel?
 
Als je rechtsklikt op een tabel, kun je het menu Eigenschappen openen. Daar vind je de Alias. Je totale stringlengte (941) zit ook gevaarlijk dicht tegen de maximale lengte (1024) aan. Dus veel meer tekens kun je zo niet kwijt... Dus [stap1_omcoderen_naar ECOBASE-waarden]![esaabundantie] wordt dan bijvoorbeeld: a![esaabundantie], en dat werkt toch een stuk makkelijker.
 
bedankt,

ik heb echter een oude versie van access vrees ik, die optie kent het menuutje niet op die plek. Ik zal de originele tabelnamen proberen te wijzigen zonder de verwijzingen te verliezen.
 
Welke versie gebruik je dan?
 
Die gebruik ik ook, en daarmee kun je dus perfect de eigenschappen van de tabel aanpassen ;) Ik vermoed dat je niet op de juiste plek hebt geklikt. Je kunt ook rechtsklikken op een tabel, en dan <Eigenschappen> selecteren.
 
nee, nog steeds niets.

Als ik op die plek in eigenschappen kijk, zie ik alleen het volgende:

tabbladje algemeen, waarin je een beschrijving van de tabel kunt tikken en twee hokjes (verborgen en rijniveau behouden) die kunnen worden aangevinkt.

de bestandsindeling stond nog op Access 2000, die heb ik nu op access 2002-2003 gezet. Wie weet helpt het.
 
Je zou dit moeten zien.
 

Bijlagen

  • Tabeleigenschappen.jpg
    Tabeleigenschappen.jpg
    25,3 KB · Weergaven: 35
En dit is wat ik zie:


noname01.jpg


ik heb al zitten zoeken of ik de weergave niet kan veranderen...
 
Je zit naar de Tabeleigenschappen in het hoofdscherm te kijken. Je moet echter eerst de query in het ontwerpscherm openen, en dan de eigenschappen van de tabel openen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan