Hoi,
Eerst beetje achtergrond van access bestand:
In het bestand worden orders ingevoerd.
De orders gaan over orders voor beleggingsproducten.
Ik heb een tabel (en formulier) producten waarin de verschillende beleggingsproducten met de huidige koers staan.
In tabel_orders, wordt dmv form_orders de orders ingevoerd.
Bij een order wordt ingevuld o.a.:
- Beleggingsproduct
- Aankoopkoers
- Aantal stukken
- Bedrag investering
Een overzicht van alle orders wil ik weergeven in Form_overzicht_orders. Hierop wil ik een aantal dingen berekenen als percentage (winst/verlies) en de huidige waarde van de investering.
Op het formulier overzicht_orders heb ik nu een veld gemaakt waarin door middel van een keuzelijstvak (en de wizard opzoeken), de huidige koers uit de tabel_producten wordt gehaald. Dit werkt.
Alleen nu wil ik op het formulier weergeven wat de huidige waarde van de investering is. Deze wordt berekend door: Aantal Stukken * huidige koers
Het probleem is echter dat wanneer ik deze berekening als besturingselement invul dat hij dan in plaats van de huidige koers gebruikt om te berekenen hij dan het productID(sleutel) uit de query pakt. Dus de eerste kolom van de query.
Als ik probeer te gebruiken: huidigekoers.column(1) dan geeft hij geen waarde.
Als ik probeer in VBA de code te gebruiken dan krijg ik het wel werkend, maar dan heb ik het probleem dat hij de berekende waarde voor alle achtereenvolgende records gebruikt.
Dus als de huidige waarde van de order in de eerste record 1000 is dan vult hij bij alle andere orders bij huidige waarde ook 1000 in.
Geef ik het tekstvak waarin de huidige waarde moet komen een achterliggende tabel om het in op te slaan, dan berekent hij het alleen weer voor de eerste record. (ik weet het, het is tegen de regels van normalisatie dus geen goede oplossing!)
Ik word hier helemaal gek van... Ik probeer een oplossing eromheen te zoeken maar dat is tot nog toe nog niet gelukt... Dit moet toch mogelijk zijn?
Een onmogelijke oplossing is (maar misschien verduidelijkt dat mijn probleem):
Als ik deze code gebruik dan moet ik dit voor elke order gebruiken en dat is niet mogelijk, want ik weet nooit hoeveel orders er ingevuld gaan worden
Iemand een idee??
Eerst beetje achtergrond van access bestand:
In het bestand worden orders ingevoerd.
De orders gaan over orders voor beleggingsproducten.
Ik heb een tabel (en formulier) producten waarin de verschillende beleggingsproducten met de huidige koers staan.
In tabel_orders, wordt dmv form_orders de orders ingevoerd.
Bij een order wordt ingevuld o.a.:
- Beleggingsproduct
- Aankoopkoers
- Aantal stukken
- Bedrag investering
Een overzicht van alle orders wil ik weergeven in Form_overzicht_orders. Hierop wil ik een aantal dingen berekenen als percentage (winst/verlies) en de huidige waarde van de investering.
Op het formulier overzicht_orders heb ik nu een veld gemaakt waarin door middel van een keuzelijstvak (en de wizard opzoeken), de huidige koers uit de tabel_producten wordt gehaald. Dit werkt.
Alleen nu wil ik op het formulier weergeven wat de huidige waarde van de investering is. Deze wordt berekend door: Aantal Stukken * huidige koers
Het probleem is echter dat wanneer ik deze berekening als besturingselement invul dat hij dan in plaats van de huidige koers gebruikt om te berekenen hij dan het productID(sleutel) uit de query pakt. Dus de eerste kolom van de query.
Als ik probeer te gebruiken: huidigekoers.column(1) dan geeft hij geen waarde.
Als ik probeer in VBA de code te gebruiken dan krijg ik het wel werkend, maar dan heb ik het probleem dat hij de berekende waarde voor alle achtereenvolgende records gebruikt.
Dus als de huidige waarde van de order in de eerste record 1000 is dan vult hij bij alle andere orders bij huidige waarde ook 1000 in.
Geef ik het tekstvak waarin de huidige waarde moet komen een achterliggende tabel om het in op te slaan, dan berekent hij het alleen weer voor de eerste record. (ik weet het, het is tegen de regels van normalisatie dus geen goede oplossing!)
Ik word hier helemaal gek van... Ik probeer een oplossing eromheen te zoeken maar dat is tot nog toe nog niet gelukt... Dit moet toch mogelijk zijn?
Een onmogelijke oplossing is (maar misschien verduidelijkt dat mijn probleem):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Dim antstuk
Dim huidk
antstuk = Forms!Form_overzicht_orders.AantalStukken
huidk = DLookup("[huidigekoers]", "tabel_producten", "[Productid] = " & ProductID.Value)
Forms!Form_overzicht_orders.huidigewaarde.Value = antstuk * huidk
DoCmd.GoToRecord , , acNext
Dim antstuk2
Dim huidk2
antstuk2 = Forms!Form_overzicht_orders.AantalStukken
huidk2 = DLookup("[huidigekoers]", "tabel_producten", "[Productid] = " & ProductID.Value)
Forms!Form_overzicht_orders.huidigewaarde.Value = antstuk2 * huidk2
DoCmd.GoToRecord , , acNext |
Als ik deze code gebruik dan moet ik dit voor elke order gebruiken en dat is niet mogelijk, want ik weet nooit hoeveel orders er ingevuld gaan worden
Iemand een idee??