juiste vakje uitlezen

Status
Niet open voor verdere reacties.

Zurrik

Gebruiker
Lid geworden
17 mrt 2006
Berichten
221
Goedemorgen,

Ik moet een prijs gaan bepalen voor een produkt.
De prijs hangt af van het soort product (moeilijk, gemiddeld, makkelijk), de oppervlakte(die bereken ik en zet de uitkomst in een apart veld, en de soort bewerking( hierin zijn ook 5 keuzes, nemen 1-2-3-4-5)
Nu wil ik de prijs weergeven in een textveldje. Ik heb 3 tabellen met prijzen gemaakt, prijslijstmakkelijk, prijslijstgemiddeld en prijslijstmoeilijk. Het probleem is nu hoe ik een waarde kan uitlezen om deze vervolgens weer te gebruiken om mee te rekenen.

bijv. Mijn produkt heeft een oppervlakte van 10 dm2. Krijgt behandeling 2 en is makkelijk te maken. Ik wil dan de oppervlakte(is al berekent) * de prijs/dm2 voor die oppervlakte uit de prijslijstmakkelijk halen.

Mijn vraag is hoe doe ik dit.

ben ongeveer zo ver:

if oppervlakte>2 AND oppervlakte<5 and categorie= makkelijk and behandeling=2 then ................
 
Als je de drie tabellen combineert tot één tabel prijslijst met een indicatie makkelijk, gemiddeld, moeilijk dan heb je nog maar met één tabel te maken en wordt de selectie een stuk eenvoudiger.
 
Klopt,
maar ik heb deze keuze gemaakt omdat ik van drie dingen afhankelijk ben. Van de catergorie(makkelijk,gemiddeld en moeilijk), van de bewerking(5 mogelijkheden) en van de oppervlakte. Hoe moet ik dit dan in een tabel zetten?

vb: Denk je dan aan oppervlakte x bewerking, met bij de bewerking de vlg namen:
Bewerking1 makkelijk
Bewerking1 gemiddeld
Bewerking1 moeilijk
Bewerking2 makkelijk
"
"

of waar denk je dan aan?
ik dacht dat het makkelijker zou zijn om daarom drie tabellen te maken.

Maakt mij verder niet uit, eenvoudigst op te lossen telt voor mij.
 
Kun je de complete berekening van de prijs eens duidelijk beschrijven. Dat bepaald namelijk hoe je het het beste kunt opslaan.
 
Komt ie:

Ik voer een produkt in, een blokje. Bij de ingave hiervan moet ik oa de lengte, breedte en hoogte invoeren. Lengte 100, Breedte 150 en hoogte 50. Met deze waarden bereken ik de oppervlakte, (2*100*150) + (2*100*50) + (2*150*50)= de oppervlakte. Daarnaast moet ik de soort behandeling invoeren, behandeling = zwart. Voor iedere behandeling bestaat weer een aparte prijsstaffel. En ik moet de categorie invoeren, categorie = makkelijk. Nu is de prijs dus: oppervlakte * (de prijs per dm2, die aangegeven staat bij de behandeling zwart) in de tabel makkelijk. Ik hoop dat het nu iets duidelijker is.

Ik heb een voorbeeld van de prijslijst toegevoegt.
 

Bijlagen

Een tabel met prijzen dus

ID (autonummer)
IDSoortBehandeling (lange integer)
IDCategorie (lange integer)
Prijs (double)

Plus een tabel SoortBehandeling
Plus een tabel Categorie

Als je op je formulier dan een selectie hebt gemaakt van de soort behandeling en de categorie kun je met die informatie de prijs ophalen
 
Uhm sorry, ik denk dat mijn uitleg nog niet helemaal duidelijk was. Zoals jij schrijft ben ik afhankelijk van de soort behandeling en de categorie. Dat klopt maar ik ben ook afhankelijk van de oppervlakte zoals je ziet in mijn bijlage. Ik kan dus ook een blokje hebben met grotere oppervlakte. Dus er staat niet 1 prijs voor een combinatie van behandeling en categorie. snap je me?
 
Ja, maar dat staat kan toch ook

Voorbeeld
Soortbehandeling
ID Soort
1 Zwart
2 Rood
3 Blauw

Categorie
ID Categorie
1 makkelijk
2 gemiddeld
3 moeilijk

Prijs
ID, IDSoortbehandeling, IDCategorie, Prijs
1, 1, 2, 0.23
2, 1, 3, 0.30
3, 3, 2, 0.35

Op je formulier selecteer je dan Soort behandeling = Zwart (IDSoortBehandeling=1)
Categorie = gemiddeld (IDCategorie=2)

Met deze gegevens kun je dan in de prijstabel de juiste prijs ophalen (0.30 in het voorbeeld) en deze vermenigvuldigen met de oppervlakte om tot de totaalprijs te komen.
 
we begrijpen elkaar denk ik nog niet goed.
Afhankelijk van de opervlakte wordt de prijs per/dm2 bepaald.

oppervlakte 1-2 dm2 --> 0,30 per dm2
oppervlakte 2-5 dm2 --> 0,29 per dm2
oppervlakte 5-10 dm2 --> 0,27 perdm2
'
'
'
oppervlakte > 250 dm2 --> 0,15 per dm2.

Volgens mij kan ik dit met jou voorbeeld nog niet. Toch?
 
Nog een tabelletje erbij: Oppervlakte
ID (autonummer)
OppervlakteVanaf (double)
OppervlakteTotEnMet (double)

En in je prijs tabel een verwijzing IDOppervlakte.

Oftewel, je datamodel normaliseren, want dat zijn we nu aan het doen.
 
Laatst bewerkt:
Ok ik begin het te snappen.

Krijg ik dan een hele grote tabel prijs.

vb:
Prijs
ID, IDSoortbehandeling, IDCategorie, IDOppervlakte, Prijs
1, 1, 1, 1, 0.23
2, 1, 1, 2, 0.22
3, 1, 1, 3, 0.21
'
'
'
26, 3, 1, 1, 0,11

Ik heb in totaal 18 soorten behandeling, 3 categorieën, en 10 Oppervlakte maten.
Dus kan ik 18*3*10= 540 Mogelijkheden hebben. Is dit niet wat veel en makkelijker te ontlopen? Of adviseer je dit.
 
540 records in een tabel is niet veel, ik werk vaak met tabellen met meer dan 100000 records erin.

Je moet onderscheid maken tussen de manier waarop je dingen opslaat (de tabellen) en de manier waarop je de gegevens moet presenteren (queries in combinatie met formulieren en rapporten).

Opslaan van gegevens moet zo efficient mogelijk gebeuren, dus geen gegevens dubbel opslaan, geen tabellen die qua structuur hetzelfde zijn etc. Normaliseren van je datamodel dus.

Als je gegevens goed en efficient opgeslagen zijn, dan kun je ze met queries altijd op de door jou gewenste manier presenteren, als je gegevens op een slechte manier opgeslagen zijn dan moet je heel veel moeite doen om je gegevens te onderhouden en/of te actualiseren.

Onthoud dus goed dat opslag niet gelijk hoeft te zijn aan presentatie!

En ja, mijn advies is om het inderdaad op die manier op te slaan.
 
Komt mijn ervaring om de hoek:D. hartelijk dank voor het helpen. Ik ga het zo maken.
 
Importeren vanuit Excel.
Database venster, rechtermuisknop, koppelen.
Excel sheet selecteren en als tabel koppelen.

Vervolgens met queries je definitieve tabellen vullen.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan