Hallo,
ich habe folgendes Problem. Ich soll aus einer Excel Masterliste mit mehr als 750 Datenfeldern eine Datenbanklösung erschaffen. Bisher habe ich die Masterliste in einer weiteren Excel Datei in mehrere Tabellen unterteilt. Mir ist es möglich diese Tabellen ins SQL Server Management Studio in eine bestehende DB zu importieren und diese dann untereinander mit Beziehungen zu verknüpfen. Nur leider bestehen viele der Datenfelder aus Excel Funktionen, welche beim Import ins SQLSMS verloren gehen. Jetzt denke ich daran, die Tabellen in Access zu importieren.
Daher meine Frage, gibt es eine Möglichkeit diese Excel Funktionen mit in Access zu übertragen, also quasi zu konvertieren? (gerne auch SQL Server, falls das jemand weiß) . Es handelt sich hierbei nicht nur um einfache Rechenfunktionen sondern auch bspw. um Wenn-Funktionen oder Aufrunden.
Zudem sind manche Datenfelder von anderen Tabellen abhängig.
Z.B. habe ich 2 Tabellen. Ein Datenfeld, dass sich in Tabelle 2 befindet wird durch die Kombination eines Datenfelds aus Tabelle 1 und eines anderen Felds aus Tabelle 2 berechnet.
Ich bin bei dem Thema quasi ein blutiger Anfänger und danke schon mal im Voraus für Antworten.
Hallo,
ich befürchte, das geht nicht, jedenfalls nicht ohne weiteren programmtechnischen Aufwand.
Der einfachste Weg ist, die Sheets mit den Grunddaten db-gerecht (normalisiert, das ist essentiell!) in Access-Tabellen zu importieren, die Beziehungen zu definieren und zu setzen und die Berechnungen allesamt manuell zu "konvertieren".
ZitatEin Datenfeld, dass sich in Tabelle 2 befindet wird durch die Kombination eines Datenfelds aus Tabelle 1 und eines anderen Felds aus Tabelle 2 berechnet.
Solche Sachen werden in einer über beide Tabellen verknüpfenden Abfrage berechnet und z. B. in einem Bericht zur Anzeige gebracht. Die Berechnung kann auch im Bericht direkt erfolgen. Keinesfalls werden die Rechenergebnisse in einer Tabelle abgespeichert. Die Berechnungen werden immer dort erledigt, wo sie gerade gebraucht werden.
Ich gebe aber den Tipp, das Ganze nochmal zu überdenken, ob die Excel-Sheets auch wirklich nach Access entsprechend der Grundregeln relationaler DB-Systeme übertragen werden können und sollen.
Welchen Vorteil verspricht man sich davon? Wie soll die "DB-Lösung" denn konzeptionell aussehen?
ZitatIch soll aus einer Excel Masterliste mit mehr als 750 Datenfeldern eine Datenbanklösung erschaffen.
Wenn es denn wirklich eine Datenbank werden soLL: Dein Ansatz ist grober Unfug, selbst wenn es funktionieren würde, aber auch das ist ausgeschlossen.
=> Erstelle für die Datenbank ein funktionables Datenmodell, aus eigenen Erfordernissen heraus, Strukturen aus Excel spielen da nicht wirklich eine Rolle.
=> Wenn das Modell steht, kann man im nächsten Schritt Stammdaten übertragen.
=> Danach erfolgt die Erstellung von Berechnungen und Auswertungen und der Bedienoberfläche.
Unter dem Strich ist das also eine Neuprogrammierung. mal so über Knöpchen importieren und alles fügt sich von selbst in der ganz anderen Welt - das kannst Du vergessen.
Zitat von: DF6GL am Mai 04, 2020, 12:53:29
Welchen Vorteil verspricht man sich davon? Wie soll die "DB-Lösung" denn konzeptionell aussehen?
Naja also man verspricht sich davon eine erhöhte Datensicherheit und eine bessere Übersichtlichkeit. Ich habe vergessen zu erwähnen, dass es sich hier um über 300 Datensätze mit jeweils 750 Datenfeldern handelt.
Angedacht ist ein Client-Server-Modell. Ich hatte vor zunächst das Konzept zu erstellen (ER-Modell, relationales Modell und dann Tabellen in SQL Server anlegen und ein paar Abfragen testweise schreiben).
Das letztere ist auch möglich, aber dadurch dass die Excel Funktionen der importierten Tabellen nicht übernommen werden, werden die entsprechenden Felder ja nicht aktualisiert bei Datenänderungen in der Datenbank. Da ich keine Programmiersprachen beherrsche, war angedacht, den Client eventuell extern programmieren zu lassen und wenn ich das richtig verstehe, müsste man dies auch für die Excel Funktionen veranlassen?
Zitat von: ebs17 am Mai 04, 2020, 13:18:47
=> Erstelle für die Datenbank ein funktionables Datenmodell, aus eigenen Erfordernissen heraus, Strukturen aus Excel spielen da nicht wirklich eine Rolle.
=> Wenn das Modell steht, kann man im nächsten Schritt Stammdaten übertragen.
=> Danach erfolgt die Erstellung von Berechnungen und Auswertungen und der Bedienoberfläche.
Unter dem Strich ist das also eine Neuprogrammierung. mal so über Knöpchen importieren und alles fügt sich von selbst in der ganz anderen Welt - das kannst Du vergessen.
Ein Datenmodell habe ich erstellt. Zunächst ein ER-Modell, welches ich dann in ein relationales Modell überführt habe, zumindest habe ich es nach meinem Kenntnisstand versucht. Ich habe oben vergessen zu erwähnen, dass es über 300 Datensätze mit jeweils 750 Datenfeldern sind. Diese 750 Datenfelder habe ich nach meinem relationalen Modell auf mehrere Tabellen verteilt und jeweils in Excel angelegt (Ein Datenblatt pro Tabelle) und diese in SQLServer importiert und dort untereinander verknüpft.
Das bedeutet also, wenn ich keine Programmierkenntnisse habe, ist für mich erst mal Schluss an dieser Stelle?
Hallo,
eine Datenbanktabelle mit 750 Feldern ist schlichtweg unmöglich.
Eine Access Tabelle kann maximal 255 Felder haben.
Du müsstest also die Exceltabelle erst mal auf 3 Access Tabellen aufteilen.
Aber, bei 750 Feldern für eine Datenbank wage ich ich ein sinnvolles Konzept zu bezweifeln.
Eine Datenbanktabelle in einem normalisierten Datenmodell bewegt sich irgendwo zwischen 1 und 30-40 Feldern (als grober Rahmen). Wobei 40 schon viel sind.
Außerdem wird es nicht möglich sein, Excel Funktionen in einem normalisierten Datenmodel zu verwenden. Und schließlich wird man den größten Teil der Excelfunktionen bei Access gar nicht mehr benötigen, weil eine Datenbanklösung ganz ander Möglichkeiten bietet als Excel.
@Nikster1899
Zitataber dadurch dass die Excel Funktionen der importierten Tabellen nicht übernommen werden, werden die entsprechenden Felder ja nicht aktualisiert bei Datenänderungen in der Datenbank.
Die gehören ja auch nicht in dein Datenmodell, sondern in daraus zu
erstellende Abfragen. Und
die aktualisieren sich bei Datenänderungen
dann automatisch.
gruss ekkehard