Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fließtext in Userform u Datenbank

Fließtext in Userform u Datenbank
28.06.2021 11:59:47
Steve
Hallo Leute,
ich habe mir ein neues Projekt vorgenommen und bin gerade auf Ideensammlung. Und dieses mal möchte ich mich an die Userform heranwagen.
Ich möchte eine Userform anlegen, die Daten abfragt und in einer Tabelle speichert. Mit einer weiteren Userform möchte ich diese Daten wieder abrufen und bei Bedarf verändern können. Dazu hab ich auch viele Beispiele im Netz gefunden und denke das ich das soweit hinbekomme.
Aber einige Fragen sind geblieben.
1. Teil der Userform sollen auch Fließtextfelder sein.
Der User soll dort ein kleines Protokoll führen können. D.h. er trägt das Datum und ein Text ein.
Im Gegensatz zu den einmaligen Eingaben wächst diese also immer weiter.
Jetzt hab ich mich gefragt wie ich das - rein technisch - bewerkstelligen kann.
Bei der ersten Abfrage ist die Zelle in der Tabelle (Datenbank) noch leer. Ich kann also was reinschreiben und es wird gespeichert.
Aber ab diesem Moment müsste jeder weitere Text nach dem schon existierenden Text in derselben Zelle übertragen werden.
Gibt es also eine Obergrenze dessen was so eine Zelle an Daten erfassen kann oder sollte?
Und ist diese herangehensweise schlau oder gibt es da bessere Wege?
2. Ziel der Userform
Früher hab ich Tabellen so angelegt, das jeder - nennen wir es Vorgang - eine eigene Folie hat.
Das Problem: Hat sich das Layout geändert, gilt jede Änderung nur für neue, aber nicht für alte Folien.
Deshalb dachte ich an eine Userform. Wenn ich die veränder, sollte das doch immer auswirkungen auf den gesamten Datenbestand haben.
Ich habe also keinen Datensatz der nicht dem aktuellen Layout entspricht weil die Userform nur eine Maske ist die ihre Daten aus der Datenbank abruft.
Liege ich da richtig?
3. Auslesen der Datenbank
Mit der Kombo von INDEX und VERGLEICH in VBA sollte ich dann diese Tabelle sauber auslesen können.
Ist dieser Gedanke richtig?
Allerdings schreibt man das in VBA anders glaube ich. Was müsste ich mir dafür anschauen?
Ich habe noch keine Beispieltabelle weil ich noch versuche meine Gedanken zu sortieren. Ich würde mich freuen wenn mir jemand meine, zugegeben, längere Anfrage beantworten kann.
Viele Grüße
Und vielen Dank im vorraus
Steve

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Datenbank
30.06.2021 17:45:29
Yal
Hallo Steve,
herzliche Glückwunsch zu deinem Erkenntnis, dass Daten kein Format haben sollen, sondern diese erst bei der Anzeige vergeben wird. Ein bischen wie die Beiträge in diesem Forum: so wie sie angezeigt werden, werden sie nicht gespeichert. Hans hat vor kurzem eine Änderung am Layout gemacht und alle Beiträge, auch die von 2004, haben dieselben, neuen Erscheinungsbild.
Es ist der Konzept Model-View-Controller: Trennung der Datenhaltung (Model) vom Anzeige (View) und Verarbeitung (Controller).
Das besondere an Excel ist, dass es genau diese Vermischung ermöglicht, sogar davon lebt.
Daher mein Vorschlag: wenn es Dir anliegt, VBA zu lernen und nicht irgendeine "wie mache ich in Excel richtig" (genauer wäre: "wie vermeide es in Excel falsch zu machen"), dann lasst Excel -kurzzeitig- liegen und gehe auf Access. Access ist eine Datenbank und dementsprechend darauf ausgelegt, die Daten in Tabellen und Datensätze zu verarbeiten. VBA ist dort auch zu Hause. Es verwendet nur eine Access-spezifische Objekt-modell, aber die Konzepte sind dieselbe.
Und alles was Du in Access lernst, bringt dich ein Schritt weiter in Richtung "weniger falsch" in Excel zu arbeiten, wenn es darum geht, Daten effizient zu bearbeiten.
VG
Yal
Anzeige
AW: Datenbank
30.06.2021 22:59:12
Steve
Moin Yal,
Ich danke dir für deine Antwort. Leider gibt es meines wissens Access nicht für MAC. Ich hatte nämlich auch darüber nachgedacht dieses zu nutzen. Ebenfalls hat mich abgeschreckt, das ich gelesen habe, dass es Access wohl bald überhaupt nicht mehr geben wird. (Letzteres scheint wohl schon lange ein Thema zu sein, las ich. Deshalb war das nur ein untergeordneter Punkt für Excel.
Aber ich danke dir für deine Anmerkung. Ich habe hier noch einen alten Windows Rechner und werde mir das in Access zumindest mal anschauen. Dennoch muss ich es später auf einen MAC ausführen den ich leider nicht mit Bootcamp oder Parallels verwenden darf. (Warum auch immer)
Steve
Anzeige
AW: Datenbank
30.06.2021 23:25:51
Steve
Moin Yal,
Ich danke dir für deine Antwort. Leider gibt es meines wissens Access nicht für MAC. Ich hatte nämlich auch darüber nachgedacht dieses zu nutzen. Ebenfalls hat mich abgeschreckt, das ich gelesen habe, dass es Access wohl bald überhaupt nicht mehr geben wird. (Letzteres scheint wohl schon lange ein Thema zu sein, las ich. Deshalb war das nur ein untergeordneter Punkt für Excel.
Aber ich danke dir für deine Anmerkung. Ich habe hier noch einen alten Windows Rechner und werde mir das in Access zumindest mal anschauen. Dennoch muss ich es später auf einen MAC ausführen den ich leider nicht mit Bootcamp oder Parallels verwenden darf. (Warum auch immer)
Steve
Anzeige
AW: Fließtext in Userform u Datenbank
30.06.2021 19:01:01
ChrisL
Hi Steve
Ich bin ganz bei Yal d.h. Access wäre ebenfalls mein erster Gedanke.
Einen Punkt möchte ich noch ergänzen. Aufgrund deiner Bezeichnung 'Fliesstext' und weil du den folgenden Satz schreibst:
Aber ab diesem Moment müsste jeder weitere Text nach dem schon existierenden Text in derselben Zelle übertragen werden.
Ich interpretiere, dass du ein ganzes Protokoll in einer einzigen Zelle führen möchtest. Dies solltest du sein lassen und für jeden Protokolleintrag (Datensatz) eine neue Zeile nehmen. Die Frage nach der Text-Obergrenze pro Zelle wäre mit 'ja' zu beantworten, aber unabhängig von der Höhe der Obergrenze (die genaue Anzahl Zeichen könnte man recherchieren), es widerspricht jeglichem Grundsatz von Datenbanken.
Ich könnte mir vorstellen (wild guess), dass die Idee für diese Art der Protokollierung daher kommt, dass du eine 'relationale Datenbank' benötigst:
https://de.wikipedia.org/wiki/Relationale_Datenbank
Access ist u.a. auch speziell hierfür bestens geeignet. Mit Schlüssel (ID-Nummer) lassen sich mehrere Tabellen verbinden. Ein Beispiel:
Tabelle Kunden:

ID;Name
1;Meier AG
2;Müller GmbH
3;Steve Ltd.
usw.
Tabelle Änderungsprotokoll:

Kunden-ID;Datum;Bearbeiter
1;01.01.2021;Hans
1;03.01.2021;Peter
2;03.01.2021;Hans
3;04.01.2021;Hans
3;05.01.2021;Susi
usw.
cu
Chris
Anzeige
AW: Fließtext in Userform u Datenbank
30.06.2021 23:24:03
Steve
Hallo Chris,
Das habe ich mir schon gedacht. Ich stelle es mir auch als sehr schwierig vor diese Menge die in sagen wir mal 10Jahren insgesamt in das Feld geschrieben wurden in einer Zelle zu schreiben ohne das irgendwann was schief geht.
Vielen Dank übrigens für den Link. Ich habe mir das durchgelesen und eine kleine Menge davon verstanden. Aber ich muss zugeben, das meiste ist für mich absolutes Neuland.
Ich habe mittlerweile einen weiteren Ansatz, vielleicht ist der besser, vielleicht magst du mir deine Meinung dazu sagen.
Ich konstruiere hier mal was. (Bin gerade beim erstellen und kann nächste Woche vielleicht eine Beispieldatei liefern.)
Eine Datenbank mit 10 Feldern. 9 Felder werden einmalig mit Daten befüllt. Ich nehme an diese Felder stellen überhaupt kein Problem dar.
Das 10te Feld wird aber beständig erweitert. Dabei schreibt der User einfach nur mit Datum und Zeitangabe etwas unter den bestehenden Text dazu.
Wenn ich das richtig verstanden habe, dann wird das -was auch immer- im Feld steht in der Tabelle in genau einer Zeile gespeichert. (In der klassischen Datenbank wie in den Feldern 1-9) Da sagtest du ja, dass das keine gute Idee ist.
Nun zu meiner neuen Idee.
Ich dachte mir ich könnte einfach beim anlegen des neuen Klienten ebenfalls eine txt generieren. Und der Inhalt dieses einen Feldes wird dann in dieser txt gespeichert bzw. beim aufrufen geladen.
Geht das so wie ich mir das vorstelle?
Zurück zu Access. Leider geht das mit Access nicht, da das alles auf einem Mac laufen muss. Meines Wissens gibt es Access für Mac aber nicht.
ABER, wenn ich dich richtig verstanden habe, dann kann meine Userform auch mehr als nur eine Tabelle auslesen bzw. Speichern.
Dann könnte ich doch auch eine zweite Tabelle anlegen, in der jede Spalte ein Klient und die Zeilen dann die jeweiligen Einträge sind..
Beim Aufruf wird der gesamte Inhalt (vielleicht auch nur die letzten 10 Zeilen) der jeweiligen Spalte in das Feld geladen.
Kann das gehen oder hab ich da was falsch verstanden?
Ich danke dir für deine Hilfe und bin jetzt schon gespannt auf deine Antwort.
Liebe Grüße
Steve
Anzeige
AW: Fließtext in Userform u Datenbank
30.06.2021 23:28:29
Steve
Hallo Chris,
Das habe ich mir schon gedacht. Ich stelle es mir auch als sehr schwierig vor diese Menge die in sagen wir mal 10Jahren insgesamt in das Feld geschrieben wurden in einer Zelle zu schreiben ohne das irgendwann was schief geht.
Vielen Dank übrigens für den Link. Ich habe mir das durchgelesen und eine kleine Menge davon verstanden. Aber ich muss zugeben, das meiste ist für mich absolutes Neuland.
Ich habe mittlerweile einen weiteren Ansatz, vielleicht ist der besser, vielleicht magst du mir deine Meinung dazu sagen.
Ich konstruiere hier mal was. (Bin gerade beim erstellen und kann nächste Woche vielleicht eine Beispieldatei liefern.)
Eine Datenbank mit 10 Feldern. 9 Felder werden einmalig mit Daten befüllt. Ich nehme an diese Felder stellen überhaupt kein Problem dar.
Das 10te Feld wird aber beständig erweitert. Dabei schreibt der User einfach nur mit Datum und Zeitangabe etwas unter den bestehenden Text dazu.
Wenn ich das richtig verstanden habe, dann wird das -was auch immer- im Feld steht in der Tabelle in genau einer Zeile gespeichert. (In der klassischen Datenbank wie in den Feldern 1-9) Da sagtest du ja, dass das keine gute Idee ist.
Nun zu meiner neuen Idee.
Ich dachte mir ich könnte einfach beim anlegen des neuen Klienten ebenfalls eine txt generieren. Und der Inhalt dieses einen Feldes wird dann in dieser txt gespeichert bzw. beim aufrufen geladen.
Geht das so wie ich mir das vorstelle?
Zurück zu Access. Leider geht das mit Access nicht, da das alles auf einem Mac laufen muss. Meines Wissens gibt es Access für Mac aber nicht.
ABER, wenn ich dich richtig verstanden habe, dann kann meine Userform auch mehr als nur eine Tabelle auslesen bzw. Speichern.
Dann könnte ich doch auch eine zweite Tabelle anlegen, in der jede Spalte ein Klient und die Zeilen dann die jeweiligen Einträge sind..
Beim Aufruf wird der gesamte Inhalt (vielleicht auch nur die letzten 10 Zeilen) der jeweiligen Spalte in das Feld geladen.
Kann das gehen oder hab ich da was falsch verstanden?
Ich danke dir für deine Hilfe und bin jetzt schon gespannt auf deine Antwort.
Liebe Grüße
Steve
Anzeige
AW: Fließtext in Userform u Datenbank
01.07.2021 19:24:24
ChrisL
Hi
Text-File schreiben ist kein Problem. Aber wenn du den Inhalt später in eine Zelle "laden" möchtest, dann bist du wieder am gleichen Punkt betr. Limitierung. Zudem würde ich es nicht als "Best Practice" ansehen. Beispielsweise für die Ermittlung von Prozesskennzahlen (z.B. Monatsauswertung Anzahl Protokolleinträge) müsstest du alle Text-Dateien einzeln durchsuchen.
Ja, du kannst über 1 Userform auch mehrere Tabellen bearbeiten. Es erhöht natürlich die Komplexität und erfordert mehr Fachwissen bzw. Einarbeitung. Insbesondere weil Excel nicht primär eine Datenbank-Anwendung (sondern Tabellenkalkulation) ist und sich die Schlüssel (ID-Nummern) nicht so einfach verbinden lassen, wie dies z.B. in Access der Fall gewesen wäre.
Unter Berücksichtigung vom Level (Basiskenntnisse), solltest du vielleicht bei deiner ursprünglichen Idee bleiben und in Kauf nehmen, dass du nach ein paar Jahren ein paar alte Protokolleinträge manuell löschen musst, damit es nicht zu umfangreich wird. Dies im Sinne einer 80/20 Lösung, um erste Erfahrungen zu sammeln.
Stufe 2 und mit mehr Einarbeitung verbunden, wäre eine Art von relationaler Datenbank innerhalb Excel zu erstellen. Auch wenn es eine Bastelarbeit bleibt, könntest du damit deine Kenntnisse erweitern. N.b. Multi-User Themen (mehrere Benutzer bearbeiten zufällig gleichzeitigen einen Datensatz) könnten Probleme machen.
Stufe 3 wäre eine echte Datenbank zu verwenden. Ausser Access gibt es noch andere DB-Formate. Aber dies scheint mir als Einsteigerprojekt (zu) ambitiös und ich denke du müsstest dir hierzu professionelle Hilfe (im Sinne von Auftragsprogrammierung) suchen. Zwar kannst du aus Excel auch in eine externe Datenbank schreiben/lesen, aber andererseits könnte man dann (je nach Bedarf) auch gleich eine hübsche Webanwendung in Betracht ziehen.
cu
Chris
Anzeige
AW: Fließtext in Userform u Datenbank
06.07.2021 09:51:32
Steve
Moin Chris,
sorry das ich jetzt erst schreibe.
ich merke schon, ich muss noch ein Haufen dazulernen. Ich danke dir für deine Anregungen und werde nun einfach mal beginnen und sehen wie weit ich komme.
Bis dahin verfolge ich mal die von dir treffend bezeichnete 80/20 Lösung.
Aber eine Frage habe ich zu dem Textfile noch. Wenn in dem Textfile jeder neue Beitrag in einer neuen Zeile geschrieben wird, kann man dann auch die letzten 10 Zeilen auslesen?
Stufe 2
Multi-User sind derzeit zum Glück kein Problem. Aber ich werde das für zukünftige Projekte mal ins Auge fassen. Hab es mir auf jeden Fall mal notiert, damit es nicht aus dem Kopf verschwindet.
Stufe 3
Nebenbei hab ich Access und parallels nochmal ins Gespräch gebracht.
eine Webanwendung? Ich nehme an das ist dann schon aufwändiger? Neue Programmiersprache, Kosten usw.
vielen Lieben Dank für deine Anregungen. Ich habe diese in meinen Besprechungen mit einfließen lassen.
Liebe Grüße
Steve
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige