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,

in den Beziehungen habe ich tblDepot mit tblIsin verknüpft. Hoffe mal, dass es so richtig ist.

LG - Wolfgang

DF6GL

Hallo,

bin mir nicht sicher...  Wissen kannst nur Du es selber.


Was ist denn das "Konto" überhaupt?  Es scheint mir, als sind damit Kontobewegungen (also Ein-/Auszahlungen bei einem Giro) gemeint und nicht ein Bankkonto,das man bei einer Bank angemeldet hat.



Ratoncito

Hallo Franz,

entschuldige bitte, wenn ich das jetzt mal ein wenig direkt sage, aber allmählich fühle ich mich ein wenig veräppelt.

Zitat von: DF6GL am Januar 16, 2020, 13:50:24
bin mir nicht sicher...  Wissen kannst nur Du es selber.

Was ist denn das "Konto" überhaupt?  Es scheint mir, als sind damit Kontobewegungen (also Ein-/Auszahlungen bei einem Giro) gemeint und nicht ein Bankkonto,das man bei einer Bank angemeldet hat.

"Konto" ist ein Name oder Bezeichnung, könnte auch "ABC" oder "123" oder sonstwie heißen. Das ist doch egal, das hat doch nichts mit der Funktion der DB zu tun.

Die Funktionen der DB habe ich in meinem vorletzten Beitrag beschrieben.

Zitat von: Ratoncito am Januar 16, 2020, 09:56:48
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.

Und zu der Frage gibt es auch keine Antwort.
Zitat von: Ratoncito am Januar 16, 2020, 09:56:48

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.

Wenn das Datumsformat in diesem Beispielcode falsch ist, dann sind auch bestimmt die weiteren verwendeten Datumsformatierungen falsch.
Dann lass mich bitte wissen wie es richtig sein soll, damit ich das ändern kann.

LG - Wolfgang

MzKlMu

Hallo,
ein Datum muss in SQL zwingend im US Format (mm/dd/yyyy) oder im ISO Format (yyyy/mm/dd) übergeben werden. Außerdem in # eingeschlossen.
ZitatstrDatum = Format(Datumsfeld, "\#yyyy\-mm\-dd\#")

Franz geht es doch nicht um den Namen Konto, sondern es es geht um die Funktion dieser Tabelle die Konto heißt. Die könnte auch ABC heißen, was aber die Frage nach der Funktion auch nicht beantwortet. Deine Antwort zur Kontentabelle ist unklar.

Den Hinweis zum Unterstrich hast Du auch noch nicht verstanden. Der Unterstrich ist ein sehr gutes Mittel Feld und Objektnamen deutlicher zu Benamsen. Und wegen der Unterstreichungen musst Du Dir auch keine Gedanken machen, dort wo man sinnvollerweise den Unterstrich einsetzt (bzw. einsetzen sollte), kann
Zitatnicht
unterstrichen werden.
Die Hinweise zur Benamsung sind doch nur gut gemeinte Ratschläge die Dir im weiteren Verlauf den Umgang mit der DB erleichtern.

Zu meiner ausführlichen Antwort in #12 hast Du auch kein Wort verloren.
Hast Du das gelesen ?

Egal, wie dem auch sei, das war mein letzter Beitrag in diesem Thema.
Gruß Klaus

Ratoncito

Hallo Klaus,

Zitat von: MzKlMu am Januar 16, 2020, 18:32:57

Zu meiner ausführlichen Antwort in #12 hast Du auch kein Wort verloren.
Hast Du das gelesen ?


Sorry, den Beitrag #12 habe ich wohl übersehen.
Ich muss mir das zum Datum in Ruhe ansehen und werde es ändern und ausprobieren. Bei dem Datum und den SQL-Anweisungen habe ich mich unheimlich schwergetan. Das war auch mit ein Grund warum ich damals aufgegeben habe.

Zitat von: MzKlMu am Januar 16, 2020, 18:32:57
Franz geht es doch nicht um den Namen Konto, sondern es es geht um die Funktion dieser Tabelle die Konto heißt. Die könnte auch ABC heißen, was aber die Frage nach der Funktion auch nicht beantwortet. Deine Antwort zur Kontentabelle ist unklar.

Hatte ich hier beschrieben:
Zitat von: Ratoncito am Januar 16, 2020, 09:56:48
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.

Jetzt gibt es erstmal Abendessen und morgen bin ich unterwegs. Wird etwas dauern bis ich das probiert habe.

LG - Wolfgang

DF6GL

Ja,

ich klinke mich auch aus. Hat keinen Zweck weiter in diesem Thread.

Ratoncito

Hallo,

nun gut, wenn man mir nicht mehr antworten möchte muss ich das respektieren.

Ganz ohne Kommentar möchte ich das aber nicht stehen lassen.

Ja, den Beitrag #12 habe ich übersehen und deshalb nicht sofort darauf geantwortet. Sorry.

Zu Beginn wurde nach den Beziehungen gefragt und eine fehlende Beziehung bemängelt.
Dazu meine Frage

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.

Daraufhin habe ich eine Beziehung eingefügt.

Zitat von: Ratoncito am Januar 16, 2020, 12:27:46

in den Beziehungen habe ich tblDepot mit tblIsin verknüpft. Hoffe mal, dass es so richtig ist.


Zitat von: DF6GL am Januar 16, 2020, 13:50:24

bin mir nicht sicher...  Wissen kannst nur Du es selber.


Die Antwort ist schon ein wenig seltsam, denn wenn ich es wissen würde hätte ich nicht gefragt. Und ob es nun richtig ist, weiß ich immer noch nicht.

Dann ging es noch um Namen von Tabellen und Formularen.
Dazu hatte ich bemerkt, dass ich die DB bereits begonnen habe und gerne darauf aufbauen würde.

Zitat von: DF6GL am Januar 14, 2020, 21:34:21

die Abfragen und Formulare kannst Du wegwerfen.


Die Antwort muntert auf. Einfach annehmen, dass alles was man bis dahin gemacht hat unbrauchbar ist, und die Tonne gehört, ist nicht gerade freundlich.

Eine kurze Beschreibung was in den einzelnen Formularen gemacht und wo gespeichert werden soll habe ich geschrieben.
Dazu habe ich erklärt, warum ich die Namen, wenn es nicht unbedingt sein muss, nicht ändern möchte, und habe ein Code-Beispiel angeführt.

Zitat von: Ratoncito am Januar 15, 2020, 18:40:30

    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


Darin ist wohl das verwendete Datumsformat falsch.

Zitat von: MzKlMu am Januar 16, 2020, 18:32:57

ein Datum muss in SQL zwingend im US Format (mm/dd/yyyy) oder im ISO Format (yyyy/mm/dd) übergeben werden. Außerdem in # eingeschlossen.
ZitatstrDatum = Format(Datumsfeld, "\#yyyy\-mm\-dd\#")


Alle meine Versuche das Datumsformat zu ändern haben immer eine Fehlermeldung mit ,,Fehler in Kriterienausdruck" zur Folge.
Aber eigentlich war ich der Meinung, dass in der Anweisung ein neuer Datensatz zum Eintragen neuer Kurse mit dem ausgewählten Datum in der tblKurs angelegt wird. In dieser Tabelle wird das Datum in der Schreibweise TT.MM.JJ eingetragen, und daher so als Zeichenfolge für das Feld DatumKurs übergeben.
Das ist dann wohl falsch.

Damit wären wir bei dem Punkt, warum ich dieses Thema hier begonnen habe. Kontrolle der bestehenden DB und Hilfe bei den weiteren Funktionen.

Grundlegende Fehler werde ich korrigieren.

Bei den Namen und Bezeichnungen gibt es Kritik. Bei der Erstellung der DB habe ich mir schon Gedanken gemacht was ich wo und wie benenne, und habe Bezeichnungen gewählt, die für mich den Zweck und die Verwendung klar beschreiben. Dass es da eindeutigere Bezeichnung geben kann habe ich verstanden und werde es sicherlich zukünftig umsetzen.

Aus welchem Grund ich dies nicht in dieser DB ändern möchte hatte ich auch erklärt und hat nichts mit Ignoranz zu tun.

Schade, wenn es nun nicht weitergeht.

Danke und noch ein schönes Wochenende - Wolfgang



DF6GL

Hallo,

Zitatbin mir nicht sicher...  Wissen kannst nur Du es selber.
war die Antwort auf
Zitatin den Beziehungen habe ich tblDepot mit tblIsin verknüpft. Hoffe mal, dass es so richtig ist.

Ich bin mir nicht sicher, ob diese Beziehung überhaupt anhand Deiner realen Datensituation zutrifft. Die kenn ich ja nicht..

D. h. auch, dass Du es wissen musst, mit welchen Daten und Zusammenhängen Du es zu tun hast.

Wir wissen es nicht, wenn Du unsere Fragen, die ja einen Hintergrund haben, nicht klar beantwortest.

Zitatist nicht gerade freundlich.

das hat nichts mit "Freundlichkeit" zu tun. Es ändert nichts an der Tatsache, dass die DB vermutlich nicht so brauchbar ist, soll heißen, das erwartete Ziel nicht erreichbar ist. Wenn Du diese Feststellung als "unfreundlich" auffasst, kann ich daran nichts ändern.

Du könntest ja mal versuchen, das grundlegende Konzept und die Konstellation der vorhandenen Daten hier vorzustellen, ohne Tabellen, Forms und Code zu benutzen.






MzKlMu

Hallo,
wunderst Du Dich ß
Ich nicht. In meiner Antwort in #12 habe ich bereits im 1.Absatz einige Anmerkungen und Fragen.
Dazu hast Du immer noch nichts gesagt.
Und wie ich bereits in #12 auch angemerkt habe, bist Du nicht wirklich bereit etwas zu ändern.
Fast zu jedem Vorschlag sagst Du will ich nicht es geht doch.
Du muss auch bedenken, man hat keine Ahnung von dem Thema und auf das angewiesen ist was Du sagst bzw. erklärst.
Ich jedenfalls habe die Zusammenhänge der Tabellen immer noch nicht richtig verstanden, weil ich aus den Tabellennamen nichts ableiten kann.

Für meine Begriffe solle die Db aus folgenden Tabellen bestehen:
- Konto
- Wertpapier
- Depot (mit Fremdschlüssel zum Konto und FS zum Wertpapier)
- Kurse (mit FS zum Wertpapier)

Die 4 Tabellen sollten alles abdecken.


ZitatAber eigentlich war ich der Meinung, dass in der Anweisung ein neuer Datensatz zum Eintragen neuer Kurse mit dem ausgewählten Datum in der tblKurs angelegt wird.
Wozu brauchst Du hier eine Abfrage, verwendest Du keine gebunden Formulare.
Zum Schreiben von Daten braucht man bei Access keinen Code, das kann Access serienmäßig von ganz alleine sehr gut.
ZitatIn dieser Tabelle wird das Datum in der Schreibweise TT.MM.JJ eingetragen,
Das Format das in der Tbelel angelgt ist, ist völlig bedeutungslos. Es geht um die Übergabe das Datums an die Abfrage. Die Problematik ist die unterschiedliche Schreibweise das Datums mal Tag, Monat und mal Monat Tag. Daher muss das vereinheitlicht werden.
Das Datum ist im Hintergrund in der TAbelel ohnehin eine Zahl das Typs Double.
Daher kann die ganze Datumsformatierung einfach umgehen, in dem man das Dateum in eine Zahl wandelt.
    dblDatum = CDbl(Nz(Me.cboDatumHeute1, Date)
    strSQL = "INSERT INTO tblKurs (IdF, DatumKurs)" _
        & " SELECT tblIsin.ID, " & dblDatum _
        & "FROM tblIsin"

Vor Select fehlt noch ein Leerzeichen.
Aber wie gesgt, die Abfrage sollte gar nicht notwendig sein.



Gruß Klaus

Ratoncito

Hallo,

mit einer Antwort hatte ich eigentlich nicht mehr gerechnet. Aber da ihr beide recht ausführlich geantwortet habt - vielleicht beginnen wir nochmal von vorne?

Ich glaube, dass wir teilweise aneinander vorbeigeredet haben. Zu dem Schluss komme ich besonders beim Lesen des letzten Beitrages.

Zum Teil geht es auch um Fachbegriffe.

Zitat von: MzKlMu am Januar 19, 2020, 18:55:19

ZitatAber eigentlich war ich der Meinung, dass in der Anweisung ein neuer Datensatz zum Eintragen neuer Kurse mit dem ausgewählten Datum in der tblKurs angelegt wird.
Wozu brauchst Du hier eine Abfrage, verwendest Du keine gebunden Formulare.
Zum Schreiben von Daten braucht man bei Access keinen Code, das kann Access serienmäßig von ganz alleine sehr gut.
ZitatIn dieser Tabelle wird das Datum in der Schreibweise TT.MM.JJ eingetragen,
Das Format das in der Tbelel angelgt ist, ist völlig bedeutungslos. Es geht um die Übergabe das Datums an die Abfrage. Die Problematik ist die unterschiedliche Schreibweise das Datums mal Tag, Monat und mal Monat Tag. Daher muss das vereinheitlicht werden.
Das Datum ist im Hintergrund in der TAbelel ohnehin eine Zahl das Typs Double.
Daher kann die ganze Datumsformatierung einfach umgehen, in dem man das Dateum in eine Zahl wandelt.
    dblDatum = CDbl(Nz(Me.cboDatumHeute1, Date)
    strSQL = "INSERT INTO tblKurs (IdF, DatumKurs)" _
        & " SELECT tblIsin.ID, " & dblDatum _
        & "FROM tblIsin"

Vor Select fehlt noch ein Leerzeichen.
Aber wie gesgt, die Abfrage sollte gar nicht notwendig sein.


Zum Beispiel kann ich die Frage zum gebundenen Formular nicht beantworten.
Und alles was mit Datum und SQL zusammenhängt hat mich zur Verzweiflung gebracht.

Wie immer im Leben führen viele Wege zum Ziel, manche davon sind oft beschwerlich. In meiner DB ist das Formular Kurse das Ergebnis unzähliger Versuche und hat mich Nerven gekostet, bis es das angezeigt hat, was ich mir vorgestellt habe.

Wenn Ihr bereit seit nochmal von vorne zu beginnen würde ich versuchen so genau wie möglich das zu beschreiben, was die DB am Ende können soll. Dazu würde ich dann aber ein neues Thema aufmachen.

Noch einen schönen Abend - Wolfgang

MzKlMu

Hallo,
dann fang halt mal an.
Aber bitte verwende Namen für die Tabellen und Feldnamen die selbsterklärend sind, auch für einen Laien in der Materie.
Gruß Klaus

Ratoncito

#26
Hallo,

bevor ich jetzt neu anfange noch folgende Fragen:

Wenn ich das richtig verstehe kann ich in den Tabellen statt Datum das Feld als Zahl anlegen?
Das Datum ist dann ja nur der ganzzahlige Teil, da ich ja keine Uhrzeiten benötige?
Welcher Feldatentyp muss dann verwendet werden? Double oder Long Integer?

Gruß - Wolfgang

MzKlMu

Hallo,
nein, natürlich nicht. Das habe ich auch nicht so gemeint. Ein Datum sollte immer mit dem Datentyp "Datum/Uhrzeit" angelegt werden. Nur dann funktionieren die Datumsfunktionen ohne Umstände.

PS:
Bitte beschränke Dich mit Zitaten auf das notwendigste. Dein Zitat oben habe ich z.B. gelöscht. Wird hier nicht benötigt, da man erkennt was Du meinst.
Das sparsame Zitieren hat ganz einfache praktische Hintergründe.
Jedes Zitat verlängert den Beitrag und das Thema wird immer länger und verteilt sich auf mehr Seiten als notwendig. Es ist also keine Schikane, sondern nur sinnvoll.
Gruß Klaus

Ratoncito

Schade,

ich hatte gehofft, dass man das ganze Datumgemüse umschiffen kann. Da habe ich nicht nur einmal größere Probleme mit gehabt.

Für den Neuanfang mache ich besser ein neues Thema auf. Der ganze Beitrag könnte dann eigentlich gelöscht werden.

Gruß - Wolfgang

MzKlMu

Hallo,
Zitatich hatte gehofft, dass man das ganze Datumgemüse umschiffen kann.
Das Datum ist ganz einfach zu handhaben. Da ist nix kompliziert. Du machst dir das selber kompliziert.
Wie bereits mehrfach gesagt, dürfte die ganze Abfrage ohnehin überflüssig sein.
In einer Access Datenbank benögt man keine Abfragen zum Schreiben der Daten in Tabellen, das macht Access automatisch wenn man gebundene Formulare verwendet.
Gebunden heißt, dass das Formaular eine Datenquelle (Tabelle/Abfrage) hat und die Formularfelder an die entsprechenden Tabellenfelder gebunden sind.
Das heißt, Steuerelementinhalt des Feld = Name des Tabellenfeldes.
Dann wird alles was im Formular eingetragen wird automatisch ohne Rückfrage in der/den Tabelle/n gespeichert.
Da braucht es keinen Code, keinen Buchstaben.
Gruß Klaus