Neuigkeiten:

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

Mobiles Hauptmenü

Hilfe für Access-Datenbank

Begonnen von Ratoncito, Januar 14, 2020, 14:15:49

⏪ vorheriges - nächstes ⏩

Ratoncito

Hallo zusammen,

ich heiße Wolfgang, bin neu hier im Forum und hoffe auf Unterstützung und Hilfe zu einer Access-Datenbank.

Vor gut 15 Jahren habe ich mich zum ersten Mal mit Access beschäftigt und mehrere kleine Datenbanken erstellt. Die haben ihren Zweck erfüllt, aber die Programmierung war mehr als chaotisch. Vor einigen Jahren habe ich nochmals ein Projekt begonnen, dass mir dann aber letztendlich über den Kopf gewachsen ist und verworfen wurde.

Nun würde ich mich gerne nochmal an dieses Projekt wagen und würde mich freuen, wenn ich hier Unterstüzung erhalten könnte.

Zu dem Projekt:
Ich habe ein paar Aktien und Wertpapiere, deren Käufe, Verkäufe und Erträge ich gerne verwalten möchte. Nein, ich bin nicht reich, das reicht nur um meine Rente ein wenig aufzubessern. Seit gut 15 Jahren habe ich hierzu eine Excel-Tabelle die mit der Zeit immer größer und unübersichtlicher wird. Diese möchte ich gerne ersetzen.

Wenn jemand bereit ist, mir hierbei zu helfen, würde ich die benötigten Daten und Berechnungen in den benötigten Tabellen mal anführen um dies in die richtigen Normalformen zu bringen.

Alle Tabellen, Abfragen und Formulare möchte ich selbst erstellen. Mein Wunsch wäre, dass jemand dies kontrolliert und mich auf Fehler hinweist und mir an den Stellen weiterhilft, wo ich nicht mehr weiterkomme.

Allen die sich die Mühe machen wollen schon mal im Voraus vielen lieben Dank - Wolfgang

Hondo

Hallo Wolfgang,
erstmal willkommen hier.
Damit dir geholfen wird musst du konkrete Fragen stellen.

Gruß Andreas

DF6GL

Hallo,

lies zunächst die u. st. Links 1, 1a und 1b.

erstelle nach den dort beschriebenen Prinzipien Tabellen mit Deinen Daten und setze die in Beziehung zueinander.  Danach stellt Du den Screenshot des Beziehungsfensters hier vor und wir diskutieren dann darüber.

Formulare und Abfragen sind erst (viel) später Thema.


Ratoncito

Hallo,

vielen Dank für die Antworten. Die Beziehungen sind angefügt.

Hier eine kurze Erklärung was die DB mal anzeigen soll.

In der Datenbank sollen Käufe, Verkäufe, Erträge, Dividenden und Kurse zu verschiedenen Wertpapieren erfasst werden.

Angezeigt werden sollen die Gewinne/Verluste und Rendite zu den einzelnen Wertpapieren und zum gesamten Depot und die Kursentwicklung.

Noch einen schönen Abend - Wolfgang

PS
Schön, dass man hier noch ein wenig in Geografie abgefragt wird  ;D
Die Buchstaben sind allerdings manchmal nur schwer zu erkennen

DF6GL

#4
Hallo,

und wie hängen die Tabellen tblIsin und tblDepot zusammen? 

Benutze für die ID-Felder eindeutige und auf die entspr. Tabelle bezogenen Namen, z.B KontoID   für das ID-Feld in tblKonto..

Bei Fremdschlüsselfelder benutz den zugeordneten Primärschlüsselname und hänge "_f" daran oder nutze eine andere aber aussagekräftige Benamsung

Was ist "Termin1"?  Gibt es weitere Termine?  (Termine2, Termine3,  usw.)

Warum gibt es "Kurs" in "tblDepot" , wenn es doch eine Kurs-Tabelle gibt?  Und hat ein Depot einen "Kurs"?  Dito bei "Nennwert".

"tblIsin" könnte sinnvollerweise "tblWertpapiere" heißen.  Isin ist eine Wertpapiernummer und somit eine Eigenschaft eines Wertpapiers.




Ratoncito

Hallo Franz,
die DB habe ich schon angefangen, da sind weitere Beziehungen in den Abfragen.
Die DB ist im Anhang.

LG - Wolfgang

DF6GL

Hallo,

die Abfragen und Formulare kannst Du wegwerfen.

Die Beziehungen stimmen m. E. nicht und müssen korrigiert werden und damit die darauf aufbauenden Objekte (Forms, Abfrage, Berichte)

"Angefangen" lass ich gelten, nur hast Du auf falscher Basis weitergemacht.


In Abfragen gibt es keine Beziehungen, nur Verknüpfungen. Diese Verknüpfungen werden hauptsächlich von den grundlegenden Beziehungen bestimmt.

Meine Fragen hast Du nicht beantwortet.


Ratoncito

#7
Hallo Franz,

Beziehung / Verknüpfung
In Beziehungen werden die Verknüpfungen der einzelnen Tabellen untereinander angezeigt. Bis jetzt habe ich 4 Tabellen, von denen jeweils 2 miteinander verknüpft sind da sie in direkter Beziehung stehen. Müssen alle Tabellen miteinander verknüpft sein?

ZitatBenutze für die ID-Felder eindeutige und auf die entspr. Tabelle bezogenen Namen, z.B KontoID   für das ID-Feld in tblKonto..
Bei Fremdschlüsselfelder benutz den zugeordneten Primärschlüsselname und hänge "-f" daran oder nutze eine andere aber aussagekräftige Benamsung
"f" hatte ich angehängt bei der aus tblIsin benutzten ID in tblKurs und tblDepot. Übersichtlicher ist sicherlich die schreibweise "-f". Entsprechen "IdK" oder "Id-K" für ID aus tblKonto.
ZitatWas ist "Termin1"?  Gibt es weitere Termine?  (Termine2, Termine3,  usw.)
Ja gibt es. Eingetragen habe ich immer nur den ersten Termin, die restlichen werden durch die Anzahl der Termine bestimmt und automatisch in einer Abfrage erzeugt.

ZitatWarum gibt es "Kurs" in "tblDepot" , wenn es doch eine Kurs-Tabelle gibt?  Und hat ein Depot einen "Kurs"?  Dito bei "Nennwert".
In der tblKurs werden Tageskurse eingetragen. In der tblDepot werden bei Kauf/Verkauf die jeweiligen Kaufkurse eingetragen, die vom Tageskurs abweichen können. Bei Aktien oder Fonds werden Stück gehandlet bei Anleihen Nennwert.
Depot ist eine Bezeichnung in der der Bestand und Wert der Werpapiere angezeigt wird, im Konto entsprechend der Saldo.

Zitat"Angefangen" lass ich gelten, nur hast Du auf falscher Basis weitergemacht.
Steckt schon viel Arbeit drin, deshalb wollte ich gerne darauf aufbauen.

Mir ist klar, dass es einfacher ist, ein Projekt von Anfang an zu gestalten, als sich in ein bestehendes Projekt einzuarbeiten.

Ich würde auch alles verwerfen und nochmal von ganz vorne beginnen, wenn sich jemand bereit erklärt mir bis zum Ende zu helfen. Mit Hilfe meine ich dann die Lösung von Problemen (ich komme ganz sicher bei Verschachtelungen mit " ' () {} usw. an meine Grenzen) und nicht die zeitaufwändigen Fleißarbeiten.

LG - Wolfgang

DF6GL

Hallo,

zur Klarstellung:  Beziehungen sind keine Verknüpfungen.  Beziehungen (ref. Integrität)  werden von Access überwacht und gehändelt.

Verknüpfungen in Abfragen sollen definieren, mit welchen Feldern man eine Verbindung zu anderen Tabellen herstellen möchte.  Dies sind in der Regel auch genau die Beziehungen. Das muss aber nicht so sein, je nachdem, was Aufgabe und Ziel der Abfrage sein soll.


ZitatMüssen alle Tabellen miteinander verknüpft sein

Sobald sie in irgendeiner Form von anderen Tabellen (Daten)  abhängen und nicht reine Metadaten-Nachschlagetabellen sind: Ja.



Termine:  welche weiteren "Aufgaben" haben die berechneten Termine?


Tageskurse: Dann nenne das Feld aus so, dito Kaufkurs  in tblKurse.

Depot:  Depot ist keine Bezeichnung.  Depot ist (in etwa ähnlich) wie Konto eine Sammlung von Wertpapieren, die gekauft oder verkauft werden.  Die einzelnen Aktionen an einem solchen Wertpapier sind in einer Verlaufstabelle zu hinterlegen. Diese Tabelle sehe ich jetzt nicht.


ZitatMir ist klar, dass es einfacher ist, ein Projekt von Anfang an zu gestalten, als sich in ein bestehendes Projekt einzuarbeiten.

Auf wen beziehst Du das?   Wir (ich) arbeiten uns hier immer in schon bestehende Projekte ein, in den meisten Fällen jedenfalls..  ;)

wenn Du es auf Dich beziehst, glaube ich es nicht. Es wäre vermutlich einfacher und zielführender, sich die Zusammenhänge nochmals von vorne im Einzelnen zu verinnerlichen und eine besser der Realität entspr. Datenkonstellation zu erarbeiten.


Zitatwenn sich jemand bereit erklärt mir bis zum Ende zu helfen.

Das ist eigentlich Standard in diesem Forum...Es gibt sogar manchmal mehrere Personen, die Dir gleichzeitig helfen.. ;D


Verschachtelungen mit " ' () {} :   die sind bei der "Urschleimsuppe", sprich Tabellenaufbau und Normalisierung eh noch kein Thema.

Entsprechen "IdK" oder "Id-K" für ID :  Leichter Flüchtigkeitsfehler von mir:  Vermeide Leer- und Sonderzeichen bei der Namensgebung. Verwende statt "-" den Unterstrich "_".  (Habe das in meinem letzten Post  korrigiert.)


Ratoncito

#9
Hallo Franz,

Ende 2014 habe dieses Projekt aufgegeben, da ich mit meinen Kenntnissen nicht mehr weiterkam und habe meine Daten weiter in der vorhandenen Excel-Datei gespeichert. Die platzt bald aus allen Nähten.

Damals habe ich mich auch in einigen Foren umgesehen. Mit deren Hilfe bin ich bis zu einem gewissen Punkt gekommen, dann war Ende. Bei der jetzigen Datenbank bin ich bis zu der Version zurückgegangen, die ich noch (halbwegs) verstehe und klarkomme.
Meine größten Probleme war damals die Eingabe und Anzeige der Kurse, die in der Version gelöst ist. Aus dieser Zeit stammt auch die Aussage, dass man alle berechneten Felder nicht in Tabellen abspeichert sondern bei Bedarf über Abfragen erzeugt.

Ob das so stimmt kann ich nicht beurteilen. Seit damals habe ich auch nichts mehr mit Access gemacht, komme aber langsam wieder dahin, dass ich vieles wieder nachvollziehen kann.

ZitatTermine:  welche weiteren "Aufgaben" haben die berechneten Termine?
Die berechneten Termine haben keine weiteren Aufgaben, die sollen nur angezeigt werden.

Zu Bezeichnungen und Namen. Die möchte ich nur ungern ändern, da diese nicht überall dort wo sie verwendet werden automatisch geändert werden. Und mit dem Unterstrich stehe ich auf Kriegsfuss. Meine Frau hat einen in Ihrer Email-Adresse, der wird oft übersehen, z.Bsp. wenn etwas unterstrichen wird.

Ich bin eigentlich der Meinung, dass die vorhandenen Tabellen ausreichen um die benötigten Daten zu erfassen. Es gibt nur ein Formular, auf dem Daten angezeigt werden sollen und das funktioniert. Alles weitere sollte mit Berichten erledigt werden können.

ZitatDas ist eigentlich Standard in diesem Forum...Es gibt sogar manchmal mehrere Personen, die Dir gleichzeitig helfen.
Da liegt die Messlatte aber ganz schön hoch  ;D

Weitere Fragen beantworte ich gerne.

LG - Wolfgang

MzKlMu

Hallo,
wie bereits gesagt, sollten alle Tabellen in Beziehung stehen. Du solltest also erst mal vollständige Beziehuneg anlegen.
ZitatMeine Frau hat einen in Ihrer Email-Adresse, der wird oft übersehen, z.Bsp. wenn etwas unterstrichen wird.
Du verwechselst hier Feldeinträge (also Daten) mit Objekt und Feldnamen. Objekt und Feldnamen kriegt ja der Anwender der DB gar nicht zu sehen und hat auch damit gar nix zu tun. Als Daten kannst Du eintragen was Du willst, bzw. was passend und logisch ist.

PS:
Ich habe Deine farbenfrohe Darstelleung in Zitate geändert, bitte verwende zukünftig den Zitate Button und keine Farben.
Gruß Klaus

Ratoncito

#11
Hallo,

Zitat von: MzKlMu am Januar 15, 2020, 17:10:19
PS:
Ich habe Deine farbenfrohe Darstelleung in Zitate geändert, bitte verwende zukünftig den Zitate Button und keine Farben.
Werde mich bemühen

Zitat von: DF6GL am Januar 15, 2020, 13:25:27
ZitatMüssen alle Tabellen miteinander verknüpft sein

Sobald sie in irgendeiner Form von anderen Tabellen (Daten)  abhängen und nicht reine Metadaten-Nachschlagetabellen sind: Ja.
Meiner Meinung nach sind alle benötigten Beziehungen vorhanden. Es gibt 4 Tabellen von denen jeweils 2 miteinander verknüpft sind.

Alles was bis jetzt in den Formularen eingegeben oder angezeigt werden soll funktioniert.

Zitat von: MzKlMu am Januar 15, 2020, 17:10:19

ZitatMeine Frau hat einen in Ihrer Email-Adresse, der wird oft übersehen, z.Bsp. wenn etwas unterstrichen wird.

Du verwechselst hier Feldeinträge (also Daten) mit Objekt und Feldnamen. Objekt und Feldnamen kriegt ja der Anwender der DB gar nicht zu sehen und hat auch damit gar nix zu tun. Als Daten kannst Du eintragen was Du willst, bzw. was passend und logisch ist.

Der Anwender bin ich selbst, da die DB nur für mich ist. Ich sah da bis jetzt kein Problem dass der Name "Kurs" sowohl in der tblKurs sowie in der tblDepot vorkommt. Wenn es in einer DB Tabellen mit Adressen für Kunden, Lieferanten und Rechnungsadresse gibt, kommt Stadt, Straße und Hausnummer etc. sicherlich auch mehrmals vor.

Zu Bezeichnungen und Namen. Die möchte ich nur ungern ändern, da diese nicht überall dort wo sie verwendet werden automatisch geändert werden. Und mit dem Unterstrich stehe ich auf Kriegsfuss. Meine Frau hat einen in Ihrer Email-Adresse, der wird oft übersehen, z.Bsp. wenn etwas unterstrichen wird.
Damit meinte ich eigentlich den schon geschriebenen Code wie hier:
    strDatum = Format$(Nz(Me.cboDatumHeute1, Date), "dd.mm.yyyy")
    strSQL = "INSERT INTO tblKurs (IdF, DatumKurs )" _
        & "SELECT tblIsin.ID, '" & strDatum & "'" _
        & "FROM tblIsin; "
    Set db = CurrentDb
    CurrentDb.Execute strSQL, dbFailOnError

Zitat von: DF6GL am Januar 15, 2020, 13:25:27
Depot:  Depot ist keine Bezeichnung.  Depot ist (in etwa ähnlich) wie Konto eine Sammlung von Wertpapieren, die gekauft oder verkauft werden.  Die einzelnen Aktionen an einem solchen Wertpapier sind in einer Verlaufstabelle zu hinterlegen. Diese Tabelle sehe ich jetzt nicht.
Depot sehe ich nur einmal bei tblDepot. Ich habe die Tabelle nun mal so benannt. Alle Aktionen (außer die Erfassung von Kursen und der Eintrag von neuen Wertpapieren) die mit Geld in Zusammenhang stehen erfolgen über frmKonto in tblKonto und tblDepot. Die sind miteinander verknüpft und das Ergebnis dieser Transaktionen wird als Saldo in Euro im Formular Konto korrekt angezeigt.

Außer den Feldern IdF und IdK, die ich aber aus den oben genannten Gründen nicht in Id_F ändern möchte, sollte bis hierhin meiner Meinung nach alles ok sein.

LG - Wolfgang

MzKlMu

#12
Hallo,
ZitatMeiner Meinung nach sind alle benötigten Beziehungen vorhanden.
nein, das glaube ich nicht. Es fehlt die Beziehung zwischen Depot und Kurs. In beiden Tabellen ist ja das Feld Kurs vorhanden.
Was ich mich auch frage, wieso ist der Nennwert beim Depot ?
Ist der Nennwert nicht ein Merkmal des Wertpapiers ? Im Depot sind ja mehrere Wertpapiere ?
Wo ist denn in der Depottabelle das eigentliche Wertpapier hinterlegt ?
Die Wertpapiertabelle ist doch die Tabelle "tbllsin" (entnehme ich aus WPKN), sollte da die Depottabelle nicht eine Beziehung zu dieser Tabelle haben ?
Meiner Meinung nach fehlt hier noch eine Tabelle die als n:m Beziehung die Verbindung zwischen Depot und Wertpapier herstellt. In die Tabelle kommt auch der Kurs mit Datum.

ZitatWenn es in einer DB Tabellen mit Adressen für Kunden, Lieferanten und Rechnungsadresse gibt, kommt Stadt, Straße und Hausnummer etc. sicherlich auch mehrmals vor.
Nein, da irrst Du für die Adressen würde es nur eine Tabelle geben, mit einem Kennzeichen (als Fremdschlüssel auf eine Tabelle für Adressenarten) ob es einer Lieferadresse, Anschrift oder Rechnungsadresse ist. Auch Kunden und Lieferanten würde man in einer Tabelle führen, mit einer Kennung ob Kunde, Lieferant oder ggf. auch beides.

Der im Code gezeigte Unterstrich ist in Verbindung mit dem Leerzeichen nur eine Zeilenschaltung. Der kann auch entfallen.


PS:
Ich darf Dich mal zitieren:
ZitatMeiner Meinung nach sind alle benötigten Beziehungen vorhanden.
ZitatAlles was bis jetzt in den Formularen eingegeben oder angezeigt werden soll funktioniert.
Zitatsollte bis hierhin meiner Meinung nach alles ok sein.
Nur aus Deinem letzen Beitrag, das ist in Deinen anderen Beiträgen auch nicht viel anders.

Warum fragst Du eigentlich, wenn Du alles besser weist und nicht gewillt bist irgend einen Rat anzunehmen. Ich habe jedenfalls nichts gelesen in der Richtung.



Gruß Klaus

DF6GL

Hallo,

nur die Frage:

Steht tblIsin nicht mit tblDepot in Verbindung? Soll heißen, liegt ein Isin-Wertpapier nicht in einem Depot?

Wenn das verneint wird, musst Du die realen Datenzusammenhänge genauer erläutern.


In Deinem SQL-Beispielcode sehe ich keinen Unterstrich, der die Namensgebung von Objekten betrifft.  Der Unterstrich in der Codezeile ist lediglich Syntax des VBE und der Hinweis an das VDE, einen Zeilenumbruch im Editor darzustellen. Der hat für weitere Abarbeitung keinerlei Bedeutung.

Zudem frage ich mich, wozu diese Insert-Anweisung gut sein soll, dazu noch mit falscher Datums-Formatierung.


Zitatdie ich aber aus den oben genannten Gründen nicht in Id_F ändern möchte,

Du kannst die Felder nennen wie Du willst, solange keine Sonder- und Leerzeichen verwendet werden.
"-" ist ein Sonderzeichen, "_" nicht.  Wenn Du das nicht beachtest, machst Du Dir das Leben schwer..

Eine durchgängige und aussagekräftige Benamsung fördert die Transparenz und die Hilfebereitschaft.

Ratoncito

Hallo Franz,
entweder wir reden aneinander vorbei oder ich habe ein Verständnisproblem.
Zitat von: DF6GL am Januar 15, 2020, 19:51:33
nur die Frage:
Steht tblIsin nicht mit tblDepot in Verbindung? Soll heißen, liegt ein Isin-Wertpapier nicht in einem Depot?
Wenn das verneint wird, musst Du die realen Datenzusammenhänge genauer erläutern.
Die DB funktioniert, ich kann alles eingeben und anzeigen was bis jetzt gewünscht ist. Wenn noch Beziehungen eingetragen werden müssen dann sage mir bitte wo und was.

Die DB startet mit frmStart. Hier hat man 3 Möglichkeiten:

1. Kurse
In diesem Formular werden die Kurse ausgewählter Wertpapiere (Status in tblIsin=1) angezeigt. Das Datum kann ausgewählt bzw. auch ein neuer Datensatz zu einem neuen Datum erzeugt werden. Außerdem können Filter für die Anzeige verschiedener Wertpapierarten gesetzt werden.

2. Wertpapiere
In diesem Formular werden neue Wertpapiere eingetragen.

3. Konto
In diesem Formular wird der aktuelle Saldo des Kontos angezeigt und alle Aktivitäten die mit Geld zusammenhängen eingetragen.

Zitat von: DF6GL am Januar 15, 2020, 19:51:33
In Deinem SQL-Beispielcode sehe ich keinen Unterstrich, der die Namensgebung von Objekten betrifft.  Der Unterstrich in der Codezeile ist lediglich Syntax des VBE und der Hinweis an das VDE, einen Zeilenumbruch im Editor darzustellen. Der hat für weitere Abarbeitung keinerlei Bedeutung.
Zudem frage ich mich, wozu diese Insert-Anweisung gut sein soll, dazu noch mit falscher Datums-Formatierung.
Ich habe nicht geschrieben, dass ich irgendwo einen Unterstrich in den Namen verwende, sondern lediglich dass ich ihn nicht mag, da er bei Unterstreichungen nicht sichtbar ist.
Du hättest gerne die Bezeichnungen IdF und IdK geändert. Dazu habe ich geschrieben, dass ich die nicht ändern möchte, da die Änderung nicht überall (z.Bsp. in dem Beispielcode) automatisch geändert werden. Zukünftig können wir gerne andere Bezeichnungen verwenden.

Wenn die Datumsformatierung falsch ist ändere ich das gerne ins richtige Format. Sage mir bitte welches Format richtig ist.

Diese Anweisung fügt einen neuen Datensatz zur Erfassung der Kurse zu einem neuen Datum ein.

Zitat von: DF6GL am Januar 15, 2020, 19:51:33
Du kannst die Felder nennen wie Du willst, solange keine Sonder- und Leerzeichen verwendet werden.
"-" ist ein Sonderzeichen, "_" nicht.  Wenn Du das nicht beachtest, machst Du Dir das Leben schwer..

Ich habe keine Sonder- oder Leerzeichen verwendet.

LG - Wolfgang