Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: boehnli01 am Januar 25, 2011, 12:10:33

Titel: Tabelleninhalt aufteilen
Beitrag von: boehnli01 am Januar 25, 2011, 12:10:33
Guten Tag, 

Tabelle sieht folgendermassen aus

kundennummer                e-mail adresse                                alle e-mail adressen
1                                       meier@access.com                      meier@access.com; hugo@access.com
1                                       hugo@access.com

1 Kundennummer hat 2 verschiedene e-mail Adressen auf 2 Zeilen die ich beide in einem Tabellenfeld "alle e-mail adressen" will.

Wie muss ich da vorgehen, bzw wie sollte da die Abfrage aussehen.

Vielen Dank für die Hilfe.
Titel: Re: Tabelleninhalt aufteilen
Beitrag von: Hondo am Januar 25, 2011, 12:51:47
Hallo,
das Feld alle e-mail Adressen ist überflüssig, diese erhälst du mittels Abfrage.
Oder aber du fügst ein weiteres Feld ein emailAdresse2 z.B.

Andreas
Titel: Re: Tabelleninhalt aufteilen
Beitrag von: boehnli01 am Januar 25, 2011, 13:29:39
Danke Andreas, aber wie bringe ich die beide e-mail adressen auf eine Linie bzw ein Feld. Wie sollte die Abfrage in etwas lauten ?
Titel: Re: Tabelleninhalt aufteilen
Beitrag von: DF6GL am Januar 25, 2011, 14:50:10
Hallo,

WARUM willst Du alle Email-Adressen (eines Kunden?) in EINEM (Tabellen-)Feld haben?


Eine entspr. Abfrage gibt es nicht. Man muß per VBA (z. B: mittels Recordset) die einzelnen Adressen selber aneinanderhängen.


Titel: Re: Tabelleninhalt aufteilen
Beitrag von: database am Januar 25, 2011, 14:57:31
Hallo,

die Mailadressen in ein Feld zu schreiben wäre ein Verstoß gegen die Normalisierungsregeln!

Gehe davon aus, dass du eine Tabelle tblKunden besitzt mit Kundennummer als Primärschlüssel und weiteren infos zum Kunden  (Namen, Adressen etc.)

Erstelle eine weitere Tabelle 'tblKontaktinfos' mit  Kontaktinfo_ID (Autowert) als Primärschlüssel, Kundennummer_FK (Zahl, Long) als Fremdschlüssel zu tblKunden und Mailadresse (Text)
Stelle eine Beziehung zwischen tblKunden und tblKontaktinfos über Kundennummer her.

Somit hast du eine klassische 1:n Beziehung zwischen den beiden Tabellen und du kannst theoretisch 100e Mailadressen pro Kunde speichern ohne dass es in der Datenbank kracht.

Wenn du nun  die Mailadressen eines bestimmten Kunden benötigst holst du die mit der SQL ...

SELECT Mailadresse FROM tblKontaktinfo WHERE Kundennummer = DeineKundennummer

Bzw. Wenn du per Kundennamen abrufen willst:

SELECT Mailadresse FROM tblKontaktinfo I INNER JOIN tblKunden K ON I.Kundennummer = K.Kundennummer WHERE Kundenname='DeinKundenname'


HTH