bestel formulier

Status
Niet open voor verdere reacties.

magntic

Gebruiker
Lid geworden
16 feb 2011
Berichten
7
ik moet in een bestel formulier maken, alleen heb ik problemen met het toevoegen van een bestelling
dit zijn de tabellen:
voedsel:
voedselID
voedselnaam
prijs
dranken:
drankID
dranknaam
prijs
(er staat nog meer in zoals houdbaarheid maar dat is niet van toepassing)
ik heb al een tabel voor de bestellingen met:
bestelID
klantID
bestel_drank
hoeveelheid drank
bestel_voedsel
hoeveelheid voedsel

het lukt mij niet om een formulier te maken die alles invult en dan de prijs berekend (als u mij een mailtje stuurt dan kan ik de hele database sturen jojo_is_the_best@hotmail.com)

alvast bedankt
Job
 
Vertel eerst eens wat je hebt gedaan om de prijzen te berekenen... En wat bedoel je met:
het lukt mij niet om een formulier te maken die alles invult
?
 
Vertel eerst eens wat je hebt gedaan om de prijzen te berekenen...

op dit moment moet je alles zelf (uit je hoofd)invullen. als je een product kiest moet je zelf de prijs invullen en ernaast de hoeveelheid, op deze manier kan ik uitreken hoeveel het gaan kosten, ik zou graag willen dat als je een product kiest dat de prijs niet ingevuld hoeft te worden, alleen de hoeveelheid. zodat er aan het einden een totaal bedrag kan worden weergegeven

ik hoop dat het zo wat duidelijker is
m.v.g. Job
 
Dat is simpel op te lossen: maak van je veld [bestel_drank] een Keuzelijst met opzoekvak, en gebruik voor die keuzelijst (uiteraard) de tabel [dranken]. Neem in de bron voor de keuzelijst alle velden (drankID, dranknaam, prijs) op. Maak vervolgens in het formulier twee extra tekstvakken. Deze ga je gebruiken voor het weergeven van dranknaam en prijs. Deze tekstvakken krijgen de formule =cboDrank.Column(1).Value resp. =cboDrank.Column(2).Value. Ik heb de keuzelijst de naam cboDrank gegeven; de wizard doet dat niet. Moet je dus zelf aanpassen.
Als je het goed hebt gedaan, zie je nu de artikelnaam en prijs als je een dranksoort kiest. Doe hetzelfde voor Voedsel.
Ik neem aan, dat je tekstvakken hebt voor de betreffende aantallen? En extra teksvakken voor de totalen? In die totaalvelden maak je formules met VBA, omdat je de totaalprijs waarschijnlijk wilt opslaan, en de prijs wilt berekenen als je een getal invult, of een keuze maakt uit de keuzelijst. In beide gevallen moet er iets gebeuren nadat je wat hebt gedaan op het formulier, en dat kan alleen via VBA.
Maar begin maar eens bij het begin...
 
heel erg bedankt voor de hulp:thumb: het is me gelukt om de prijs en naam in een tekstvak te zetten dmv =cboDrank.Column(1) en =cboDrank.Column(2) ook kan ik de prijs keer het aantal wat er besteld is doen dmv =cboDrank.Column(2)*hoeveelheid drank. het is me ook gelukt om de totaalprijs te berenenen door =cboDrank.Column(2)*hoeveelheid_drank + cbovoedsel.Column(2)*hoeveelheid_voedsel

het enige probleem wat ik nu nog heb is om de totaalprijs in de tabel te zetten, is dat mogelijk op de manier waarop ik de totaalprijs heb berekend of had ik dat anders moeten doen?

Mvg.
Job
 
De berekeningen die je hebt gemaakt staan waarschijnlijk bij de respectievelijke Besturingselementbronnen van de tekstvakken. Dat kan, alleen heb je de gegevens alleen dynamisch tot je beschikking; ze zijn slechts virtueel beschikbaar, en worden berekend op het moment dat je het formulier opent. En op zich is daar niks mee. Je hebt wel een probleem op het moment dat er een prijswijziging plaats vindt; prijsverhoging? Nieuwe totalen! Dat wil je (terecht) niet. Daarom wordt de prijs op het moment van bestellen toch vaak wel opgeslagen in de bestellingentabel. Maar dat lukt nu niet, omdat je nu die formules hebt staan in de besturingselementbronnen.... En als je daar een veld aan hangt, heb je geen formules meer! Beetje Kip en ei situatie, niet?
Toch is er een makkelijke oplossing: laat de waarden berekenen via VBA, en koppel de tekstvelden dus gewoon aan je tabel. Dan heb je beide opties: je hebt een berekening, en je slaat het resultaat op. Waar zet je die berekening? Op de velden die je wijzigt. Dus: de keuzelijst met artikelen (daar haal je de prijs tenslotte uit) en op het tekstveld <Aantal>, want daar vermenigvuldig je de prijs mee. Kortom: de fomules kun je bijna onveranderd hergebruiken, maar dan bij de gebeurtenis <Na bijwerken> van tekstveld en keuzeveld. Kijk maar eens of je daar uit komt...
 
Toch is er een makkelijke oplossing: laat de waarden berekenen via VBA,

ik heb geprobeert om het in VBA te berekenen
D.M.V:

Private Sub eindknop_Click()

Dim varTotaal As Double
Dim var1 As Double
Dim var2 As Double
Dim var3 As Double
Dim var4 As Double
Dim var5 As Double

var1 = Val(Tekst35.Text)
var2 = Val(Tekst52.Text)
var3 = Val(Tekst56.Text)
var4 = Val(Tekst72.Text)
var5 = Val(Tekst74.Text)

varTotaal = var1 + var2 + var3 + var4 + var5

totaalprijs.Text = Str(varTotaal)

End Sub

dit werkt niet. weet jij misschien waarom?
 
Je gebruikt het Text argument. Dat kun je alleen gebruiken in combinatie met SetFocus. Wat je nodig hebt, is het Value argument. Dus niet:
var1 = Val(Tekst35.Text)
maar
var1 = CCur(Tekst35.Value)
etc.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan