Access Datenbank ausmultiplizieren

schmidmi

Lt. Commander
Registriert
Feb. 2007
Beiträge
1.823
Hallo,

ich habe bisher in Excel eine Liste mit Eigenschaften( z.B.: Farbe, Länge, Breite, Höhe, Material) und Werten.
Daraus bilde ich mit einem Makro eine Liste in der als Überschrift die Eigenschaften stehen und alle Werte dieser Eigenschaften miteinander ausmultipliziert sind.

Also z.B.:

Farbe Länge Breite Höhe
Rot 100 100 100
Rot 100 100 50
Blau 100 100 100
Blau 100 100 50

Leider bin ich bei Excel auf 10^6 Zeilen beschränkt und das reicht mir häufig nicht aus.
Zudem dauert das erzeugen der Liste ziemlich lange.

Mein Ansatz war jetzt eine Datenbank(zunächst Access) zu nutzen.
Ich habe auch bereits die Tabellen angelegt, befüllt und ein Formular erstellt in dem ich die für die Liste zu verwendenden Eigenschaften auswählen kann.

Wie kann ich jetzt aber eine Abfrage erzeugen mit der selben Ansicht wie in Excel?
 
Also ich habe 2 Semester Mathemathik studiert, aber beim besten Willen kann ich mir nicht erklären:
Wie multipliziert man Farben mit Längenmaßen und Material?

Also mal ernsthaft, ich verstehe wirklich nicht was du genau willst
 
Nehmen wir an ich habe eine Auswahlmaske in der ich 3 Farben, 3 Längen, 3 Höhen, 3 Tiefen und 3 Materialien auswählen kann.
Daraus ergeben sich 243 mögliche Kombinationen. Diese möchte ich in einer Liste ausgeben.
 
Also einen Select-Befehl im Sinne von:
SELECT * FROM TABELLE WHERE FARBE = ROT OR FARBE = BLAU OR LAENGE = 20 .... usw
?
 
Eher das kartesische Produkt. Ich hab dir mal eine Access-Datenbank erstellt. Ich weiß deine Datenbank-Struktur jetzt nicht, von daher konnte ich nur raten.

Hat 5 Tabellen (Farben, Breiten, Hoehen, Laengen und Materialien) sowie eine Abfrage (Stichwort "CROSS JOIN") für die Kombinationen.
 

Anhänge

  • schmidmi.zip
    21 KB · Aufrufe: 245
Danke Ocram. Das Ergebnis ist schonmal genau das was ich gesucht habe und Cross Join kann man wenigstens googleln.

Ich habe ein (stark vereinfachtes) Beispiel meiner Datenbank angehängt.
 

Anhänge

  • Testpaketdb1.zip
    13,7 KB · Aufrufe: 269
Das Problem an deiner Datenbankstruktur ist, dass ich es nicht schaffe, die Werte aus deiner Tabelle mit n Eigenschaften zu kombinieren. Für jede Eigenschaft muss ich einen JOIN durchführen. Da die Anzahl der Eigenschaften aber variabel ist, müsste man mit jeder neuen Eigenschaft die Abfrage aktualisieren. Bei anderen DBMS (SQL Server, MySQL, etc.) könnte man die Abfrage dynamisch erstellen, je nachdem wie viele Eigenschaften vorhanden sind. Bei Access ist das (meines Wissens nach) nicht möglich.

Es kann auch einfach sein, dass das meine Fähigkeiten übersteigt ;)

Ich würde erstmal probieren folgendes Problem zu lösen:

Aus

EigenschaftWert
FarbeRot
FarbeGrün
MaterialHolz
MaterialAluminium
Gewicht500 g
Gewicht250 g

soll folgendes werden:

FarbeMaterialGewicht
RotAluminium500 g
RotAluminium250g
RotHolz500 g
RotHolz250g
GrünAluminium500 g
GrünAluminium250g
GrünHolz500 g
GrünHolz250g

und, das am Besten dynamisch, dass wenn eine neue Eigenschaft hinzukommt, es automatisch aktualisiert wird. Soll das das Ziel darstellen?
 
Ich würde ja mit einem ER-Modell Anfangen und nicht mit einer Datenbank ;)
 
Zurück
Oben