Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: berekend veld naar tabel schrijven  (gelezen 8157 keer)

0 leden en 1 gast bekijken dit topic.

Offline adri

  • Ervaren lid
  • ***
  • Berichten: 421
  • Geslacht: Man
  • De Oplossing!
berekend veld naar tabel schrijven
« Gepost op: 11 februari 2012, 19:28:13 »
hallo,
ik voeg hierbij mijn db als voorbeeld.
Probleem 1: op mijn form nieuwe belegging heb ik een berekend veld (aankoop totaal), maar ik krijg dat niet weggeschreven naar mijn tabel transacties.
iemand een idee?
Asus k750jb.
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz 2401
X750JB
NVIDIA GeForce GT 740M        2048MB 1600 x 900
Realtek High Definition Audio
Nr: 1 Model: PLEXTOR PX-256M5S
C:\ NTFS 183,18GB 6,54GB 12 173MB
AV: AVG
FW: Windows Firewal Enabled: True

Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.345
  • I've Upped my standards,now,up yours!
Re: berekend veld naar tabel schrijven
« Reactie #1 Gepost op: 12 februari 2012, 10:27:17 »
=([Aankoop Aantal]*[Aankoop Prijs Eenheid])+[Aankoop Kosten] is niet je besturingselement hé.

Je moet je besturingselementbron dus instellen op [Aankoop Totaal].

Ik heb bij verlaten van de velden die deel uitmaken van de berekening een procedure ingesteld die de waarde in Aankoop_Totaal berekent.
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

Offline adri

  • Ervaren lid
  • ***
  • Berichten: 421
  • Geslacht: Man
  • De Oplossing!
Re: berekend veld naar tabel schrijven
« Reactie #2 Gepost op: 12 februari 2012, 11:30:14 »
bedankt dizzl,
had al van alles geprobeerd maar het lukte me niet.
heb nog een andere, soortgelijke vraag ivm met deze db.
heb in de tabel ook een veld 'aantal in portefeuille'; daar zou ik graag een getal krijgen met een berekening : aantal aankoop - aantal verkoop.
bij de aankoop geef ik een getal in: dat zou dan in dat veld kunnen komen (aantal verkoop is nog nul????)
later , als ik verkoop geef ik weer een getal in (misschien gedeeeltelijke verkoop) en dan zou een herberekening van aantal in portefeuille moeten gebeuren.
moet ik dit oplossen met een query???
Asus k750jb.
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz 2401
X750JB
NVIDIA GeForce GT 740M        2048MB 1600 x 900
Realtek High Definition Audio
Nr: 1 Model: PLEXTOR PX-256M5S
C:\ NTFS 183,18GB 6,54GB 12 173MB
AV: AVG
FW: Windows Firewal Enabled: True

Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.345
  • I've Upped my standards,now,up yours!
Re: berekend veld naar tabel schrijven
« Reactie #3 Gepost op: 12 februari 2012, 17:06:24 »
Daarvoor snap ik te weinig van waar je naartoe wilt.
Is het verkopen een 'nieuwe' transactie? of wil je gewoon een huidig record aanpassen.
Welk formulier gebruik je?
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

Offline Stegisoft

  • Ambassadeur
  • *****
  • Berichten: 2.342
  • Geslacht: Man
Re: berekend veld naar tabel schrijven
« Reactie #4 Gepost op: 13 februari 2012, 04:11:53 »
Beste Dizzl,

Ik heb de database aangepast.
Klik op aankoop_totaal in ontwerp en dan ziet je bij eigenschappen / gebeurtenis en bij focus dat ik in VB had geprogrammeerd.
Nu wordt het wel in de tabel weggeschreven.

Wel een opmerking:
Best laten zien dat het om een formulier of tabel gaat want op termijn kan je moeilijkheden hebben.
Dus
Tbl_transactie of transactie_T
Ttvl of T laat duidelijk zien dat om een tabel gaat.


Groetjes

Stegisoft
Linux Mint 19.3 64 bits sinds 4/2019
Intel Core i7 5820K @ 3.30GHz
16,0GB Dual-Kanaal Onbekend @ 1197MHz
EVGA INTERNATIONAL CO.LTD 131-HE-E095
NVIDIA GeForce GTX 960
238GB NVMe Samsung SSD 950 (M2 SSD)
ASUS BC-12D2HT (Blu-ray - DVD-RW)
ASUS Essence STX II Audio Device
Waterkoeling Corsair Hydro Series H100i V2

Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.345
  • I've Upped my standards,now,up yours!
Re: berekend veld naar tabel schrijven
« Reactie #5 Gepost op: 13 februari 2012, 06:29:18 »
Private Sub Aankoop_Totaal_GotFocus()
On Error GoTo aankoop_totaalfout

Aankoop_Totaal = ([Aankoop Aantal] * [Aankoop Prijs Eenheid]) + [Aankoop Kosten]

aankoop_totaalfout: Exit Sub
End Sub

Is natuurlijk een pak korter dan mijn code

Private Sub Aankoop_Aantal_Exit(Cancel As Integer)
    Bereken
End Sub

Private Sub Aankoop_Kosten_Exit(Cancel As Integer)
    Bereken
End Sub

Private Sub Aankoop_Prijs_Eenheid_Exit(Cancel As Integer)
    Bereken
End Sub

Private Sub Bereken()
   
   
    '** we kijken of al de velden ingevuld zijn. Is dit niet zo
    '** dan stoppen we ermee.
    If IsNull(Aankoop_Aantal) Then
        Exit Sub
    End If
    If IsNull(Aankoop_Prijs_Eenheid) Then
        Exit Sub
    End If
    If IsNull(Aankoop_Kosten) Then
        Exit Sub
    End If
   
    ' Alle velden hebben een waarde we tellen op en zetten deze waarde
    ' in Kosten_Totaal
    Aankoop_Totaal = Aankoop_Aantal * Aankoop_Prijs_Eenheid + Aankoop_Kosten
   
   
End Sub

't Zal aan de voorkeur van Adri liggen. Als de gebruiker zich tijdens het invoeren bedenkt, zal bij het wijzigen van één van de 3 parameters het resultaat getoond worden.

Niet onbelangrijk is dat als een gebruiker nog het aantal wijzigt en 'niet' verder doorgaat naar het veld totaal, de waarde niet wordt aangepast en de oude waarde wordt weggeschreven?

De subroutine Bereken zou je idd door jouw code kunnen vervangen maar fouten zoals 'on Error' kunnen andere oorzaken hebben dan een niet ingevuld of niet numeriek veld?
Allez men kan er over discussiëren en daarom is dit ook een discussie forum hé.
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

Offline adri

  • Ervaren lid
  • ***
  • Berichten: 421
  • Geslacht: Man
  • De Oplossing!
Re: berekend veld naar tabel schrijven
« Reactie #6 Gepost op: 13 februari 2012, 13:00:27 »
bedankt voor de reacties.
zal nog uitzoeken wat voor mij het best van toepassing is.
ivm mijn tweede vraag: de verkoop is inderdaad een nieuwe transactie.
het zal een formulier worden zoals de aankoop transactie, maar dan met de verschillende verkoop velden uit de tabel transacties.
Asus k750jb.
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz 2401
X750JB
NVIDIA GeForce GT 740M        2048MB 1600 x 900
Realtek High Definition Audio
Nr: 1 Model: PLEXTOR PX-256M5S
C:\ NTFS 183,18GB 6,54GB 12 173MB
AV: AVG
FW: Windows Firewal Enabled: True

Offline Stegisoft

  • Ambassadeur
  • *****
  • Berichten: 2.342
  • Geslacht: Man
Re: berekend veld naar tabel schrijven
« Reactie #7 Gepost op: 13 februari 2012, 18:11:38 »
@ dizzl,

Je kan inderdaad ook controle toevoegen zodat alle cijfers worden ingevuld alvorens te berekenen.
Zelf zet ik meestal ook controle in indien het nodig is.
Zondig met msgbox

Groetjes

Stegisoft
Linux Mint 19.3 64 bits sinds 4/2019
Intel Core i7 5820K @ 3.30GHz
16,0GB Dual-Kanaal Onbekend @ 1197MHz
EVGA INTERNATIONAL CO.LTD 131-HE-E095
NVIDIA GeForce GTX 960
238GB NVMe Samsung SSD 950 (M2 SSD)
ASUS BC-12D2HT (Blu-ray - DVD-RW)
ASUS Essence STX II Audio Device
Waterkoeling Corsair Hydro Series H100i V2

Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.345
  • I've Upped my standards,now,up yours!
Re: berekend veld naar tabel schrijven
« Reactie #8 Gepost op: 14 februari 2012, 08:33:30 »
Ik probeer me jouw database eens voor te stellen adri.
Als het mag vereenvoudig ik even door aan te nemen dat je een belegging doet met aankoop en verkoop (van die rente en zo snap ik niets dus laat ik dat even achterwege).
Eén belegging heeft dan, als ik het goed heb, één? of meerdere? aanko(o)p(en) en meerdere verkopen.
Je wilt deze verkoop en aankoop in één tabel transactie

Wat betekent 'in portefeullie'? en waarom staan aantal in portefeullie zowel in 'Beleggingen' als in 'Transacties'?
Mij lijkt het op het eerste zicht zivol van van 'Transacties' twee tabellen te maken 'Verkoop' en 'Aankoop'
De totaal aangekochte haal je dan uit 'Aankoop' en het aantal verkochte uit de tabel 'Verkoop' (voor een zekere BeleggingsID). De beschikbare is dan het verschil tussen beiden.

Je maakt dan een frmBeleggingen met daarin twee subformulieren frmAankoopDetails en frmVerkoopDetails.

In bijlag een aanzetje...frmBestellingen
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

Offline adri

  • Ervaren lid
  • ***
  • Berichten: 421
  • Geslacht: Man
  • De Oplossing!
Re: berekend veld naar tabel schrijven
« Reactie #9 Gepost op: 14 februari 2012, 14:52:11 »
beste dizzl,
ik zal inderdaad voor mijn transacties werken met een formulier, dat opent met een keuzelijst van beleggingen in portefeuille, waarin je eerst een belegging moet kiezen.
dan zal alle info verschijnen en enkele opdrachtknoppen ge-enabled worden: transacties aankoop, verkoop, rente en dividend.
die openen dan het desbetreffende subform en een knop om alles te saven.
al die transacties heb ik nu in één tabel, maar misschien is het inderdaad beter om ze apart te houden.
nu zou het de bedoeling zijn dat keuzelijst beleggingen alleen diegene toont die in portefeuille zitten; en dat liefst automatisch: aantal aankoop (transactie aankoop) - aantal verkoop (transactie verkoop).
nu zitten ze inderdaad in twee tabellen en dat is zeker niet nodig, maar ik ben aan het zoeken.
zie in bijlage voorbeeld formulier "transacties"
Asus k750jb.
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz 2401
X750JB
NVIDIA GeForce GT 740M        2048MB 1600 x 900
Realtek High Definition Audio
Nr: 1 Model: PLEXTOR PX-256M5S
C:\ NTFS 183,18GB 6,54GB 12 173MB
AV: AVG
FW: Windows Firewal Enabled: True

Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.345
  • I've Upped my standards,now,up yours!
Re: berekend veld naar tabel schrijven
« Reactie #10 Gepost op: 15 februari 2012, 06:40:50 »
Kijk eens op mijn frmBestelling? Daar is bij start van de pagina een berekening die aantal in portefeuille bijhoudt.

Kan je ook aub je bestandsnaam inkorten en voorzien van een datum zodat men kan zien welke versie er nu is?
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

Offline adri

  • Ervaren lid
  • ***
  • Berichten: 421
  • Geslacht: Man
  • De Oplossing!
Re: berekend veld naar tabel schrijven
« Reactie #11 Gepost op: 15 februari 2012, 09:08:39 »
ok dizzl,
had het nog niet gezien. dit zal inderdaad werken.
het formulier geeft ook mooi de verschillende transacties, maar daar zal ook nog ev. dividend of rente bij komen, dus als dat kan zou ik dat graag in een gegevensblad krijgen.
wat ook goed is bij formBeleggingen, is dat je niks kunt veranderen aan de velden bovenaan, terwijl ze op het form toch niet vergrendeld zijn. ook dat probeer ik al een tijdje voor mekaar te krijgen. kan je me daar ook wat uitleg bij geven?
ivm met de bestandsnaam: ik heb al zo veel versies gemaakt, zodat ik het best bij blijf met de datum waarop mijn laatst goed werkende test is gebaseerd.
 
Asus k750jb.
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz 2401
X750JB
NVIDIA GeForce GT 740M        2048MB 1600 x 900
Realtek High Definition Audio
Nr: 1 Model: PLEXTOR PX-256M5S
C:\ NTFS 183,18GB 6,54GB 12 173MB
AV: AVG
FW: Windows Firewal Enabled: True

Offline adri

  • Ervaren lid
  • ***
  • Berichten: 421
  • Geslacht: Man
  • De Oplossing!
Re: berekend veld naar tabel schrijven
« Reactie #12 Gepost op: 15 februari 2012, 15:31:25 »
beste dizzl,
heb de formule voor de berekening aantal in portefeuille toegepast op mijn form Nieuwe belegging, maar de teller blijft op nul staan. op dat form staat  alleen alleen subform Aankoop, maar de berekening zou dan toch ook moeten werken.

Dim aantal As Integer
    On Error Resume Next
    aantal = DSum("[Aankoop Aantal]", "Aankoop", "BeleggingID=" & Me.BeleggingId)
    aantal = aantal - DSum("[Verkoop Aantal]", "Verkoop", "BeleggingID=" & Me.BeleggingId)
   
    Aantal_In_Portefeuille = aantal

Asus k750jb.
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz 2401
X750JB
NVIDIA GeForce GT 740M        2048MB 1600 x 900
Realtek High Definition Audio
Nr: 1 Model: PLEXTOR PX-256M5S
C:\ NTFS 183,18GB 6,54GB 12 173MB
AV: AVG
FW: Windows Firewal Enabled: True

Offline dizzl

  • Ambassadeur
  • *****
  • Berichten: 2.345
  • I've Upped my standards,now,up yours!
Re: berekend veld naar tabel schrijven
« Reactie #13 Gepost op: 15 februari 2012, 18:04:31 »
zet je het hier eens online?
Systeem  : Intel Core i5-4440 3.1Ghz, 3.1GHz 16Giga Ram 64Bits
Software : Windows 10 professional, Avira, Office 2016 Professional

Offline adri

  • Ervaren lid
  • ***
  • Berichten: 421
  • Geslacht: Man
  • De Oplossing!
Re: berekend veld naar tabel schrijven
« Reactie #14 Gepost op: 16 februari 2012, 09:09:30 »
hierbij nog eens mijn bijgewerkt voorbeeld.
Asus k750jb.
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz 2401
X750JB
NVIDIA GeForce GT 740M        2048MB 1600 x 900
Realtek High Definition Audio
Nr: 1 Model: PLEXTOR PX-256M5S
C:\ NTFS 183,18GB 6,54GB 12 173MB
AV: AVG
FW: Windows Firewal Enabled: True

 


www.combell.com