EXCEL einfache DB : Machbarkeitsanfrage

AwesomSTUFF

Commodore
Registriert
Juli 2011
Beiträge
5.029
Moin allerseits,

normalerweise schätze ich mich selbst ja als Excel Könner ein. Allerdings komm ich grade bei einer Aufgabe nicht voran.
Üblicherweise realisiere ich Datenbanken selbst ausschließlich in Access und habs nach inzwischen 12 Jahren auch ganz gut drauf komplexe Eingaben benutzerfreundlich zu gestalten.
Allerdings hab ich jetzt eine Aufgabe, bei der ich Access nicht verwenden kann, da der PC auf dem es laufen soll keine Lizenz besitzt und auch keine bekommen wird da ich das Projekt ein bisschen an unserer GF vorbei mit der Produktion entwickle.
Na jedenfalls hab ich mich gefragt, ob es möglich ist eine sehr einfache DB-Struktur mit einer 1:n Beziehung in Excel abzubilden.

To-Do
1 Master Datentabelle mit
ID; Datum; Ersteller; Startzeit; Ende

1 Slave Datentabelle mit n Datensätzen zur Master
ID; Master_ID; Grund; Bemerkung; Ausfallzeit

Das Ganze soll dann am besten wegen der "Userability" über Formular(e) gefüttert und auch wieder aufgerufen werden.
Mein Kollege, der schon ein wenig was mit Formularen gemacht hat in EXCEL meint erstmal "Nee, geht nicht" allerdings weiß ich ihn auch einzuschätzen (Einmal dumm gestellt...) und mag es nicht recht glauben.

Die Frage ist hier eigentlich nur - geht es oder ist das nicht mehr im Bereich dessen, was EXCEL abzubilden vermag?
Hoffe hier meldet sich jemand mit fundiertem Fachwissen und eigenen Erfahrungen zu Wort. Bitte keine Google Suchergebnisse und Halbwissen.

LG
 
Warum verwendest Du einfach keine andere Datenbank wie MySQL, MariaDB, wo es eine Menge Excel-Unterstützung gibt?

Und etwas an der GF vorbei machen ist in meinen Augen nicht gut und akzeptabel. Damit kannst Du Dir eine Menge Ärger einfangen.
 
  • Gefällt mir
Reaktionen: TheGreatMM
Excel ist nicht datenbanktauglich, die Werte in den einzelnen Spalten sind nicht fix an den Primärschlüssel gebunden. Eine Spalte neu sortiert und deine ganze DB ist im Eimer.

Ja, wenn man vorsichtig ist kann man das umgehen. Aber nicht wenn man das einem User gibt zum benutzen.
SQLExpress und dann aus Excel per ODBC?
 
Aus leidiger Erfahrung kann ich dir sagen das so etwas sicherlich mit Excel realisierbar ist, hab schon so manches Frankenstein Excel sehen müssen, über denn sinn mal hinweg gesehen bleibt die Frage ob man sich das Antun will. Wie @h00bi richtig sagt fehlen die wichtigsten Features einer DB.
Zur not ohne extra Server ne SQLite nehmen und die Abfragen und eingaben aus dem Excel raus machen.Was zu den normalen nachteilen führt das am besten nur einer die Excel datei nutzt.
 
Ich mach sowas immer auf einem LAMP Server da ist es dann egal was der Client lokal installiert hat. Für den Anfang kannst ja sowas zu Hilfe nehmen
 
Es geht eigentlich ausschließlich darum, den Jungs die Eingabe zu vereinfachen.
Dass das Ganze sehr anfällig ist, ist mir schon bewusst - wäre es als einfache Excel Liste aber auch wenn jemand anfängt dadrin rumzusortieren und eine Spalte nicht erwischt. Man kann aber ein Formular auch so gestalten, dass der User nicht ohne Weiteres auf die Tabellen kommt.
Ich denke ich hab Eingangs auch erläutert, dass es nicht meine Favorit-Lösung ist, also danke für die Belehrung in Sachen "relationale Datenbanksysteme" - hab ich aber gar nicht nach gefragt.
Datenbanken die mit MySQL im Backend laufen kann ich selber in Access - aber ich hab keine Zeit das umzusetzen um muss eben den Kollegen damit beauftragen der nur Excel kann und darüber hinaus kaum Vorkenntnisse mit sowas hat bzw. soll es kein 40h Projekt werden (was es ohne Vorkenntnisse locker würde).

