Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfrage aus mehreren nicht verknüpften Tabellen

Begonnen von AccessStarter, August 12, 2016, 15:28:55

⏪ vorheriges - nächstes ⏩

AccessStarter

Hallo zusammen,

leider bin ich erst am Start meiner Access Karriere und deswegen noch sehr unbeholfen.

Ich habe folgendes Problem.

Ich habe eine Tabellenstruktur wie in dem angehängten Foto abgebildet.

Ich habe eine Basisliste, wo alle Sachnummern vermerkt sind ohne Duplikate.
Zur besseren Übersichtlichkeit habe ich für jede Kostenposition dieser Sachnummer eine extra Tabelle erstellt (im Foto Tabelle 1 und 2). Diese Tabellen werden fortlaufend mit den Kosten pro Monat und Jahr gefüllt. Es sind also Duplikate der Sachnummern in der Liste vorhanden.

Ich möchte jetzt einfach alle Sachnummern in einer Abfrage mit den dazugehörigen Kosten jeder Position in einer extra Spalte. Leider kommt es wenn ich die Abfrage ganz normal erstelle zu einem kartesischen Produkt.

Ich möchte aber jede Sachnummer nur in einer Zeile und die dazugehörige Kostenposition je Spalte.

Ist wahrscheinlich relativ einfach zu lösen.
Die Tabellenstruktur sollte, falls möglich allerdings beibehalten werden.

Vielen Dank und
viele Grüße

Der AccessStarter

el_gomero

Hallo,

nach einem vernünftigen Datenmodell sieht das erst mal nicht. Wenn es das hätte, wäre eine Lösung sicher einfach.

Davon abgesehen beschreibe doch mal mit einfachen Worten was du vor hast. Und zwar aus fachlicher Sicht, nicht aus Access-Sicht.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

AccessStarter

Vielen Dank für die schnelle Antwort.

Im Prinzip geht es um eine Kosten Datenbank. Die Sachnummern haben verschiedene Kostenpositionen. Aber nicht jede Sachnummer hat jede Kostenposition. Jeden Monat kommen pro Kostenposition neue Tabellen mit der Sachnummer und dem Kostenwert hinzu.

In der Abfrage sollen einfach nur alle Sachnummern und aus dein Einzeltabellen die dazugehörigen Kostenpositionen angezeigt werden. Eventuell kann man sich dann aus einer extra Tabelle noch die Stammdaten dazu holen.
Super wäre es, wenn man dann noch nach der Sachnummer, dem Monat oder ähnlichem Filtern könnte bei der Abfrage.

Wir haben den Ansatz so gewählt, um für die einzelnen Kostenpositionen jeweils eine Tabelle zu haben wo wir Monat für Monat die neuen Datensätze anfügen.
Das war für uns jetzt mit extra Tabellen einfacher.


Ich hoffe das Problem wird so klar.

Viele Grüße




PhilS

Zitat von: AccessStarter am August 12, 2016, 16:29:01Im Prinzip geht es um eine Kosten Datenbank. Die Sachnummern haben verschiedene Kostenpositionen. Aber nicht jede Sachnummer hat jede Kostenposition. Jeden Monat kommen pro Kostenposition neue Tabellen mit der Sachnummer und dem Kostenwert hinzu.
Das ist eine ganz schlechte Idee!
Warum eine neue Tabelle, wenn du Jahr und Monat in der Tabelle speicherst? Du kannst doch einfach alle weiteren Daten in die erste, bereits bestehende Tabelle einfügen. Die Daten der einzelnen Monate lassen sich jederzeit mit einer Abfrage wieder selektieren.

Ich empfehle dir dringend das Datenbankdesign in diesem Punkt zu ändern. - Deine Frage erübrigt sich damit dann auch.

Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

AccessStarter

Hallo,

ich habe mich wohl ein bisschen missverständlich ausgedrückt. Die verschiedenen Monate und Jahre werden schon in einer Tabelle gespeichert. Es gibt nur pro Kostenposition eine eigene Tabelle. Die Idee besteht jetzt einfach nur darin, dass man eine Mastertabelle hat mit allen Sachnummern die existieren und sich dann beliebig aus den anderen Tabellen die Kostenpositionen der Sachnummern per Abfrage ausgeben lassen kann. Wenn ich das nur in eine normale Abfrage packe dann erstellt er mir zu jedem Datensatz in Tabelle mit Kostenposition A eine Kombination mit allen anderen Datensätzen der Sachnummer bei Kostenposition B. Also typisches Kreuzprodukt. Das möchte ich allerdings nicht.

Alternative wäre natürlich einfach eine Tabelle wo man alle Kostenpositionen reinpackt und die jeweils mit einem extra Feld als die jeweilige Position kennzeichnet. Wäre das eine bessere Lösung?

Viele Grüße und vielen Dank!

MzKlMu

Hallo,
ZitatEs gibt nur pro Kostenposition eine eigene Tabelle.
das ist genau so falsch. Die Kostenpositionen müssen auch in eine Tabelle. Mit einem Unterscheidungsmerkmal. Ob das jetzt die Positionen sind kann ich Dir mangels Kenntnis des Gesamtzusammenhangs nicht sagen.
Beschreibe das mal genauer.
Was steht denn in den Positionen ?
Sind das fest vorgegeben Texte ?
Möglicherweise sollte es auch für die Positionen auch eine Tabelle geben und in der Kostentabelle nur ein Fremdschlüssel zur Position.
Gruß Klaus

Lachtaube

Hallo,

eine Datenbank sollte so aufgebaut sein, dass bei Änderung ener Sachlage ein Datensatz (und keine Tabelle oder ein Tabellenfeld) hinzugefügt werden muss.  Z. Bsp. stehen in einer Tabelle Deine Kostenarten (Materialkosten, Energiekosten, Lohnkosten, usw.). In der Tabelle, die die Werte der Kosten aufnimmt, gehört jeweils ein Fremdschlüssel aus der Sachnummern- und aus dieser Kostenarttabelle. Fallen demnächst Wartungskosten an, ist nur einmal in der Tabelle Kostenart ein Datensatz dafür anzulegen und schon kann man die Kosten in der anderen Tabelle für Wartungen eintragen.
Grüße von der (⌒▽⌒)

Beaker s.a.

Hallo AccessStarter,
Was meine Vorredner meinen sieht so aus (siehe Anlage).
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)