Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Gudegro am August 13, 2012, 21:12:18

Titel: Zusammenfassung zweier Tabellen
Beitrag von: Gudegro am August 13, 2012, 21:12:18
Also erst einmal ein herzliches "Hallo" von mir an alle. Ich bin der Neue hier. Sollte ich bei meiner Anfrage gegen eine Netiquette verstoßen, bitte ich darum, mich entsprechend aufzuklären.

Vom Wissen her bin ich, in Sachen Access, interessierter Anfänger. Dummerweise habe ich mich ziemlich weit aus dem Fenster gelehnt und hoffe jetzt, dass mich jemand von Euch festhält. Ich habe nämlich einfach so behauptet, Access könne das, und prompt den dienstlichen Auftrag erhalten die Lösung zu schaffen.

Zur Verfügung habe ich Access 2003

Das Problem:

Ich habe in einer Access-Datenbank zwei Tabellen:

•   In der einen sind alle Geschäfte mit unseren Kunden aufgeführt (Spalte 1 und 2: Name des Kunden; Spalte 3 bis 5 Adresse des Kunden, Spalte 6 gekaufte Ware etc.). Jede Zeile betrifft jeweils ein anderes Geschäft.
In dieser Tabelle stehen also alle Kunden, die bereits mehrfach Geschäfte mit uns abgewickelt haben, auch mehrfach drin. (immer in anderen Zeilen)

•   In der zweiten Tabelle habe ich nun einzelne, ausgewählte Kunden (Spalte 1 und 2: Name des Kunden; Spalte 3 bis 5 Adresse des Kunden etc.). Jede Zeile betrifft hier einen bestimmten Kunden. Jeder hier aufgeführte Kunde kommt hier auch nur einmal vor.
Diese Tabelle wird von Auswertung zu Auswertung immer wieder geändert.

Meine Aufgabe besteht nun darin, einen Automatik zu schaffen, die jedem Kunden der zweiten Tabelle, alle bei uns getätigten Geschäfte (erste Tabelle) zuordnet.

Ich versuche im Augenblick das Problem mit einer Tabellenerstellungsabfrage zu lösen: Die zweite Tabelle wird komplett übernommen. Aus der ersten Tabelle werden die getätigten Geschäfte dazugespielt. Da die Anzahl der Geschäfte überschaubar ist (max. 10 pro Kunde), könnte ich für jedes Geschäft eine eigene Spalte zur Verfügung stellen.

Ich scheitere aber schon im Ansatz, da in der ersten Tabelle gleiche Kunden keine eindeutig zuzuordnende einzelne ID - sondern eben nur gleiche Zellen in der Tabelle – haben (Name und Adresse).

In Excel wäre das durch Formeln (SVERWEIS und andere) zu lösen. Ich kann aber nicht auf Excel ausweichen, da die erste Tabelle für Excel zu umfangreich ist.

Um was ich Euch jetzt bitte, sind Ideen, unter welchen Stichworten ich weitersuchen kann, um eine Lösung zu finden. Schön wäre es, wenn ich dabei nicht all zu tief in "Makros" und "SQL" einsteigen müsste (wie gesagt, ich bin interessierter Anfänger).

Vielen Dank im Voraus für jeden Hinweis, der mich eventuell auf eine neue Fährte bringt.

Mit einem ersten Gruß aus Augsburg
Gudegro
Titel: Re: Zusammenfassung zweier Tabellen
Beitrag von: Beaker s.a. am August 13, 2012, 22:11:52
Hallo Gudegro,
ZitatUm was ich Euch jetzt bitte, sind Ideen, unter welchen Stichworten ich weitersuchen kann, um eine Lösung zu finden. Schön wäre es, wenn ich dabei nicht all zu tief in "Makros" und "SQL" einsteigen müsste (wie gesagt, ich bin interessierter Anfänger).
Stichpunkte:
    Datenmodellierung
    Normalisierung (für Dich besonders wichtig, da Du Deine beiden Tabellen eh neu aufbauen musst, mindestens die erste)
Schau Dir vielleicht auch die Beispiel-DB Nordwind an, die ist mW bei A2003 auch dabei.
Mit Makros brauchst Du dich gar nicht zu beschäftigen, besser VBA. Makros sind unflexibel und Du bekommst hier,
und in anderen Foren kaum Hilfe, da sich damit selbst die Profis nicht auskennen, weil sie sie nicht verwenden.
SQL ist schon wichtig, da das die Sprache der Datenbankengine (Jet) ist, in der alle Arten von Abfragen erstellt werden.
hth (erstmal)
gruss ekkehard
Titel: Danke / Re: Zusammenfassung zweier Tabellen
Beitrag von: Gudegro am August 14, 2012, 13:01:29
Hallo Ekkehard,

schon mal an dieser Stelle vielen Dank. Ich habe die beiden Stichworte 'mal grob gegoogelt und glaube, dass ich da weiterkomme.

Trotzdem lasse ich das Thema erst noch offen. Vielleicht finden sich ja noch andere Stichworte ein.

Ich wünsche noch einen angenehmen Tag.

Grüße aus dem sonnigen Augsburg
Gudegro
Titel: Re: Zusammenfassung zweier Tabellen
Beitrag von: Gudegro am August 14, 2012, 16:06:55
Hallo noch 'mal an alle,

also ich bin deutlich weiter gekommen, aber bei meinem Ursprungsproblem hänge ich immer noch:

Ich habe jetzt die erste Tabelle durch eine Dublikatssuche soweit verkürzt, dass ich eine neue Tabelle habe, in der jeder Kunde nur einmal vorkommt. Freundlicher Weise sagt mir diese Tabelle auch, wieviele Geschäfte dieser Kunde mit uns getätigt hat (Spalte: "AnzahlVonDublikaten"). Durch Einfügen eines AutoWertes hat jeder Kunde jetzt auch eine eigene, eindeutige ID.

Was mir nun aber weiterhin fehlt, ist eine Abfrage, die mir in verschiedenen Spalten der gleichen Zeile (dieser Kunde) anzeigt, welche Geschäfte wir mit dem Kunden getätigt haben. Diese Geschäfte stehen, wie gesagt, in der ursprünglichen Tabelle in unterschiedlichen Zeilen.

Ich gehe davon aus, dass, wenn das geklappt hat, die zweite Tabelle ähnlich verarbeiten werden kann.

Meine Frage an alle: wie bekommt man so etwas hin?

Abendliche Grüße aus Augsburg
Gudegro
Titel: Re: Zusammenfassung zweier Tabellen
Beitrag von: DF6GL am August 14, 2012, 18:58:42
Hallo,

"Was mir nun aber weiterhin fehlt, ist eine Abfrage, die mir in verschiedenen Spalten der gleichen Zeile (dieser Kunde) anzeigt, welche Geschäfte wir mit dem Kunden getätigt haben. Diese Geschäfte stehen, wie gesagt, in der ursprünglichen Tabelle in unterschiedlichen Zeilen."


das solltest Du nicht weiter verfolgen, weil ein Weg in die falsche Richtung.

Wenn es mehrere "Geschäfte" (Rechnungen, Aufträge, ??)  pro Kunden gibt, dann sind die in mehreren Zeilen (Eine pro Geschäft des jeweiligen Kunden passend aufgehoben.  Zur Anzeige für diese Geschäfte (mit einem) eines Kunden ist eine Haupt-Unterform-Konstruktion geeignet/empfehlenswert (Hauptform mit Basis zur Kunden-Tabelle ("erste" Tabelle) , Unterform mit Basis zur Geschäftetabelle ...
Titel: Re: Zusammenfassung zweier Tabellen
Beitrag von: database am August 14, 2012, 21:42:50
Hallo,

wie bereits angsprochen mußt du dich dringend mit den Grundlagen der Datenmodellierung befassen wenn du eine funktionierende Datenbank erstellen willst.
Sieh dazu unter anderem die Links #1 und #1a in der Signatur von DF6GL sowie die Informationen, die du auf  http://www.dbwiki.net (http://www.dbwiki.net)  findest.
Z.B.:  Grundlagen des Datenbank-Designs (http://www.dbwiki.net/wiki/Access_Anf%C3%A4nger:_Grundlagen_des_Datenbank-Designs)

Für die Übernahme von bestehenden Daten in ein normalisiertes Tabellenkonstrukt KANN neben Anfügeabfragen auch VBA zum Einsatz kommen.
Titel: Re: Zusammenfassung zweier Tabellen
Beitrag von: Beaker s.a. am August 14, 2012, 21:56:10
Hallo Gudegro,
ZitatIch habe jetzt die erste Tabelle durch eine Dublikatssuche soweit verkürzt, dass ich eine neue Tabelle habe, in der jeder Kunde nur einmal vorkommt.
Diese, Deine "erste" Tabelle musst Du nicht in der Länge, sondern in der Breite verkürzen (Erklärung folgt).
In Deiner "zweiten" Tabelle hast Du doch die Kunden schon richtig, also nur einmal drin. In diese Tabelle muss
auch der/die eindeutige Schlüssel (Autowert)/Kunden-Nr. (Typ Zahl LongInteger)
Aus der "ersten" Tabelle schmeisst Du jetzt alle Felder raus, die Du schon in der "zweiten" hast. Also Kundenname und die Adressfelder.
Statt dessen fügst Du ein Feld vom Typ Zahl (auch wieder LongInteger) ein. In dieses kommt jetzt die Kunden-Nr.. Wenn Du mit diesen beiden Feldern noch eine Beziehung zwischen den beiden Tabellen herstellst, sind die Kunden mit ihren Geschäften verknüpft.
Wahrscheinlich müssen aus der "ersten" Tabelle auch noch weitere Felder in andere Tabellen ausgelagert werden. Das lässt sich aber ohne genaue Kenntnis aller Felder nicht erklären.
Die Darstellung oben gezeigter Beziehung erfolgt dann, wie Franz bereits anmerkte, in einer HFo/Ufo Konstruktion. Da siehst Du die Geschäfte dann zwar untereinander, dafür erfordert es aber keine Zeile Code, und ist IMO auch die übliche erwartungsgemässe Darstellung.
Du solltest jedoch erstmal die Formulare aussen vor lassen, bevor Du überhaupt weisst, was alles gespeichert und verarbeitet werden soll (Peters Hinweise).
Was hier z.B. noch gar nicht berücksichtigt ist, ist das Vorkommen mehrerer Adressen zu einem Kunden. Dann müssten nämlich alle Adressfelder aus der "zweiten" Tabelle in eine weitere Tabelle ausgelagert werden, in der dann wieder die Kunden-Nr. als Fremdschlüssel auftaucht.
hth
gruss ekkehard

P.S. Hast Du Dir, wie vorgeschlagen die Beispiel-DB Nordwind mal angeschaut?
Titel: Danke
Beitrag von: Gudegro am August 16, 2012, 13:29:21
Hallo Beaker s.a.,
hallo database,
hallo DF6GL,

vielen Dank an Euch alle, ich glaube, jetzt ist der Knoten so langsam geplatzt.

Ich habe die Tabellen, wie von Euch vorgeschlagen, aufgesplittet und so gut es mir mit meinen bescheidenen Mittel möglich war, überarbeitet. Danach habe ich halbwegs vernünftige Beziehungen definiert und danach eine Auswahlabfrage gestartet.

Als ich dann ein Formular begonnen habe in das ein Unterformular eingebettet ist, kam so ungefähr das heraus, was ich eigentlich wollte.

Da sich das alles noch in einem grausamen Probierstadium befindet, kann ich noch nicht 100 %-ig sagen, ob es wirklich funktionnieren wird, bin aber guter Hoffnung.

Wenn alles fertig ist gebe ich hier Bescheid.

Nochmals Danke, eine angenehme Rest-Arbeitswoche und

schöne Grüße aus dem heute total verregneten Augsburg
Gudegro

Titel: Re: Zusammenfassung zweier Tabellen
Beitrag von: database am August 18, 2012, 14:07:53
Hallo Gudegro,

Zitat...Danach habe ich halbwegs vernünftige Beziehungen definiert ...
Dass das halt nicht zu wenig ist - halbwegs vernünftige Beziehungen gewährleisten in einer Datenbank i.d.R. nicht deren ordnungsgemäße Funktion!

Zitat...kam so ungefähr das heraus...
Mag dann schon auch dadurch passieren - besser wäre natürlich 'kam dann GENAU das heraus ...')  ::)

Schau dir die Inhalte der genannten Links ganz genau an, die Grundlagen werden dort ziemlich detailliert und verständlich dargelegt.
Bei Bedarf frag' hier einfach wieder nach  ::)
Titel: Re: Zusammenfassung zweier Tabellen
Beitrag von: Gudegro am August 27, 2012, 12:32:22
Hallo Beaker s.a.,
hallo database,
hallo DF6GL,

Zuerst einmal bitte ich um Entschuldigung dafür, dass ich mit meiner Antwort so lange gebraucht habe. Meine Lösung, die relativ schnell funktionierte, sollte von mir immer wieder leicht modifiziert werden. Aber ...

...es hat so, wie oben beschrieben, absolut bestens geklappt.
Die Beziehungen waren zwar kompliziert aber logisch, so dass alles recht schnell eingegeben war ...

... und es kam  g e n a u  das heraus, was gefordert war.

Also nochmals vielen Dank an Euch drei.
Ich werde mich so schnell in Sachen Access nicht mehr so weit aus dem Fenster lehnen, aber Dank Eurer Hilfe hat's ja doch noch geklappt.

Ich wünsche eine angenehme Arbeitswoche, und

freundliche Grüße aus dem heute wieder sonnigen Augsburg wünscht

Gudegro