Hallo,
ich benötige eine Abfrage in einer kleinen DB. Leider erhalte ich nie das erwartete Ergebnis.
Zum Probieren habe ich alles auf ein Minimum reduziert. Wenn es funktioniert und ich das verstehe möchte ich die DB mit richtigen Daten füllen.
Ich habe 3 Tabellen
tblArtikel:
Für alle Daten zu den Artikeln, Artikelnummer und Bezeichnung (reicht zum Probieren)
tblPreis:
Die Marktpreise schwanken, daher möchte ich zu unterschiedlichen Terminen diese notieren.
tblBuchung:
Zur Erfassung aller Daten. Wieviel Stück zu welchem Preis ge- oder verkauft wurden, Erfassung aller Kosten, und wenn diese einem Artikel zuordbar sind, auch die Artikelnummer. Es gibt auch Kosten die nicht einem Artikel zuordbar sind.
Auf einem Formular sind 2 Felder mit jeweils einem Datum. Darunter möchte ich die Bestände und den Preis der Artikel zu diesem Datum anzeigen.
Das müsste doch mit Unterformularen gehen. Allerdings bekomme ich die Abfragen nicht hin, mit denen ich die letzten Preise bzw. den Bestand zu den 2 Datumsfeldern erhalte.
Kann mir bitte jemand erklären wie diese Abfragen aufgebaut werden? (Bitte idiotensicher, bin Anfänger)
Danke
Ich sehe weder Abfragen noch Formulare in deiner DB.
Machen musst schon du selbst, wir können dir nur bei deinen Fragen helfen.
In Tabelle Preis gehört nicht ArtikelNr sondern ArtikelID (ID in der Tabelle Artikel)
Das selbe in deiner Tabelle Buchung.
Verknüpfen tut man immer über die ID-Werte, die sind eindeutig.
Gruß Andreas
Hallo,
in der angehängten Datei sind die Abfragen und Formulare mit meinen Versuchen.
Im Formular frmAnzeige sollen die Preise angezeigt werden.
Die anderen Formulare sind nur zur Dateneingabe (werden später anders dargestellt).
Im frmAnzeige sind 2 Datumsfelder zu denen die entsprechenden Preise angezeigt werden sollen.
Dazu ist das sfmWert. Im Moment nur 1mal für den ersten Datumswert.
Da beginnen schon meine Probleme. Meine Idee ist, dieses Formular über das Feld txtDat im sfmWert mit dem Feld txtDat1 im sfmAnzeige zu verknüpfen.
Für den zweiten Datumswert dann als zweites Unterformular entsprechend mit txtDat2.
Kann man das überhaupt so machen?
Gruß Klaus
Hallo Klaus,
Anbei kleine Korrektur des Datenmodells und des Buchungs-Forms.
Alles andere habe ich mir (noch) nicht angeschaut.
gruss ekkehard
Hallo Ekkehard,
vielen Dank.
Ja, so ist die Eingabe einfacher. Aber die Formulare waren nur gedacht um ein paar Daten einzugeben. Um solche Sachen wollte ich mich später kümmern, wenn ich sehe, dass ich meine Probleme in den Griff bekomme. Da muss vieles an den Formularen geändert werden.
Trotzdem vielen Dank. Für mich als Anfänger auch hilfreich.
Gruß Klaus
Hallo Klaus,
ZitatUm solche Sachen wollte ich mich später kümmern
Welche Sachen? So Geschichten wie die tblKostenstellen muss man als
allererstes machen. Ohne korrektes Datenmodell sollte man die Erstellung
von Oberflächenstrukturen gar nicht erst anfangen.
gruss ekkehard
Hallo,
ich würde mich schon über eine Antwort zu meiner Frage:
Zitat von: kun.klaus am Februar 04, 2020, 12:16:28
Dazu ist das sfmWert. Im Moment nur 1mal für den ersten Datumswert.
Da beginnen schon meine Probleme. Meine Idee ist, dieses Formular über das Feld txtDat im sfmWert mit dem Feld txtDat1 im sfmAnzeige zu verknüpfen.
Für den zweiten Datumswert dann als zweites Unterformular entsprechend mit txtDat2.
Kann man das überhaupt so machen?
freuen.
Wenn mir jemand sagt ob und wie man das macht, würde ich es gerne einbauen und dann das zweite Formular hinzufügen.
Ich möchte nur wissen, wie das geht. Zum Probieren und Üben ist das ausreichend.
Gruß Klaus
Hallo,
irgendwie verstehst Du es nicht..
Gerade zum Üben und für Anfänger ist ein korrektes Tabellenmodell ungemein nützlich, sprich erforderlich.
Siehe u. st. Links 1, 1a und 1b
Ohne diese Vorausetzungen brauchst Du, wie von Ekkehard schon erzählt, erst gar nichts mit Formularen anfangen.
Hallo Klaus,
Anbei nochmal Korrektur am DM (Tabellen und ID-Felder umbenannt, doppelten
FK in Buchungen entfernt). In der Preistabelle habe ich irgendwelche ArtikelIDs
in das FK-Feld eingetragen, desgleichen in tblBuchungen.
Dein UFo habe ich ins HFo frmArtikel eingebaut. Da siehst da alle Preise des
Artikels nach Datum abwärts sortiert. So kannst du auch neue Preise direkt
beim Artikel eingeben oder ändern.
Willst du nur die beiden letzten Preise sehen, ergänze die DS-Herkunft des
UFos wie folgt
SELECT TOP 2 P.DatPreis, P.PreisID, P.IdfArtikel, P.Preis
FROM tblArtikel AS A
INNER JOIN tblPreise AS P
ON A.ArtikelID = P.IdfArtikel
ORDER BY P.DatPreis DESC;
Wenn du das frmAnzeige unbedingt haben willst, kannst du das genauso auf-
bauen. Wenn's viele Artikel werden musst da dann noch was zum Finden ein-
bauen (üblich: ungebundenes Kombi).
Den Bestand kannst du über eine gruppierte Abfrage ermitteln.
gruss ekkehard
Hallo,
@Beaker s.a.
Vielen Dank, ich schaue mir dass an und werde mein Glück versuchen.
@DF6GL
Zitat von: DF6GL am Februar 05, 2020, 16:31:56
Hallo,
irgendwie verstehst Du es nicht..
Gerade zum Üben und für Anfänger ist ein korrektes Tabellenmodell ungemein nützlich, sprich erforderlich.
Siehe u. st. Links 1, 1a und 1b
Ohne diese Vorausetzungen brauchst Du, wie von Ekkehard schon erzählt, erst gar nichts mit Formularen anfangen.
Ja, im Prinzip hast Du Recht. Aber um Fahradfahren zu lernen benötigt man kein Rennrad.
Stelle Dir bitte mal vor, Du gehst spazieren und ein Radfahrer schiebt sein Rad mit einem Platten. Er fragt nach dem Radweg nach XY.
Erklärt man ihm den Weg, oder sagt man ihm, dass er zuerst den Platten reparieren soll, oder besser, gleich ein neues Rad kaufen soll und lässt ihn einfach stehen?
Mit der Auskunft zum Weg ist ihm sicherlich mehr geholfen als mit dem Hinweis auf den platten Reifen.
Ich wünsche allen einen schönen Abend
Gruß Klaus
Hallo,
wahrscheinlich wäre er aber schneller am Ziel wenn er den Reifen repariert, dann kann er nämlich wieder fahren.
Gerade wenn man lernen will, sollte man nicht auf falsche Wege abbiegen. Der Gesamtweg wird dann länger, weil man wieder zurück muss.
Hallo Klaus,
ZitatAber um Fahradfahren zu lernen benötigt man kein Rennrad.
Mit 'nem Dreirad wird das aber auch nichts.
gruss ekkehard
Hi,
warum nicht ein Einrad?
Na ja, ich schätze wer Einrad fahren kann, kann auch Fahrrad fahren; - ein
Dreiradfahrer eher nicht.
Hi,
man sollte Dreiradfahrer nicht so unterschätzen ;) :D ;D
EOOT
Hallo Franz,
ZitatEOOT
Den kannte ich auch noch nicht. Hoffentlich versteht's der TS und fühlt sich nicht abgewürgt.
gruss ekkehard
@kun.klaus
EOOT = End Of Off Topic
Du darfst also ruhig weitermachen, wenn du unsere Vorschläge zum DM dann wenigstens in Erwägung ziehst.