Neuigkeiten:

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

Mobiles Hauptmenü

Zelle in Abfrage, die sowohl Zeile als auch Spalte matched

Begonnen von JB, August 25, 2016, 09:04:16

⏪ vorheriges - nächstes ⏩

JB

Hi,

ich bin neu hier und habe gleich meine erste Frage. Ich arbeite mit Access 2010 und habe damit eine umfrangreiche Datenbank aufgebaut. U.a. sind dort folgende Tabellen vorhanden:

Table 1 (Vertragsinfo): Client / Sparte / ... (wobei Sparte = Sparte I oder Sparte II ... oder Sparte IV)
Tabelle 2 (Guthaben je Client je Sparte): Client / Guthaben aus Sparte I / Guthaben aus Sparte II / Guthaben aus Sparte III / Guthaben aus Sparte IV / Guthaben Summe

Nun möchte ich über die Oberfläche eine Abfrage erstellen, sodass ich folgende Tabelle erhalte:

Client (aus Tabelle 1) / Sparte (aus Tabelle 1) / Guthaben (aus Tabelle 2) für die Sparte aus dem Feld links

Das heißt, ich muss für die Abfrage sowohl die Zeile (Client) als auch die Spalte (Sparte) matchen. Geht das?

Vielen Dank und viele Grüße

Jelto




MzKlMu

Hallo,
ich denke, da sollte erst mal das Datenmodell auf den Prüfstand. Hier fehlt vermutlich eine weitere Tabelle die die Guthaben den Sparten und dem Client in jeweils einem Datensatz zuordnet.
Bitte zeige mal ein Bild des Beziehungsfensters in dem die Tabelle 1 und 2 vollständig mit den Feldern zu sehen sind.
Oder zeige hier mal alle Felder der beiden Tabellen.
Gruß Klaus

JB

Hi,

vielen Dank für die schnelle Antwort. Mein Datenbankmodell sieht wie folgt aus:

Tabelle 1 [Kunden]: KundenID; Name; Adresse
Tabelle 2 [Guthaben]: KundenID; Sparte 1; Sparte 2; Sparte 3; Summe
Tabelle 3 [Vertragsinfo]: VertragsID; KundenID; Sparte; Auftragsvolumen

Die Tabellen sind wie folgt verknüft: [Vertragsinfo] <-- n:1 --> [Kunden] <-- 1:1 --> [Guthaben]

Hilft dir das so weiter?

Danke :)

MzKlMu

Hallo,
ich halte das Datenmodell für falsch. Die 1:1 Beziehung zwischen Kunde und Guthaben ist auch unlogisch. Ein Kunde kann doch bestimmt mehr als ein Guthabendatensatz enthalten.
Auch die Guthabentabelle selbst ist falsch. Die Tabelle benötigt nur 4 Felder (Primärschlüssel, Fremdschlüssel zum Kunden, Fremdschlüssel zur Sparte und die Summe.
Die Beträge sind in jeweils einer Zeile zu erfassen. 5 Sparten = 5 Datensätze je Kunde.
Dann fehlt eine Tabelle für die Sparte mit einem PS und der Bezeichnung für die Sparte. In die Kundentabelle kommt dann nur der FS zur Sparte.
Kann ein Kunde mehrere Sparten haben ?

Und wie bereits gebeten, zeige ein Bild des Beziehungsfensters.
Gruß Klaus

JB

Hi,

also ich habe jetzt mal versucht, deine Änderungen umzusetzen. Dementsprechend komme ich dann auf folgendes Diagramm (siehe Anhang).

Allerdings kommt jetzt jedes mal, wenn ich eine Abfrage mache, die Fehlermeldung: "Type mismatch in expression".

Es ist in der Datenbank so, dass pro Sparte nur ein Guthaben hinterlegt ist. Das soll bei Aktualisierung überschrieben werden. Allerdings kann ich jeder Kunde mehrere Verträge in der gleichen Sparte haben.

Danke für deine Hilfe.

MzKlMu

#5
Hallo,
das ist falsch.

Kann ein Kunde mehrere Verträge haben ?
Ist die Sparte dem Vertrag zugeordnet oder dem Kunden ?
Gibt es das Guthaben Vertragsbezogen ?

Bitte beschreibe die Zusammenhänge mal genauer.
Ich blicke da noch nicht durch.
Einfach mal beschreiben, ohne direkten Bezug zu DB.
Gruß Klaus

JB

Hi,

ein Kunde kann mehrere Verträge haben, sogar mehrere Verträge je Sparte.
Die Sparte ist dem Vertrag zugeordnet.
Ein Kunde hat je Sparte jedoch genau ein Guthaben.
Das Guthaben ist nicht vertragsbezogen.

Jetzt hätte ich gerne folgende Tabelle ausgegeben, gruppiert nach Vertrag / Sparte. Sollte der Kunde also mehrere Verträge in einer Sparte haben, soll das Auftragsvolumen aufsummiert werden.

Bsp:
Tab 1:
KundenID   Name   Adresse
1   Kunde 1   Adresse 1
2   Kunde 2   Adresse 2
3   Kunde 3   Adresse 3

Tab2:
GuthabenID   KundenID   SpartenID   Guthaben
1   1   1   200
2   1   2   200
3   1   3   100
4   2   2   200
5   3   2   100
6   3   1   0
7   3   3   1
8   2   1   0
9   2   3   0

Tab3:
VertragsID   KundenID   SpartenID   Auftragsvolumen
1   1   1   10000
2   1   2   200
3   1   3   500
4   2   1   200
5   2   2   100
6   3   1   50
7   3   2   100
8   3   3   20
9   2   3   120
10   2   3   540
11   3   2   120

Tab 4:
SpartenID   Sparte
1   Umzug
2   Ferntransport
3   Nahtransport

Jetzt soll zum Beispiel in der Abfrage für Kunde 3 folgendes stehen
Name   Sparte   Auftragsvolumen summiert   Guthaben
Kunde 3   Umzug   50   0
Kunde 3   Fernverkehr   220   100
Kunde 3   Nahverkehr   20   1   






MzKlMu

Hallo,
die Tabellen stimmen, nur hast Du die Beziehungen falsch gemacht.
Im Anhang die Umsetzung mit obigen Daten.
Die Abfrage zeigt das gewünschte Ergebnis.
Gruß Klaus

JB