Neuigkeiten:

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

Mobiles Hauptmenü

Abfrage erstellen

Begonnen von kun.klaus, Februar 03, 2020, 18:17:58

⏪ vorheriges - nächstes ⏩

kun.klaus

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


Hondo

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

kun.klaus

#2
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

Beaker s.a.

Hallo Klaus,
Anbei kleine Korrektur des Datenmodells und des Buchungs-Forms.
Alles andere habe ich mir (noch) nicht angeschaut.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

kun.klaus

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

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

kun.klaus

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

DF6GL

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.
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

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

kun.klaus

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

MzKlMu

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.
Gruß Klaus

Beaker s.a.

Hallo Klaus,
ZitatAber um Fahradfahren zu lernen benötigt man kein Rennrad.
Mit 'nem Dreirad wird das aber auch nichts.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

Hi,

warum nicht ein Einrad?
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

Beaker s.a.

Na ja, ich schätze wer Einrad fahren kann, kann auch Fahrrad fahren; - ein
Dreiradfahrer eher nicht.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

Hi,

man sollte Dreiradfahrer nicht so unterschätzen   ;) :D ;D

EOOT
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