Criteria per kolom

Status
Niet open voor verdere reacties.

Sonnetje85

Gebruiker
Lid geworden
28 nov 2012
Berichten
102
In mijn query voor de facturen kunnen 3 tarieven gelden
De tabellen die gebruikt worden zijn "Urenbriefjes" en "Klant" deze zijn gelinkt via klantnummer
In de 2e kolom van de query heb ik 3 waarden staan (1, 2 of 3) die staan voor een bepaald tarief
Er kan maar 1 tarief per keer werken gelden (afhankelijk van wel personeel er werkt)
De tarieven zijn per klant verschillend, maar heten daar (in de tabel "klant" ook 1, 2 en 3)

Nu heb ik de volgende kolommen in de query
Klant, Tarief, Werktijd, tarief 1, tarief 2, tarief 3, Totaal
Nu moet dus alleen in de kolom van het juiste tarief ook daadwerkelijk het tarief zichtbaar zijn
Dus ik had: tarief 1: IIf(InStr([Tarief]="1");[1];0)
Maar dan geeft hij #Fout
 
tarief 1: IIf(InStr([Tarief]="1");[1];0)

Verwijder de rechte haken. Volgens mij moet

tarief 1: IIf([Tarief]="1";1;0)

ook werken.
 
Laatst bewerkt:
Hij moet niet 1 teruggeven, maar het tarief die in de kolom [1] staat van de tabel klant

En ook als ik dat poog wel te doen, krijg ik geen 1-en en 0-en maar nog steeds #Fout

Die laatste werkt wel!
Dank u
 
Laatst bewerkt:
Wat bedoel je met kolom [1]? Je hebt een query met de velden: Klant, Tarief, Werktijd. Deze staan in een tabel. Vervolgens voeg je daar volgens mij eigen velden aan toe nl: tarief 1, tarief 2, tarief 3, Totaal. Ik ga er vanuit dat Totaal een berekend veld is. Ik vermoedde dat tarief 1, tarief 2, tarief 3, bestaan uit de inhoud van veld tarief dus een 1, 2 of 3. Maar kennelijk bedoel je iets anders. Laat anders even zien hoe je query er uitziet en hoe de tabellen eruit zien waarmee je de query samenstelt.
 
Er kan maar 1 tarief per keer werken gelden
Dus je houdt in één veld de tariefcode bij. Waarom dan dit?
Nu heb ik de volgende kolommen in de query Klant: Tarief, Werktijd, tarief 1, tarief 2, tarief 3, Totaal
Erg onlogisch. Als er maar één tariefveld is, heb je ook maar één tariefwaarde. Ik neem aan dat je een aparte tabel hebt voor de tarieven, met daarin minstens 3 records met resp. de tariefcodes 1, 2 en 3 en daarachter de prijs. Waarom koppel je die tabel niet aan je query, en gebruik je het prijsveld?
 
Voorbeeld
Klant 1
tarief 1: E5
tarief 2: E10
tarief 3: E15

Klant 2
tarief 1: E2
tarief 2: E3
tarief 3: E5

en ze gebruiken allemaal al deze tarieven, zoals het nu staat lukt het allemaal :) en ziet er erg netjes uit in het rapport
 
Ik snap dat een klant meerdere tarieven kent, maar je geeft zelf aan dat per factuur maar één tarief wordt gebruikt. Ergens leg je dus in je tabel vast wèlk tarief dat is. De tarieven (ik blijf daar vanuit gaan) zul je toch echt in een aparte tabel hebben staan, die met een één-op-veel relatie is gekoppeld aan je facturen of urenregistratie. Ergo: de factuur kent één tarief, en dat kun je simpel opnemen in je query. Daarbij maakt het niet uit of je 1 of 20 velden in je klantentabel hebt staan met tariefopties. (al zou ik dus never nooit niet zo'n constructie gebruiken, omdat dat veuls te lastig is in het gebruik, zoals je nu zelf ook ondervindt).
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan