Neuigkeiten:

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

Mobiles Hauptmenü

Anfügeabfrage

Begonnen von pahiti78, August 31, 2012, 16:12:12

⏪ vorheriges - nächstes ⏩

pahiti78

Hallo Zusammen,
Ich habe folgendes Problem: Ich habe eine Db namens Lagerbuch. Dort werden Lademittel erfasst. Lademittel sind Holzpaletten, genannt Europaletten, Gitterboxen usw. Es kommen also täglich mehrere Fahrzeuge und laden und entladen diese Lademittel. Es kommt fast immer vor, dass bei einer Entladung mehrere Lm unterschiedlicher Art auf einmal abgegeben werden. Insgesamt gibt es 12 verschiedene Arten dieser Ladehilfsmittel. Also hat man sich bisher darauf geeinigt pro Buchung Zu-als auch Abgang drei unterschiedliche Ladehilfsmittel oder Lh verbuchen zu können. Statistisch gesehen wird diese Anzahl unterschiedl. Lh pro Be- oder Entladung kaum überschritten. Es existieren somit in einer Tabelle bzw Formular drei Kombifelder, in denen man dreimal pro Datensatz ein bestimmte Lh-art aussuchen kann. Dann existieren pro Kombifeld jeweils ein Feld Eingang (entladung) und ein Feld Ausgang oder Beladung. Somit existieren in der Tabelle die Felder Lh1-lh3 und Eingang1-3, als auch Ausgang1-3. Eine Abfrage muss dann die Sollbestände jeLh ermitteln und dies anzeigen. Weiterhin müssen Umschlagskosten usw. ermittelt werden und Differenzen zu Zähl(Istbeständen).  Meine Frage ist, gibt es eine Möglichkeit, dass ich im Formular alle sechs Felder Lh1-3 eingang/ausgang1-3 benutzen kann und in der Tabelle nur ein Feld angesprochen wird ( 1xLh;1xEingang und1xAusgang) Meine Idee hierzu war sechs Anfügeabfragen zu integrieren und dann die Felder Lh2-3 usw zu exportieren. Habt ihr ne bessere Idee? Ich hoffe nur, dass ich es verständlich beschreiben konnte.
Gruß
Matze

oma

Hallo pahiti,

ZitatAlso hat man sich bisher darauf geeinigt pro Buchung Zu-als auch Abgang drei unterschiedliche Ladehilfsmittel oder Lh verbuchen zu können

und was ist, und wenn sich das einmal ändert??

Ich würde soll eine Festlegung nicht starr übernehmen, ein Programm  sollte doch stets flexibel gegenüber Änderungen sein.
Was spricht (statt dieser Aufzählungsfelder) gegen eine 2. Tabelle Ladung u. eine 1:n Beziehung zur Tabelle Lagerbuch?

Gruß Oma
nichts ist fertig!

pahiti78

Hallo Oma,

sorry aber ich weiss nicht was du meinst. Wenn ich eine zweite Tabelle fülle, muss ich doch auch das Datum zweimal eintragen und auch in nem anderen Formular?
Gruß
Matze

oma

Hallo,

ZitatWenn ich eine zweite Tabelle fülle, muss ich doch auch das Datum zweimal eintragen und auch in nem anderen Formular?

nein, überhaupt nicht, du Hast ein Formular Lagerbuch (z.B. in Einzelformularansicht) mit Datenherkunft  Tabelle Lacherbuch und ein Unterformular mit Tabelle Lager (z.B. in Tabellenansicht) Die jeweiligen Datensätze sind über eine ID verknüpft. Nun kannst  du zu einem Ladevorgang beliebig viele Ladehildmittel mit Ein- u. Ausgang in einem Formular verwalten.


Gruß Oma
nichts ist fertig!

pahiti78

Hallo Oma,

ich habe mal eine ähnlich Db geschrieben. So in etwa sieht das echte Formular auch aus. Die Tabelle ist genauso aufgebaut. In der Abfrage habe ich mal den Eingang pro Flachpalette (FP) berechnen lassen. Du siehst, dass dadurch Auswertungen extrem schwierig werden. :)
Tut mir leid mit der zweiten Tabelle... das kapier ich einfach nicht.

[Anhang gelöscht durch Administrator]
Gruß
Matze

oma

Hallo,

ich kenne deine ganzen Bedingungen zur DB natürlich nicht, aber so wie im Beispiel (wahrscheinlich dann mit weiteren Feldern in den jeweiligen Tabellen) könnte es wohl gehen. Hier kannst du zu einem Vorgang beliebig viele Lademittel erfassen.

Ansonsten sind noch einige prinzipielle Dinge anzumerken, u.a. benutze keine Nachschlagefelder in den Tabellen!

Gruß Oma

[Anhang gelöscht durch Administrator]
nichts ist fertig!

pahiti78

Hallo Oma,

danke erstmal für die Bereitstellung. Aber wir haben ein bißchen an der Funktionalität dieses Programmes vorbei geredet.
Es ist zu verstehen, wie ein Kassenbuch, nur dass kein Geld sondern verschiedenste Umschlagsgüter "ein- und ausgezahlt werden".

Ich habe mal in meinem Formular "Formular1" noch drei Felder angehängt, welche sich auf die Abfrage qry_Lagerbuch beziehen. Wenn du siehst wie schwierig es ist, aufgrund der drei Eingangsfelder, lediglich den Eingang eines einzigen LM zu berechnen, kannst du dir vorstellen wie lang meine Abfrage bei 10 verschiedenen Lademitteln ist und es sollen weitere folgen. Für den Ausgang müsste ich dann genauso viele Felder, in der Abfrage, anlegen. Als ich mir deinen SQL Filter vor zwei Tagen angeschaut habe, möchte diese Datensätze auch so filtern.....aber nicht nur dass es müssen Abfragen und Berichte gemacht werden.
Dennoch möchte ich nicht weg, von der Eingabe von drei verschiedenen Eingängen/Ausgängen pro Buchungsvorgang. Ich möchte es dann erreichen, dass in einer Tabelle tbl_LagerbuchSowärEsAmBesten alle Buchungen als seperater Datensatz erscheinen. Somit soll dann das Lademittel2 im Feld  tbl_LagerbuchSowärEsAmBesten.Lademittel und das Lademittel drei als neuer Datensatz in  tbl_LagerbuchSowärEsAmBesten.Lademittel erscheinen. Beim Ein- und Ausgang muss es dann genauso sein.

[Anhang gelöscht durch Administrator]
Gruß
Matze

ebs17

#7
ZitatWenn du siehst wie schwierig es ist, aufgrund der drei Eingangsfelder, lediglich den Eingang eines einzigen LM zu berechnen ...
Daher arbeitet man in einer Datenbank zeilenorientiert und ist in der Lage, mit SQL ein mächtiges Instrument der Massendatenverarbeitung einzusetzen.
Mit der richtigen Datenstruktur geht es nicht nur einfach, sondern auch sehr schnell.

Wenn man dann nur ein Feld für diese Geschichten hat, erspart man sich Anfügeabfragen: Arbeit, die nicht zu machen ist, ist am schnellsten erledigt.

MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard

DF6GL

Hallo,

prinzipiell sollte das so aussehen... Je nach Datenzusammenhängen müssen einge Tabellen noch hinzu und die Kombifelder angepasst werden. Zugänge sind durch positive Bewegungs-Werte, Abgänge durch negative definiert.   


[Anhang gelöscht durch Administrator]
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

oma

Hallo,

ZitatWenn du siehst wie schwierig es ist, aufgrund der drei Eingangsfelder, lediglich den Eingang eines einzigen LM zu berechnen, kannst du dir vorstellen wie lang meine Abfrage bei 10 verschiedenen Lademitteln ist und es sollen weitere folgen

nein, das das kann ich nicht sehen. Ich weiß nicht, was du zu berechnen hast, kann mir aber nicht vorstellen, dass es so schwierig sein soll. Schwierig wird es nur bei einem falschen Datenmodell, so wie du es machst.

Stelle doch mal dar, was du zu machen hast und warum das bei 3 Feldern so schwierig sein soll.

ZitatMit der richtigen Datenstruktur geht es nicht nur einfach, sondern auch sehr schnell.

Was ebs sagt, ist wohl richtig

Gruß Oma
nichts ist fertig!

pahiti78

Hallo Zusammen,

ich habe meine DB nun ein Feld begrenzt und dank Donkarl kann ich jetzt bei der Eingabe bestimmte Datenfelder direkt aus dem vorherigen Datensatz übernehmen. Dies spart dann auch ungemein Arbeit. Ich habe aber beim Thema Anfügeabfreg noch eine Frage. Kann man eine solche Abfrage so stricken, dass Access nur Datensätze übernimmt, welche durch das Vorsystem oder der "Exporttabelle" verändert oder neu hinzugekommen sind. Wenn so etwas funktioniert, könnte mal jemand schreiben wie? Danke schonmal
Gruß
Matze

ebs17

Zitatdass Access nur Datensätze übernimmt, welche durch das Vorsystem oder der "Exporttabelle" verändert oder neu hinzugekommen sind
Na klar. Im einfachsten Fall dadurch, indem das Vorsystem ein zusätzliches Timestamp-Feld führt, mit dem Neuanlegungen oder Editierungen dokumentiert werden und das gegen einen gemerkten letzten Abgleich verglichen werden kann.

MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard