2 Tabellenfelder in Abfrage zusammenführen

Moderator: ModerationP

2 Tabellenfelder in Abfrage zusammenführen

Beitragvon Chiefhenk » 15. Aug 2019, 09:57

Hallo zusammen,

ich habe eine Tabelle Fahrtenbuch erstellt. fahren_id / adress_id / fahren_datum / fahren_von / fahren_nach / fahren_km
dieses Konstrukt funktioniert wie programmiert und erwartet.
Ich möchte nun aber zur Einfacheren Eingabe wiederholende Adressen automatisch über ein Auswahlfeld laden.
in den Feldern fahren_von und fahren-nach stehen im Prinzip die gleichen Daten.

Strasse Hnr. , land-plz-ort zb. "Dorfstrasse 22, CH-4000 Basel"

Ich möchte nun in einer Abfrage die Felder fahren_von und fahren_nach verschmelzen in 1 Feld dieses dann Gruppieren und aufsteigend sortieren so das jede Adresse zur Auswahl nur einmal angezeigt wird.
Da sich Start und Zieladressen wiederholen können, wäre dies eine komfortable Lösung um schnell auszuwählen. Es geht nicht um das zusammensetzen von

fahren_von &" "& fahren_nach

so etwas beherrsche ich

nacher sollte ich mit

me.fahren_von = auswahlfeldvon.column (1)

den ausgewählten start Ort einfügen können

Lässt die Datenbank einen solchen merge zu? Hat jemand eine Idee? hoffentlich habe ich mich genügend klar ausgedrückt. Vielleicht gibt es einen Artikel der sich mit dem Thema befasst.
Benutzeravatar
Chiefhenk
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9
Registriert: 15. Aug 2019, 09:32
Wohnort: CH-5070 Frick

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon knobbi38 » 15. Aug 2019, 11:18

Hallo Chiefhenk,

man kann diese Felder in einer Abfrage zusammen fassen und auswählen. Du könntest z.B. eine Kombobox mit mehreren Spalten nehmen, eine gemeinsame für die Anzeige/Auswahl und zwei verdeckte Spalten mit den Werten VON und NACH und diese dann als "Favoriten"-Auswahl verwenden. Bei der Auswahl werden den Feldern VON und NACH die Werte aus den versteckten Spalten zugewiesen. Es muß aber auch noch weiterhin die Möglichkeit bestehen bleiben, neue Strecken erfassen zu können. Deshalb wäre eine solche Kombobox rein zusätzlich.

Gruß Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1115
Registriert: 02. Jul 2015, 14:23

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon Bitsqueezer » 15. Aug 2019, 13:01

Hallo,

Das kannst Du mit einer UNION ALL Abfrage machen, bei der Du mit DISTINCT alle Duplikate entfernen kannst. Beide Teile der Abfrage holen sich dann jeweils die Werte aus fahren_von oder fahren_nach.

Allerdings läßt das darauf schließen, daß Du hier den gezeigten Text tatsächlich in diese Felder einträgst. Damit speicherst Du die Adressen ständig redundant. Wenn Du stattdessen eine separate Adresstabelle verwendest und in fahren_von/_nach nur die IDs der Adresstabelle speicherst, löst Du gleich alle Probleme damit. Denn dann kannst Du eine Kombobox für beide Felder verwenden, die immer nur eindeutige Adressen aus der Adresstabelle verwendet, Du kannst keine Schreibfehler in unterschiedlichen Datensätzen mehr haben und bei einer Änderung der Adresse in der Adresstabelle wird das gleich in allen Datensätzen zu sehen sein. Redundante Speicherung entfällt und die UNION-Abfrage ist dann auch nicht mehr notwendig.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6989
Registriert: 21. Jun 2007, 12:17

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon Chiefhenk » 15. Aug 2019, 19:15

hallo knobbi, Bitsqueezer

Ich habe 2 Möglichkeiten die bestehen. Es gibt tatsächlich eine 1:n Verknüpfung von Adressen... einmal die von der Hauptadresse und dann die von den Fillialen.
Diese Adressen werden wie gezeigt Formatiert in einem Auswahlfeld angeboten zum auswählen und dann zum einfügen.Dieses gibt es einmal für das Feld von und nach.
Dazu habe ich noch 2 ungebundene Felder bei denen ich Strasse und Ort eingebe und dann richtig formatiert jeweils für von und nach übernommen werden.. (Manuele Eingabe)

Diese manuellen Eingaben sind eben nur in der Fahrstrecken Tabelle enthalten. Diese möchte ich eben dann per Auswahl auch einfügen können, um diese nicht jedesmal zu schreiben.
Ich weis aber nicht wie ich das Feld von und nach zu einem Feld vereinen kann. Ich habe momentan ein Auswahlfeld mit eben den Feldern von und nach da ich dann per vba einfüge. also .colmun(1) nach von und .column(2).

möchte ich die umgekehrte strecke muss ich das dann per vba mit einer umkehr Programmierung beheben. also einen Knopf mehr drücken.
Das ziel wären aber 2 Auswahlfelder mit den identischen Wegstrecken eines für von und eines für nach.

Da die start und Endposition nicht immer als identische Rückfahrstrecke definiert sein muss, habe ich den Konflikt das bei der einen oder anderen position die Adresse fehlt. Darum der merge.

Einfach in meinem Kopf und hoffentlich verständlich erklärt.

Der Bitsqueezer hat glaube ich schon die richtig Lösung aber mit der Erklärung komme ich nicht klar weil ich noch nicht so fit bin in access.

Das Auswahlfeld soll nur aus 2 spalten bestehen. [id adresse] [fahrstrecke] darin enthalten natürlich die Daten aus beiden von und nach spalten. mit gruppieren bereinigt und aufsteigend sortiert.
Vielleicht kann man mir das einfacher schritt für schritt erklären.
Das redundante ist in dem Falle nicht so wichtig

lg danke..
Benutzeravatar
Chiefhenk
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9
Registriert: 15. Aug 2019, 09:32
Wohnort: CH-5070 Frick

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon knobbi38 » 15. Aug 2019, 20:16

Hallo Chiefhenk,

du machst es dir unnötig schwierig. Du erstellst eine Fav-Combo mit einer Liste aus allen bereits gefahren Strecken mit VON/NACH. Darin sind natürlich auch die umgekehrten Rückfahrten enthalten und dann genauso wie du es schon angedeutet hast mit Column(1) usw. übertragen.
VON und NACH sollten vielleicht auch als Combo ausgeführt werden, dann hast du alle Möglichkeiten offen.

Christian geht mit der Adresstabelle noch einen Schritt weiter und reduziert nicht nur die Redundanz durch Verweise auf bereits vorhandene Adresseinträge, sondern vermeidet so auch falsche Schreibweisen und Tippfehler. Sollte man ruhig mal darüber nachdenken und für das Datenmodell ist das sicherlich von Vorteil.

Gruß Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1115
Registriert: 02. Jul 2015, 14:23

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon Chiefhenk » 16. Aug 2019, 08:03

Hallo Ulrich

Ich habe normaler weise eine Hauptadresse und diverse Anfahrpunkte (Filialen) als 1:n definiert... Daraus ergibt sich dann eine Kunden ID die als filter für die strecken dient. Also werden nicht einfach alle strecken angezeigt. Es gibt aber auch einzelne Anfahrpunkte zu einer Hauptadresse die Manuell erfasst werden.

Ein Beispiel: Ich fahre zu dir für eine Dienstleistung a nach b. Ich muss dann aber noch einen Umweg fahren, weil ich noch Material abholen möchte. Dies wird dann aber zum Teil manuell gebucht, weil der Baumarkt Zb. nicht als Filialadresse geführt wird. Also ergibt sich daraus drei Einträge. Ich möchte aber auch nicht einen einzelnen Kunden noch als Filiale aufführen, damit ich diese Strecke dann Aut. im Auswahlfeld habe.

Darum möchte ich das Hin und Rückfahrt in einem Feld als merge zusamen angezeigt und bereinigt wird.

Bis auf das zusammen mergen weis ich, wie ich das anstellen muss. Ich weis nicht ob ich eine oder evt. mehrer Abfragen machen muss.

gruss henk
Benutzeravatar
Chiefhenk
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9
Registriert: 15. Aug 2019, 09:32
Wohnort: CH-5070 Frick

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon knobbi38 » 16. Aug 2019, 08:31

Hallo Henk,

ich glaube, wir kommen hier mit einer reinen verbalen Beschreibung nicht mehr weiter. Vielleicht solltest du mal eine Beispieldatenbank hier hochladen, mit einem Text/Bild, wo genau beschrieben ist, was in den Feldern stehen sollte und jetzt noch nicht geht.

Gruß Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1115
Registriert: 02. Jul 2015, 14:23

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon Chiefhenk » 16. Aug 2019, 11:56

Hallo Ulrich
Da man mir hier erklären will, wie eine Datenbank aufgebaut werden soll und was redundante Daten sind, ist das eigentlich verloren gegangen.

Es funktioniert ja alles, bis auf ein kleines gimmick.

Zitat:
ich habe eine Tabelle Fahrtenbuch erstellt. fahren_id / adress_id / fahren_datum / fahren_von / fahren_nach / fahren_km
dieses Konstrukt funktioniert wie programmiert und erwartet.
Ich möchte nun aber zur Einfacheren Eingabe wiederholende Adressen automatisch über ein Auswahlfeld laden.
in den Feldern fahren_von und fahren-nach stehen im Prinzip die gleichen Daten.

String bsp. Strasse Hnr. , land-plz-ort zb. "Dorfstrasse 22, CH-4000 Basel"

Ich möchte nun in einer Abfrage die Felder (spalten) fahren_von und fahren_nach verschmelzen in 1 Feld (Spalte), dieses dann Gruppieren und aufsteigend sortieren, so dass jede Adresse zur Auswahl nur einmal angezeigt wird. Dann kann ich dass in einem Auswahlfeld brauchen. es geht nicht um die Daten die aus der Tabelle Adress kommt sondern die direkt manuell eingegeben wurden.
Aus der Adressdatei können keine redundanten Daten entstehen.

Es soll nur noch adress_id und fahrstrecke angezeigt werden... 1x und nicht in 2 spalten.

gruss henk
Benutzeravatar
Chiefhenk
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9
Registriert: 15. Aug 2019, 09:32
Wohnort: CH-5070 Frick

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon KlausMz » 16. Aug 2019, 12:32

Hallo,
das ist für mich immer noch unverständlich.
fahren_von und fahren_nach
das sind doch 2 Adressen, auch wenn sie in einem Feld dargestellt werden.
so dass jede Adresse zur Auswahl nur einmal angezeigt wird.

Wie soll das dann gehen?
Du hast doch schon mel 2 Adressen in einer Spalte ?
Und wenn gruppiert wird, entsteht für jede eindeutige Kombination aus ..von und ..nach eine Gruppe.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 38998
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon Chiefhenk » 16. Aug 2019, 15:01

hallo klaus

es sind in den 2 Feldern von und nach einfach "strasse, land-plz ort" gespeichert als string
es ist aber so das nicht zwingend in beiden die gleichen Adressen bestehen, da anfahrt und wegfahrt verschieden Adressen sind.
wenn man das so will sind das identische Felder. ich möchte aber in einem Auswahlfeld alle Adressen von anfahrt und wegfahrt haben.. in einer spalte...

bsp:
weg a / weg b
weg c / weg b
weg d / weg a
weg d / weg e

so nun möchte ich das in einer auswahl als

weg a
weg b
weg c
weg d
weg e

haben

wie du oben siehst sind in der spalte a "weg d" aber nicht in spalte b, darum möchte ich das in ein feld mergen... leider weis ich nicht wie das geht bzw. ob das überhaupt geht.

es geht nur um die frage wie kann man aus 2 spalten eine machen und geht das über eine abfrage oder braucht es mehrere...

gruss henk
Benutzeravatar
Chiefhenk
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9
Registriert: 15. Aug 2019, 09:32
Wohnort: CH-5070 Frick

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon KlausMz » 16. Aug 2019, 15:13

Hallo,
Chritian hat weiter oben die Lösung bereits beschrieben:
Das kannst Du mit einer UNION ALL Abfrage machen, bei der Du mit DISTINCT alle Duplikate entfernen kannst. Beide Teile der Abfrage holen sich dann jeweils die Werte aus fahren_von oder fahren_nach.
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 38998
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon Chiefhenk » 16. Aug 2019, 15:53

danke klaus.. ich bin damit ein wenig überfordert.. ich hab ja oben mal geschriben das diese antwort warscheinlich die richtige ist.. aber wie mache ich das genau..
lg henk
Benutzeravatar
Chiefhenk
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9
Registriert: 15. Aug 2019, 09:32
Wohnort: CH-5070 Frick

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon Beaker s.a. » 16. Aug 2019, 15:53

Hallo Henk,
Ich möchte aber auch nicht einen einzelnen Kunden noch als Filiale aufführen, damit ich diese Strecke dann Aut. im Auswahlfeld habe.

Warum nicht? Der "Kunde" heisst dann "freie Ziele", und die "Filialen" Baumarkt X
und Baustoffhandel Y.
gruss ekkehard
Ereignisorientierte Programmierung:
Alles, was geschieht, geschieht.
Alles, was während seines Geschehens etwas anderes geschehen
läßt, läßt etwas anderes geschehen.
Alles, was sich selbst im Zuge seines Geschehens erneut geschehen
läßt, geschieht erneut.
Beaker s.a.
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 666
Registriert: 14. Jul 2012, 21:56
Wohnort: Bremen

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon Bitsqueezer » 16. Aug 2019, 15:57

Hallo,

Wie beschrieben:

Code: Alles auswählen
SELECT DISTINCT Qry.Weg
FROM
(
   SELECT fahren_von AS Weg FROM DeineTabelle
   UNION ALL
   SELECT fahren_nach AS Weg FROM DeineTabelle
) AS Qry
ORDER BY Qry.Weg


Aber wie gesagt, ich würde das so nicht machen. Mußt Du selbst wissen.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6989
Registriert: 21. Jun 2007, 12:17

Re: 2 Tabellenfelder in Abfrage zusammenführen

Beitragvon Chiefhenk » 18. Aug 2019, 22:19

Hallo Bitsqueezer
Hallo auch die Andern...
Genau das war die Lösung die ich gebraucht habe.
Vielen Lieben Dank, auch wenn einige dies nicht nachvollziehen können warum ich das so mache..
Damit schliesse ich die Anfrage

Lg cheifhenk
Benutzeravatar
Chiefhenk
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9
Registriert: 15. Aug 2019, 09:32
Wohnort: CH-5070 Frick


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste