Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Hilfe im Formular - 2 Probleme

Begonnen von dobby110, November 03, 2014, 11:42:19

⏪ vorheriges - nächstes ⏩

dobby110

Hallo zusammen,

ich habe mal wieder ein kleines Problem, bei dem ich auf eure Hilfe angewiesen wäre. Eigentlich zwei Probleme.

Hier die Nummer 1:
Folgendes Vorhaben:

Ich habe eine 3 Tabellen.
Tabelle 1 - Fonds
Tabelle 2 - Investments
Tabelle 3 - Fonds in Investments

In dieser Tabelle 3 will ich eine Zuordnung machen, welche Investments in welchen Fonds stecken.
Die Tabelle enthält folgende Felder:

ID / Fonds / Fondsnummer / Investment / ISIN / Aktiv

Nun würde ich zur Pflege gerne ein Formular bauen wo ich den Fonds auswähle (das mache ich über ein Kombifeld) und dann soll zu dem Fonds die entsprechende Fondsnummer befüllt werden.
Im zweiten Schritt würde ich das Investment wählen und es soll die ISIN zu dem Investment befüllt werden.
Lässt sich so etwas darstellen?
Wenn ich es über Kombifelder mache, kann ich immer nur aus allen Nummern oder ISINs die passende auswählen. Das gefällt mir als Lösung nicht wirklich und es geht bestimmt auch einfacher. ;-)

Meine zweite Frage bezieht sich auch auf ein Formular. Ich habe über Formulareditor ein Formular erstellt. In diesem ist ein Feld "aktueller Wert" , welches ich gerne berechnen lassen würde, da ich auch den aktuellen Bestand und den aktuellen Kurs in diesem Formular befülle.
Jetzt habe ich gedacht, ich schreibe unter Daten - Steuerelementinhalt folgenden Code
"= Bestand * Kurs"
Das funktioniert im Formular auch, allerdings wird der Wert beim speichern nicht in meine Tabelle übernommen. Woran kann das liegen?


Vorab schon einmal vielen Dank, für eure super Hilfe.

DF6GL

Hallo,

zuerst einige Tipps:

Tabellen "vernünftig" benamsen  (tblFonds, tblInvestments, tblInvestmentsFonds)

Tabellenfelder "vernünftig" benamsen (z. B. Fond_ID, InFo_D, InFo_Fond_ID, InFo_ISIN, InFo_Aktiv,etc)  und auf korrekten/passenden Datentyp achten.

Auf Sonder- und Leerzeichen verzichten.


Zu 1)

Wenn die Tabelle tblInvestmentsFonds befüllt werden soll, kommst Du um die Auswahl sowohl des Fonds als auch des Investments über je ein Kombifeld nicht herum. (Es gibt ja hier noch keine Zuordnung)


Wenn Du aber "Fonds" bearbeiten/pflegen willst, dann könnte eine HFO/UFO-Konstruktion hilfreich sein:  HFO (Einzelformular) mit Datenherkunft zu Tabelle tblFonds und darin eingebettet ein UFO-Steuerelement, das ein Endlosformular mit Datenherkunft zu Tabelle tblInvestmentsFonds anzeigt. Verknüpft wird das UFO-Steuerelement über die entspr. Schlüsselfelder (Fond_ID und InFo_Fond_ID). Das Investment kann dann durch ein Kombifeld im Endlosform ausgewählt werden.


Zu 2)

siehe http://www.donkarl.com/?FAQ4.11

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

dobby110

Danke für die schnelle Antwort.

Habe mich jetzt mal etwas schlau gelesen in Punkto "Berechnetes Feld speichern"

Aber das will einfach nicht funktionieren.

In meiner Tabelle heißt das Feld, welches befüllt werden soll

Tabelle Massnahmen / Feld: [aktueller Wert]

in meinem Formular heißt das Feld logischerweise auch "aktueller Wert" - wobei ich den ja durch die Formel ersetzt habe.

Egal wie ich es mache, er übernimmt den Wert einfach nicht in meine Tabelle.

Ich habe folgendes probiert:

in meinem Feld in Formular welches "aktueller Wert" heißt und ich die Formel
=[Bestand]*[Wert je Aktie]
ergänzt habe. Dort bin ich unter
Eigenschaften / Ereignis und habe unter dem Punkt "Nach Aktualisierung" folgendes eingetragen:

Me![aktueller Wert] = Me![Bestand]*Me![Wert je Aktie]

aber egal wie ich es schreibe und mache und versuche. Er übernimmt einfach meinen Wert nicht.

Habe auch schon das Me![aktueller Wert] komplett ausgeschrieben inkl. dem Tabellennamen. 
Me![Massnahmen]![aktueller Wert] - aber auch das ohne Erfolg.
Was mache ich falsch?

DF6GL

Hallo,

falsch ist, dass die Formel ider Eigenschaft  "Steuerelementinhalt" des Textfeldes steht..  dort muss der Name des Tabellenfeldes, in das gespeichert werden soll, stehen. (Also so, wie es anfänglich war)

Der Berechungscode muss in einer Ereignis-PROZEDUR (nicht in der Eigenschaften-Zeile des Ereignisses) stehen. Also etwa so:

In der Eigenschaftenzeile "Nach Aktulisierung" des Textfeldes "Bestand":

[Ereignisprozedur]

Als Ereignisprozedur selber:

Sub Bestand_Afterupdate()
Me![aktueller Wert] = Me![Bestand]*Me![Wert je Aktie]
End Sub


Aber ich wiederhole auch die Frage von Donkarl:  WARUM soll dieser berechnete Wert gespeichert werden?

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

dobby110

Danke für die Hilfe, ich probiere es dann wie beschrieben.

Der Wert soll eingetragen werden, weil dieser für einen Bericht dient.
Das heißt bei jeder Massnahme, wird der aktuelle Gegenwert des Investments gespeichert.
Den Wert hätte ich besser in der Tabelle berechnen gelassen, in Form von einem "Berechnen" Feld.
Dann hätte ich die Problematik jetzt gar nicht, dass der Wert bei Eingabe einer Massnahme verlangt wird.




MzKlMu

Hallo,
ZitatDer Wert soll eingetragen werden, weil dieser für einen Bericht dient.
Das Abspeichern ist definitiv überflüssig. Du kannst das im Bericht genau so rechnen wie im Formular.

ZitatDen Wert hätte ich besser in der Tabelle berechnen gelassen, in Form von einem "Berechnen" Feld.
Nein, auch das wäre der falsche Weg.

Der bessere Weg ist in einer Abfrage zu rechen und dies Abfrage für Bericht und Formular zu verwenden:
AktuellerWert: [Bestand]*[Wert je Aktie]
Als berechnetes Feld in der Abfrage.

PS:
Auf Leer und Sonderzeichen sollte man bei allen Objekt und Feldnamen verzichten.
Gruß Klaus