EDIT: Die PHP Idee find ich eigentlich ganz geil :)
 
Zuletzt bearbeitet:
Ist VBA erlaubt, oder nicht? Wenn ja und je nachdem wie groß die Datensätze sind, kannst du mit Hilfe eines Connection-String Excel als DB nutzen. Zum Lesen von Daten sicherlich ausreichend...beim schreiben kann es allerdings zu Fehlern kommen, aber bei nur zwei Tabellen kann man sicherlich seine eigenen Funktionen bauen. Kommt halt drauf an was dein Kollege so drauf hat, für Anfänger wird das nicht einfach.
 
Anfänger ist er nicht und er soll ja auch seinen Horizont erweitern ;)
VBA ist erlaubt und in dem Fall wahrscheinlich sogar unabdinglich.
Leider geht es in erster Linie um das speichern. Ich kann denen dort keine DB installieren - was ich vllt. noch mit der IT regeln könnte wäre eben MySQL Treiber oder dergleichen aber weder ich noch jemand Anderes hat hier PHP Skills oder kann Forms in Java /C# bauen und wenn ich mir extern wen suche kann ich auch gleich nen Projekt für nen halbes Jahr anziehen und mir nen Systemhaus holen. Daher wollte ich die Ressourcen die ich habe nutzen und schon einmal Daten sammeln um dann im nächsten Schritt Nägel mit Köpfen machen zu können.
 
Also ich finde das völlig in Ordnung :-) Wie gesagt wenn die Datensätze nicht zu groß werden, lässt sich das recht "einfach" umsetzen.

Ihr könnt euch eine wrapper Klasse basteln über welche ihr SQL in eurem Excel File nutzen könnt. Irgenwas wie das hier:

Code:
Option Explicit

Private cN As Object 'connection object to the sheets itself

Private Sub Class_Initialize()
Set cN = CreateObject("ADODB.Connection")
cN = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
               "Data Source= " & ThisWorkbook.FullName & ";" & _
               "Extended Properties=""Excel 12.0; HDR=Yes;"""
cN.Open
End Sub

Public Sub GetRecordset(ByVal sql As String, ByRef rs As Object)
Set rs = CreateObject("ADODB.recordset")
rs.Open sql, cN, 2, 1
End Sub

Public Sub ExecuteSQL(ByVal sql As String)
cN.Execute sql
End Sub

Habe gerade nicht viel Zeit, aber vielleicht lade ich später mal ein Beispiel File hoch.
 
  • Gefällt mir
Reaktionen: AwesomSTUFF
Nur mal so nebenbei: Der Rechner um den es hier geht hängt schon am Netz, oder? Du könntest Excel auch nur als Frontend benutzen und die Daten in eine Access DB schieben. Eventuell geht das auch auf dem Rechner selbst, nur anschauen/bearbeiten musst du die Daten dann wo anders.

Braucht ihr das überhaupt noch?
 
...ich überlege gerade, wenn ich Access als DB nutze brauch ich da ne Access Lizenz auf dem PC?
Problematisch wird es wahrscheinlich in der Kombination Daten zuändern könnt ich mir denken.
Wir schauen uns aktuell die verschiedenen Optionen an.

Aktuell favorisiere ich eigentlich, die Daten per Userform im EXCEL selbst abzulegen und für die Master 1 Form zu machen das seine Daten in der Mastertabelle speichert und dassselbe für das Slave, welches über das Master aufgerufen wird. Nachdem ich mich jetzt sehr beiläufig mal mit den Userforms in EXCEL befasst habe sollte das speichern das geringste übel sein. Ich geh einfach mal davon aus, dass man bestimmte Variablen im VBA vom einen auf das andere Formular übertragen kann sobald man es öffnet. Das aufrufen und ändern ist glaube ich wesentlich anspruchsvoller.
 
Zuletzt bearbeitet:
Also wenns wirklich nur um die Struktur aus dem ersten Post geht, bau ich dir das für 100EUR mit allen UserForms und Funktionalitäten bis morgen. Alles was ich brauche ist eine Designvorlage. Schreib mir ne PM wenn Interesse besteht.

Ansonsten einfach hier wenn ihr noch spezielle Fragen habt :-)
 
Ich hab es Eingangs etwas vereinfacht dargestellt, aber im Prinzip ist es das.
Das Angebot kling nicht schlecht tbh. kannst mir ja mal schreiben, ob Du ne Rechnung ausstellst :)
 
Zurück
Oben