Neuigkeiten:

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

Mobiles Hauptmenü

Daten-Import aus Excel

Begonnen von seppi, März 06, 2017, 09:33:31

⏪ vorheriges - nächstes ⏩

seppi

Hallo

Ich habe ein Excel-File mit Daten wie folgt:
Name        Farben
Seppi       blau, rot, grün
Susi        hellblau, rosa
Jürg        rot


Also ein Name kann mehrere Farben zugeordnet haben.

Ich möchte nun die Daten in Access einlesen.
Name einlesen: klar
Farben einlesen: Hier möchte ich jede Farbe in eine Spalte einlesen:

Name       Farben1      Farben2     Farben3
Seppi      blau         rot         grün
Susi       hellblau     rosa
Jürg       rot


Ich finde keinen Ansatz, wie ich das umsetzen soll. Hat jemand eine Idee?

Umfeld:
- Es ist sicher gestellt, dass das Komma nur als 'Feldtrenner' vorhanden ist.
- Die Anzahl der Datensätze ist überschaubar (100-1'000).
- Es gibt mehrere Felder, die so auseinander genommen werden müssen.

Danke und Gruss,
Seppi

MzKlMu

#1
Hallo,
für Access (=Datenbank) ist das Vorhaben in dieser Form falsch.
Die Accesstabelle sollte so aussehen

Name       Farbe
Seppi      blau         
Seppi      rot         
Seppi      grün
Susi       hellblau
Susi       rosa
Jürg       rot

Wobei die Namen und Farben nicht im Klartext sondern als Schlüsselzahlen (Fremdschlüssel) in dieser Tabelle gespeichert werden sollten. Was Tabellen für Namen/Personen und Farben erforderlich macht.
Also so:

NameID  FarbeID
  1       1         
  1       2         
  1       3
  2       4
  2       5
  3       2

Mit einer Anfügeabfrage je Farbe kannst Du die Daten aus der verknüpften Exceltabelle in die vorgefertigte Accesstabelle übertragen.
Gruß Klaus

seppi

Danke für den Input.

Ich habe das so gelöst:
select a.name, "blau" as Farben
from Farben a
where Farben like "*blau*"

UNION

select a.name, "rot" as Farben
from Farben a
where Farben like "*rot*"

UNION

select a.name, "grün" as Farben
from Farben a
where Farben like "*grün*"

UNION

select a.name, "rosa" as Farben
from Farben a
where Farben like "*rosa*"

UNION select a.name, "braun" as Farben
from Farben a
where Farben like "*braun*"
ORDER BY name;


Ist ein bisschen arbeitsintensiv - bei mehr Farben (die aber alle bekannt sind) und mehreren Spalten.

MzKlMu

Hallo,
und was machst Du dann mit der Union ?
Die ist ja nicht bearbeitbar.

Ob das eine gute Lösung ist darf bezweifelt werden.
Gruß Klaus

seppi

Hi Klaus

JA - ich zweifle auch an der Lösung.
Aber ich habe keine bessere Idee...

Gruss, Seppi