Toon posts:

getal opslaan vanuit formulier in tabel

Pagina: 1
Acties:
  • 1.024 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
wie helpt me met t volgende:
ik heb een totaal waarde die berekend wordt op een form, moet opgeslagen worden in de onderliggende tabel. Is dit mogelijk binnen access2000 en zo ja op welke manier? (ik ben er van op de hoogte dat het niet volgens de regels is om procesdata op te slaan maar omwille van latere export is dit wel nodig)

Verwijderd

Topicstarter
echt niemand handig met Access.....
of ideeen waar ik mogelijk op t Internet wel een antwoord kan vinden / me verder kan helpen....
PLEASE...

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Wat heb je zelf geprobeerd dan? :)

Volgens mij is dit wel erg makkelijk te doen!

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Han
  • Registratie: Juli 2001
  • Niet online

Han

BtM909 schreef op 04 augustus 2003 @ 17:02:
Volgens mij is dit wel erg makkelijk te doen!
Als het makkelijk te doen is dan post die manier toch? Einstein ;)

Doubt thou the stars are fire; Doubt that the sun doth move; Doubt truth to be a liar; But never doubt I love.


  • JohanDM
  • Registratie: Augustus 2002
  • Laatst online: 16-07-2021

JohanDM

Optimist

Je kan in een Access form VBA code uitvoeren. Met het DoCmd.RunSQL statement kun je dan SQL statements op de onderliggende tabellen uitvoeren, zoals het updaten van een tabel.
Een voorbeeldje:
Visual Basic:
1
    DoCmd.RunSQL "UPDATE Table1 SET waarde = " & Text1.Value & " WHERE ID = 1"

Of je kan het ook met een updatequery doen die je vanuit een macro aanroept:
SQL:
1
2
UPDATE Table1 SET Table1.waarde = [Forms]![Form1]![Text1].[Value]
WHERE (((Table1.ID)=1));

"Two things are infinite: the universe and stupidity. And the former I'm not so sure about." -- Albert Einstein


Verwijderd

Topicstarter
ha feedback... kijk JohanDM snapt mijn probleempje.. of ik het zo werkend krijg weet ik nog niet, maar ga ermee aan de slag...
maaruh mijn vba kennis is vrij nihil dus verwacht dat ik hier zo weer ben met nieuwe vragen of mijn probleempje.
Ik wacht dan ook in spanning af naar bv de makkelijke manier van BTM909.

Nog ff voor de duidelijkheid: ik heb meerdere (rekenkundige) waarden verkregen op mijn formulier, deze waarden wil ik in t zelfde formulier laten op optellen in een veld en die waarde dan weer opslaan in de tabel.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

XceeD schreef op 04 augustus 2003 @ 17:06:
[...]
Als het makkelijk te doen is dan post die manier toch? Einstein ;)
Bij deze :>


Ik ga er even vanuit dat je in je huidige tabel ook een veld hebt, waarin je het totaal wilt opslaan.

Ik heb een form en tabel aangemaakt met de volgende velden:
[Waarde1]
[Waarde2]
[Waarde3]
[Totaal]

Al mijn form-fields zijn gekoppeld aan de gelijknamige table-fields.


Maak in je form een event procedure aan, voor een aantal events (waaronder onLoad).

Je hoeft dan alleen de volgende code toe te voegen:

Visual Basic:
1
2
3
Private Sub Form_Load()
    [Totaal] = [waarde1] + [waarde2] + [waarde3]
End Sub


Uiteraard moet je dit voor meerdere events doen:
• openen van je form
• sluiten van je form
• navigeren naar andere records
• wijzigen van fields in je form

Heb je in je formulier een expliciete SAVE knop, dan kan je bovenstaande code natuurlijk daar toe voegen.

:)

[ Voor 8% gewijzigd door BtM909 op 05-08-2003 10:14 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • dude123
  • Registratie: December 2001
  • Laatst online: 13-05-2022

dude123

Linux addict

weet je wat je doet he ! bij access 2000 zit een voorbeeld bestand genaamd noordenwind.mdb
ik heb een keer vanuit t niets, ik kon er dus ook niks van een database app moeten bouwen in access 2000. Dit bestand zitten een heleboel voorbeelden in die me geweldig geholpen hebben !

Meneer 1000 has spoken......


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Verwijderd schreef op 04 augustus 2003 @ 18:50:
maaruh mijn vba kennis is vrij nihil dus verwacht dat ik hier zo weer ben met nieuwe vragen of mijn probleempje.
Ik wacht dan ook in spanning af naar bv de makkelijke manier van BTM909.
offtopic:
BTM909 heeft trouwens wel een punt: het is wel de bedoeling eerst in een boek / onder F1 / op wat websites te kijken voor je een vraag stelt@GoT. Zeker als je kennis vrij nihiel is, omdat je dan nog veel kunt leren ;)

De tip van dude123 kan ook handig zijn: bekijk alle code van zo'n demo db eens goeds en je leert een hoop :)

Ik weet dat het niet makkelijk is om 'from scratch' een Access app te moeten maken en nog met een deadline ook (heb ik "ooit" in Access95 ook last van gehad), maar geloof me: je krijgt uiteindelijk een beter product als je het uiteindelijk zelf hebt gedaan ipv te copy pasten van een forum (nog afgezien van het feit dat we hier het beantwoorden van vragen die zijn op te zoeken niet bepaald leuk vinden ;) )

Anyway, lukt het zo?

Edit:
Verwijderd schreef op 05 August 2003 @ 17:14:
@F_J_K
ondanks dat mijn kennis vrij nihil is zitten er uren zoekwerk in in oa Google.
Dat is meer dan nodig is, het was misschien niet erg duidelijk maar mijn opmerking over zoeken was dan ook overbodig, mijn excuses :*
(Al blijft die tip over dat je per saldo veel beter werk levert bij eerst een goed boek doorwerken staan, dat is tenminste mijn ervaring als iemand die een gruwelijk houtje touwtje product afleverde als eerste project maar ik neem aan dat dat in jouw geval beter gaat, we zijn niet allemaal zulke prutsers zoals ik ;) )
daarbij komt dat het hier om rekenkundige waarden gaat.
Access houdt zich erg aan de regels van databases dat het zwaar onverstandig is om rekenkundige waarden in een tabel op te slaan. (In mysql zou mijn probleem waarschijnlijker makkelijker op te lossen zijn)
maar goed we gaan elkaar hier niet heen en weer afzeiken.
Daar heb je helemaal gelijk in: 'rekenresultaten' (aggregate values) in een db gooien is niet verstandig en een derived table kan IIRC niet in Access :)

Anyhow, ik zal me er verder buiten houden omdat ik verder niets ontopic kan helpen zonder recente ervaring in Access :P

[ Voor 39% gewijzigd door F_J_K op 06-08-2003 10:02 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
@F_J_K
ondanks dat mijn kennis vrij nihil is zitten er uren zoekwerk in in oa Google.
daarbij komt dat het hier om rekenkundige waarden gaat. Access houdt zich erg aan de regeld van databases dat het zwaar onverstandig is om rekenkundige waarden in een tabel op te slaan. (In mysql zou mijn probleem waarschijnlijker makkelijker op te lossen zijn)
maar goed we gaan elkaar hier niet heen en weer afzeiken.

Verwijderd

Topicstarter
ter aanvulling op mijn probleem:
------
De rekenkundige waarden die opgeteld worden, zijn niet direct afkomstig uit een tabel maar worden gegenereerd verkregen door een selectie uit een hulptabel.
------
verder:
- De selectie bepaalt welke waarde opgeteld moet worden
- de selectie-waarden uit de hulptabel is steeds anders, de ene keer 3 mogelijkheden, de andere keer tig mogelijkheden. Vandaar dat ik die waarden liever NIET in de code wil zetten
- die losse waarde wordt niet opgeslagen, maar wordt berekend in het form
- die TOTAAL waarde moet uitgerekend worden in dat form, en DIE totaalwaarde dient te worden opgeslagen in een tabel.

Hopelijk verduidelijkt dit mijn probleem en de moeilijkheidsgraad en kom ik dus niet verder met de uitwerking van BTM909
iemand...

  • Boss
  • Registratie: September 1999
  • Laatst online: 08-09 17:20

Boss

+1 Overgewaardeerd

Is je form wel gekoppeld aan die tabel?
Anders kan je ook met het recordset object werken, als je een beetje bang bent voor SQL...

Klein voorbeeldje, uit mn hoofd dus met fouten :)

code:
1
2
3
4
5
6
7
Dim rst as Recordset
  set rst = CurrentDB.OpenRecordset("TabelNaam")
  rst.Add
  rst.Fields("ResultaatVeld1") = [berekening]
  rst.Fields("ResultaatVeld2") = [berekening]
  rst.Update
  rst.Close


Bij berekening kan je je formule stoppen, TabelNaam moet de naam van je tabel zijn of een SQL statement waarin je kan wijzigen / toevoegen.

Helpt dat?
ja -> mooi
nee -> wat snap je niet?

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op 05 August 2003 @ 17:36:
verder:
- De selectie bepaalt welke waarde opgeteld moet worden
- de selectie-waarden uit de hulptabel is steeds anders, de ene keer 3 mogelijkheden, de andere keer tig mogelijkheden. Vandaar dat ik die waarden liever NIET in de code wil zetten
- die losse waarde wordt niet opgeslagen, maar wordt berekend in het form
- die TOTAAL waarde moet uitgerekend worden in dat form, en DIE totaalwaarde dient te worden opgeslagen in een tabel.

Hopelijk verduidelijkt dit mijn probleem en de moeilijkheidsgraad en kom ik dus niet verder met de uitwerking van BTM909
iemand...
Eh jawel hoor :Y)

Je geeft het zelf aan:
die losse waarde wordt niet opgeslagen, maar wordt berekend in het form
Dat doe je neem ik aan in een veld, of niet? Zo ja, dan kan je toch een verwijzing maken naar dat veld (die al die berekeningen doet via hulptabellen etc etc.)

Ik neem aan dat het je wel lukt om die acties uit te voeren en weer te geven in je form. Het enige probleem is het opslaan van het resultaat (niet de berekening, maar de uiteindelijke waarde).

Pas mijn code dan aan om bij het opslaan / unload form / etc. die waarde van je niet-tabel field op te slaan in je wel-tabel field. :P

Duidelijk wat ik bedoel?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
sorry btm909 ik snap niet wat je bedoelt.
- de losse waarde komt in een veld te staan, dus ook de andere waarden die ik wil optellen.
het optellen van de 2 velden lukt nog wel veld nr3. die uiteidenlijke waarde (waarde van veld 3 dus) krijg ik niet opgeslaan. Dat voel je goed aan in je tweede alinea.

je laatste alinea snap ik vervolgens niet :(

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op 05 August 2003 @ 18:53:
sorry btm909 ik snap niet wat je bedoelt.
- de losse waarde komt in een veld te staan, dus ook de andere waarden die ik wil optellen.
het optellen van de 2 velden lukt nog wel veld nr3. die uiteidenlijke waarde (waarde van veld 3 dus) krijg ik niet opgeslaan. Dat voel je goed aan in je tweede alinea.

je laatste alinea snap ik vervolgens niet :(
1. Hoe heet het form-veld dat je gebruikt in je form (logisch :+)?
2. Hoe heet het veld in database waarin je deze waarde uiteindelijk wilt opslaan?
3. Wanneer wil je deze waarde opslaan in je database?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
BtM909 schreef op 05 August 2003 @ 19:27:
[...]

1. Hoe heet het form-veld dat je gebruikt in je form (logisch :+)?
2. Hoe heet het veld in database waarin je deze waarde uiteindelijk wilt opslaan?
3. Wanneer wil je deze waarde opslaan in je database?
antw 1. dit is het veld dat ik gebruik om de numerieke waarde in weer te geven in het formulier (dit veld komt NIET voor in de tabel)
antw 2. huis_puntenlokaal
antw 3. na het drukken van de 'opslaan-button'

bij voorkeur zoek ik naar een oplossing op basis van SQL, liever geen VBA.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op 05 augustus 2003 @ 21:36:
[...]


antw 1. dit is het veld dat ik gebruik om de numerieke waarde in weer te geven in het formulier (dit veld komt NIET voor in de tabel)
antw 2. huis_puntenlokaal
antw 3. na het drukken van de 'opslaan-button'

bij voorkeur zoek ik naar een oplossing op basis van SQL, liever geen VBA.
Waarom SQL en geen VBA?

Je geeft trouwens geen antwoord op vraag 1. :( ;)
Dus stel dat het veld form_huis_puntenlokaal heet.

Dan hoef je aan de huidige code voor het opslaan alleen onderstaande (ja VBA ;)) code toe te voegen:

code:
1
[huis_puntenlokaal] = [form_huis_puntenlokaal]


Dan ben je toch klaar :?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
hmm... ga er maar weer eens mee klooten
ik geef de voorkeur aan sql omdat ik daar meer knowhow van heb dan van vba.
daarbij komt dat je de sql query / formule makkelijk op andere gelijkwaardige tabellen kunt copy - pasten.
De berekingstechniek blijft daarbij los van de formulieren. met vba geef je de formule IN t formulier, met sql niet.

zou je verder nog eens precies uit willen schrijven hoe de vba code er precies uitziet? want ik heb mijn twijfels of ik t nog goed volg omdat je in je formule (en uitleg) aangeeft dat he waarde1 waarde2 waarde3 ook terug te vinden zijn in de tabel. EN DAT IS DUS NIET zo. ENKEL HET TOTAALWAARDE VELD komt voor op t formulier als in de table.

nogmaals bedankt voor je hulp en moeite om me verder te helpen.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ok, laat mij eens de volledige code zien, voor het opslaan van je record(s)?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

* BtM909 is benieuwd of Velix er inmiddels uit is :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1