Access Profis - Bitte helft mir !!!
Geizhals » Forum » Programmierung » Access Profis - Bitte helft mir !!! (5 Beiträge, 122 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: Access Profis - Bitte helft mir !!!
04.11.2003, 04:56:35
Access Profi bin ich zwar sicher keiner, aber so wie ich das verstehe ?-)  gehts eh mehr um mySQL bzw. Datenbanken generell - also schaun wir mal!  ;-)


Ich möchte eine Access Datenbank in eine MySQL DB umwandeln, was über Excel und eine .csv Datei ja recht einfach sein sollte.

Ist zumindest eine Möglichkeit; ich denke, daß man sich sogar den Umweg über Excel sparen könnte, da Access ja via ODBC auch direkt auf mySQL DBs zugreifen kann - aber egal.  :-)


Nun ist die .mdb nicht ganz so, wie ich es mir vorstellte, sie besteht aus einzelnen Tabellen, die sich nicht so recht miteinander vertragen.

Mal eine grundlegende Frage: Ist diese .mdb ursprünglich 'auf Deinem Mist' gewachsen, ober gehts darum den Datenbestand einer Fremdanwendung von Access  nach mySQL zu übertragen?  ?-)  (In letzterem Fall hat die 'eigenartige' Struktur vermutlich schon ihren Sinn - nämlich die Daten möglichst computergerecht zu organisieren.)


Die Probleme entstehen dadurch, dass in einigen Tabellen die Einträge in mehreren Zeilen statt in einer sind.

Wenn ich Dein Beispiel richtig verstehe, dann dürften die Daten offenbar eh schon recht sinnvoll strukturiert sein, während die Transformation in die von Dir gewünschte Form vom Standpunkt des DB-Designs im Allgemeinen ein ziemlicher Rückschritt wäre.  :-(


Wie schaffe ich es, dass es so wird:
UnicodeNr. 20124    Lesung 1, Lesung 2, Lesung 3


Wozu soll diese Umformung gut sein? ?-)  Normalerweise sollte man es unbedingt vermeiden, in einer Tabellenspalte pro Zeile mehr als ein einzelnes Datum zu speichern, weil der Zugriff auf die Daten (für den Rechner) damit um vieles einfacher wird!  ;-)

Dazu erzeugt man eben dann für jedes einzelne Datum eine neue (ansonsten idente) Tabellenzeile; dafür kann man dann z.B. problemlos und einfach nach allen UnicodeNr. suchen, denen der Wert 'Lesung 1' zugeordnet ist, was bei Deinem Ansatz etwas mehr Aufwand verursachen würde.  !:-)

Noch - der Vollständigkeit halber - ein Ansatz, wie sich die Umformung machen ließe: !:-)
SELECT * FROM tabelle WHERE UnicodeNr = X
... liefert Dir alle Zeilen für eine best. UnicodeNr (X) ; die einzelnen Einträge verketten und den neuen Datensatz für diese UnicodeNr erzeugen - das muß dann nur für jede UnicodeNr genau einmal durchgeführt werden - fertig!  
Eine ganze Tabelle in einer einzigen Query umzuformen müßte mit GROUP BY UnicodeNr irgendwie machbar sein. (Aber für genaueres müßt ich auch erst mal eine Trial&Error-Session starten! ;-) )


Mehr zum Thema Datenbank(design) und auch mySQL findest z.B. im mySQL Datenbankhandbuch oder sicher auch mit der Suchmaschine Dener Wahl.  :-)

Wennst im Detail beschreibst welche Daten Du in Deiner DB hast bzw. haben willst, kann ich Dir vielleicht noch besser weiterhelfen.  :-)  B-)

lg
mIstA
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung