Foutmelding na invoering formule in query

Status
Niet open voor verdere reacties.

Japsur

Gebruiker
Lid geworden
9 apr 2004
Berichten
650
Wie kan mij helpen bij een aantal formules?

Hallo iedereen,

Ik ben op het moment bezig met het creeëren van een nieuw programma voor de atletiek. Hierin zit redelijk wat formulewerk, ik heb nog niet zo denderend veel verstand van formules. Ik zal dus in de toekomst hier wat meer vragen gaan stellen om mijn programma te verwezenlijken.

Vraag 1:
De formule is als volgt:
Punten Kogelstoten: Int([T_Richttijden junioren AB]![Kogelstoten A]*Sqr(Deelnemers!Kogelstoten)-[T_Richttijden junioren AB]![Kogelstoten B])

of wel zonder alle gelinkte tabellen: INT (A * SQRT(afstand) - B).

A en B zijn constanten en afstand is een geworpen afstand. De afstand staat in een tabel. Wanneer ik in de tabel bij iemand een waarde invoer, in dit geval voor kogelstoten dan geeft ie wel een puntenaantal toe. Wanneer ik dit veld gewoon leeg laat geeft hij het volgende antwoord: #Fout.
Nou zou ik dit graag weg willen, zodat er gewoonweg niks staat.
Ik weet wel waardoor dit komt waarom hij #Fout aangeeft, omdat hij door iets wat er niet is moet delen, maar je in het veld 0 invult krijg je een negatief getal, dit wil ik ook niet hebben

Vraag 2:
Dit is misschien wel een domme vraag maar toch stel ik um: kan iemand mij uitleggen hoe je nu precies de functies AND, OR, LIKE, NOT, Iif moet gebruiken. Ik weet het verschil tussen deze functies niet zo goed en in welke volgorde deze moeten staan.

Vraag 3:
Een nog dommere vraag voor mij gevoel, maar wel gemakkelijk antwoord op te geven denk ik: het relateren van tabellen/queries aan elkaar. Daar snap ik ook niet zo geweldig. Wanneer moet je dit nu wel doen en als je dat doet wat moet je dan bijv. in een query invullen als je 2 tabellen gerelateerd hebt, welke velden?

Voorlopig was het dit, maar ik denk dat ik in de toekomst wel vaker een vraagje ga stellen.

Alvast bedankt!

Groetjes Japsur
 
Laatst bewerkt:
Vraag 1: Waar heb je deze formule staan? Als ie in de default value van het veld staat is er niets aan te doen. Ik denk dat de beste oplossing is de punten vanuit een formulier te laten uitrekenen door achter het updaten van de afstand de waarde van het veld punten te laten uitrekenen.

Vraag 2: IIF (Immediate If) is een functie die iets controleert op waar of niet waar en aan de hand daarvan een actie uitvoert o.i.d. Voorbeeld:

IIF(afstand > 12;"Goed";"Slecht")

Deze formule zal in een veld in bijvoorbeeld een query het woord "Goed" laten zien als de afstand groter is dan 12 en "Slecht" laten zien als dit niet zo is.

AND, OR, LIKE en NOT zijn logische operatoren. In de IIF functie kun je ze gebruiken in het eerste deel van de opdracht. Voorbeeld:

IIF((afstand > 12) AND (Categorie = "Jeugd");"Goed";"Slecht")

Deze fuctie zal hetzelfde doen als het vorige voorbeeld, maar daarnaast ook nog controleren of het veld categorie gevuld is met "Jeugd".

Met deze functies kun je leuke waarheidstabelletjes bouwen om te controleren of iets evalueert tot waar of niet waar. Als je deze functies gaat gebruiken is het belangrijk om alle mogelijke grevallen te testen op hun resultaat. Anders kun je voor rare verassingen komen te staan. De helpfile van Access geeft een goede uitleg over alle logische operatoren.

Vraag 3: Dit is een verhaal apart en niet heel erg eenvoudig uit te leggen. Een relatie leg je eigenlijk alleen tussen tabellen. Als je een relatie in een query wil maken doe je dat ook tussen de tabellen, maar dan heet het ineens een join.
Eigenlijk maak je een relatie altijd als de gegevens in twee tabellen met elkaar te koppelen zijn via een unieke sleutel (de primaire sleutel). Vaak wordt voor die sleutel een autonummer veld gebruikt om ervoor te zorgen dat het veld altijd uniek en je de gebruiker er niet mee lastig valt.
Kijk ook eens in deze thread (
http://www.helpmij.nl/forum/showthread.php?s=&threadid=158060 ) Hierin staat bijna onderaan eenplaatje van de relaties in een database.


Suc6,
 
Geplaatst door beheer25
Vraag 1: Waar heb je deze formule staan? Als ie in de default value van het veld staat is er niets aan te doen. Ik denk dat de beste oplossing is de punten vanuit een formulier te laten uitrekenen door achter het updaten van de afstand de waarde van het veld punten te laten uitrekenen.

- Deze formule heb ik in een query staan. Dus wanneer er in de tabel geen waarde komt geeft ie telkens en #FOUT aan. Is er geen mogelijk mbv. een formule of zo dit weg te halen. Ik moet namelijk met de waarden die eruit rollen verder rekenen. Ik kan er wel mee verder leven als er bijv. 0 kon komen te staan.

Verder alvast bedankt voor je antwoorden!
 
In dat geval kun je het oplossen met een iif functie:

IIF(afstand > 0 ; formule;0)

Op de plaats van "formule" je eigen formule plaatsen en je bent er.


Grtz,
 
Nu gaan ie omgekeerd werken.
Mijn formule is nu:
Punten Kogelstoten: IIf( [Deelnemers]![Kogelstoten] >0;Int([T_Richttijden junioren AB]![Kogelstoten A]*Sqr([Deelnemers]![Kogelstoten])-[T_Richttijden junioren AB]![Kogelstoten B]);0)

[Deelnemers]![Kogelstoten] = hier wordt de afstand genoteerd

Int([T_Richttijden junioren AB]![Kogelstoten A]*Sqr([Deelnemers]![Kogelstoten])-[T_Richttijden junioren AB]![Kogelstoten B]) = de formule (de oorspronkelijk).

Nu geeft ie voor alles waar niets is ingevuld de waarde 0, maar waar WEL wat ingevuld staat geeft ie nu #FOUT aan.

Heb je hier misschien ook een oplossing voor? Dat ie op de plek waar dus nu #FOUT staat de waarde die uit de formule moet rollen weergeeft.

Bij voorbaat dank,

Japsur
 
Sry beheer25, na wat wijzigingen lukte het mij toch, nu doet hij het wel goed!
Bedankt voor je antwoord!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan