Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1696to1700
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

Bearbeitung via Userform durch mehrere User

Bearbeitung via Userform durch mehrere User
24.06.2019 13:01:41
Sven
Hallo zusammen,
angehängte Datei ist ein Beispiel. Ich muss gerade mit einer weitaus komplexeren Version hiervon hantieren.
https://www.herber.de/bbs/user/130558.xlsm
Sinn der Sache ist es, dass Änderungen an den Daten nur via Userform vorgenommen (und protokolliert) werden und keine Arbeit direkt auf den Tabellenblättern stattfindet.
Das funktioniert alleine soweit auch ganz gut, allerdings müssen mehrere Anwender mit der Datei im Netzwerk arbeiten. Wie würdet Ihr hier vorgehen, damit es zu keinen Speicherkonflikten kommt?
In der Regel wird die Datei zur Ansicht geöffnet, das Ändern ist eher die Ausnahme. Ich dachte nun, ich nutze eine Schaltfläche, mit der man explizit in den Bearbeiten-Modus wechselt, wodurch die Textfelder beschreibbar und "Speichern" aktiv wird. Hat man gespeichert, wird dieser Modus wieder verlassen. Aber ich kann ja nicht ausschließen, dass zwei Anwender den gleichen Wert ändern.
Außerdem gibt es ein Protokoll-Blatt, auf dem automatisch vermerkt wird, wer wann welchen Wert von was auf was geändert hat. Jede Änderung ist eine Zeile. Das Herausfinden der letzten Zeile klappt ja auch nicht, wenn mehrere Anwender in der geteilten Mappe arbeiten.
Gibt es für so ein Problem irgendwelche Ideen?
Danke und Grüße
Sven

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bearbeitung via Userform durch mehrere User
24.06.2019 13:23:38
Rob
Hallo Sven,
denke da kommst Du mit Excel an die Grenzen des machbaren. Hier wird eine Windows-Applikation erforderlich sein (in .Net mit C# oder VB.Net programmiert), die mit einer Datenbank kommuniziert. Lasse mich aber gerne eines Bessern belehren.
Grüße,
Rob
PS: Ich könnte Dir sowas mit C# programmieren, wenn Du keinen Zeitdruck hast.
AW: Bearbeitung via Userform durch mehrere User
24.06.2019 13:31:21
Sven
Hallo Rob,
danke für das Feedback. Leider ist das nicht was ich hören wollte. :o)
Grundsätzlich wäre eine native Applikation gut, aber hier fehlt mir das Knowhow.
Eine andere Idee wäre noch, wenn ich bei Excel bliebe und die Datenhaltung in eine DB auslagere. Wie ich das sehe, würde sich dann ja die DB um solche Konflikte kümmern und das Excel-Userform nur noch der Darstellung dienen. Updates und Selects würden dann das Userform füllen oder die DB aktualisieren. Bisher habe ich diesen Schritt gescheut. :)
Weißt Du, ob ich mit Access das gleiche Problem hätte? Ein Transfer der bisherigen Logik in Access wäre zwar sicher aufwändig, aber vielleicht noch mit meinen Mitteln machbar...
Grüße
Sven
Anzeige
AW: Bearbeitung via Userform durch mehrere User
24.06.2019 13:43:53
Rob
Das würde schon gehen (Auslagerung der Daten nach Access), wenn Du auf jedem Rechner die Excel-Datei mit der Userform installierst und nicht zentral ablegen möchtest. Letzteres ist aber bei Dir der Fall, wenn ich es richtig verstanden habe. Sonst hättest Du ja keine Konflikte mit Bearbeitungs- und Leserechten.
AW: Bearbeitung via Userform durch mehrere User
24.06.2019 13:49:50
Sven
Hallo Rob,
können wir das mal durchspielen?
Ich würde im Netzwek
- eine Exceldatei mit den Userforms
- eine Access-Datei mit den Daten
haben.
Beim Start der freigegebenen Excel-Mappe werden die Daten aus Access ausgelesen und angezeigt. Bei Änderungen im Userform müssten diese Daten (wie geht das) in Access aktualisiert werden.
Wie sieht das nun bei zwei oder mehr Usern aus? Das Öffnen der Excel-Datei ist ja kein Problem, da freigegeben und eigentlich kein Inhalt vorhanden. Kann die Access-Datenbank jetzt nicht erkennen, wenn Änderungen am gleichen Datensatz vorgenommen werden?
Du siehst, ich bin da irgendwie am Schwimmen und versuche, die bisherige Arbeit zu retten und in eine Multiuser-Lösung (vorher nicht geplant) zu überführen.
Danke
Sven
Anzeige
AW: Bearbeitung via Userform durch mehrere User
24.06.2019 14:08:38
Rob
Du öffnest die Excel-Datei und das VBA-Makro zapft Deine Access-Datenbank an (entweder über ein Event oder Button-Click mit DAO oder ADODB). In einer Windows-Applikation würdest Du das Resultat anschl. in einem Datagridview angezeigt bekommen - in Excel verwendest Du hierfür einfach ein Arbeitsblatt der Excel-Datei.
Im nächsten Schritt nimmst Du über die Userform Änderungen im Arbeitsblatt vor und übergibst das geänderte Arbeitsblatt anschließend wieder zurück nach Access. Über die AutoNumber, die Du in Access vergibst, wird sichergestellt, dass der richtige Datensatz bearbeitet wird. In einer SQL-Datenbank heißt das Primary Key anstatt AutoNumber.
Ich hoffe das war einigermaßen verständlich, anstonsten gib Bescheid.
Anzeige
Kurze Erklärung zu Frontend und Backend
24.06.2019 14:55:24
Zwenn
Hallo Namensvetter,
mal grundsätzlich ein paar Erklärungen zu Begriffen, damit Du eine bessere Vorstellung davon bekommst, was Du da eigentlich machst bzw. erreichen möchtest.
Du möchtest Daten in einem zentralen Speicher erfassen und von dort auch wieder zur Verfügung stellen. Diese Daten werden durch mehrere Anwender gepflegt. Nun gibt es oft den Versuch diese Vorgänge in einer Excel-Datei abzubilden. Genau das funktioniert jedoch meistens nicht, weil es zu den Problemen kommt, die Du schon festgestellt hast. Wer darf wann was.
Es ist zwar ein Gesamtsystem, aber es hat zwei Enden. Nämlich das Frontend und das Backend. Das Frontend ist die Benutzeroberfläche, die die Anwender sehen und über die sie die Daten verwalten. Das Backend ist alles was im Hintergrund läuft. In den meisten Fällen also ein Datenbank System.
Das Problem ist nun, dass grade so viele Frontends zur Verfügung gestellt werden müssen, wie Anwender gleichzeitig auf dem Backend arbeiten. Am einfachsten kannst Du es Dir vorstellen, wenn Du eine Webseite nimmst.
Jeder Anwender, der die Webseite aufruft, kopiert die aktuelle Version der Frontend-Software auf seinen Rechner und sieht sie im Webbrowser. Werden Daten abgerufen oder gespeichert, sorgt die Backend-Software für die Verwaltung der Zugriffe. Das passiert für den Anwender einer Website völlig transparent. Er bekommt es nicht mit.
Genau das Gleiche passiert, wenn Du an einem Geldautomaten Geld abhebst. Alle Geldautomaten bilden das Frontend und können parallel verwendet werden. Es muss jedoch sicher gestellt sein, dass alle Konten im Backend immer nur einen Zugang zur Zeit zulassen.
Für Probleme, wie Du eines lösen willst, ist Excel deshalb aus meiner Sicht das falsche Werkzeug. Eine einzige Datei, die gleichzeitig als Front- und Backend agieren soll macht nur Probleme in der Verwaltung.
Das nur als kurze "Hintergrund-Erläuterung". Für die praktische Umsetzung hat Rob Dir ja schon Hinweise gegeben. Auch wenn man das vermutlich nicht an einem Nachmittag lernt.
Viele Grüße,
Zwenn
Anzeige
AW: Kurze Erklärung zu Frontend und Backend
24.06.2019 15:15:12
Rob
Hallo Zwenn,

Es muss jedoch sicher gestellt sein, dass alle Konten im Backend immer nur einen Zugang zur  _
Zeit zulassen.
Weißt Du ob es einen vergleichbaren Select Update Befehl in Access gibt? In einer SQL-Datenbank sorgt das dafür, dass ein Datensatz nicht parallel von mehreren Usern gleichzeitig manipuliert werden kann. Auf der anderen Seite würde Excel diese Gefahr ausschließen, weil ja nicht mehr wie eine Person Bearbeitungsrechte auf eine Datei erhält. Natürlich mit dem Nachteil, dass auch nur ein User Zugang hat.
AW: Kurze Erklärung zu Frontend und Backend
24.06.2019 20:31:52
Rob
Hm, damit müsste aber die ganze Datenbank blockiert sein und nicht nur die abgefragten Daten lt. SQL-Anweisung im Recordset. Werde ich gleich mal ausprobieren. Danke für den Link!
AW: Kurze Erklärung zu Frontend und Backend
24.06.2019 16:48:57
Sven
Könntest Du obiges Beispiel in eine solche Excel-Access-Lösung umwandeln?
AW: Kurze Erklärung zu Frontend und Backend
25.06.2019 11:05:18
Zwenn
Hallo Sven,
tut mir Leid, aber dafür müsste ich mich selber erst in die Materie vertiefen. Dazu fehlt mir aktuell leider die Zeit.
Viele Grüße,
Zwenn
AW: Bearbeitung via Userform durch mehrere User
24.06.2019 15:13:31
Sven
Rob, Zwenn,
vielen Dank schon mal.
Haltet Ihr das Modell, Excel als Front- und Access als Backend zu nutzen denn für praktikabel oder würdet Ihr dann ganz auf Excel verzichten? Konkret geht es bei mir um 10 bis 15 Nutzer. Hier jedem "sein" Frontend zukommen zu lassen, welches er im pers. Ordner speichert halte ich für realisitisch.
Ich müsste dann halt "nur" die bisherigen Arbeitsblätter herauslösen und in der Datenbank ablegen und verstehen, wie ich die Verknüpfung hergestellt bekomme. Habt Ihr da Literaturempfehulen oder Beispieldateien für mich?
Danke für die bisher großartige Unterstützung und Grüße
Sven
Anzeige
AW: Bearbeitung via Userform durch mehrere User
24.06.2019 15:26:13
Rainer
Hallo Sven,
ich habe mal eine QS-Liste mit ähnlicher Funktionalität erstellt. Ich beschreibe kurz den Weg:
Beim Öffnen der Liste wird immer eine lokale Kopie erstellt, somit kann Niemand die originale Datei beschädigen, alle können editieren.
Die eigentliche Liste ist NICHT in der Excel-Datei, sondern in einer CSV Datei abgelegt.
Wenn jetzt eine Änderung vom Nutzer gemacht wird, dann protokolliert VBA die Uhrzeit, den Nutzernamen und die Zeilennummer. Dann vergleicht es die lokale Kopie (vor der Änderung) mit der Originaldatei, um sicher zu gehen dass nicht 2 Nutzer die gleiche Zeile bearbeiten. Ist kein Konflikt da, so wird die neue oder geänderte Zeile in die Originaldatei und die csv geschrieben. Ist ein Konflikt da, bekommt der Nutzer eine Meldung und muss vergleichen.
Gruß, Rainer
Anzeige
AW: Bearbeitung via Userform durch mehrere User
24.06.2019 16:47:16
Sven
Hallo Rainer, hast Du da mal eine Beispielmappe?
AW: Bearbeitung via Userform durch mehrere User
26.06.2019 22:03:17
Rainer
Hallo Sven,
sorry für die späte Antwort.
Hier ist eine Version der Mappe.
https://www.herber.de/bbs/user/130606.xlsm
Sie wird dir pausenlos eine MsgBox um die Ohren hauen, weil die Datenbank fehlt. Du musst einmalig von Hand die Sub "WriteTextFile" im Modul2 ausführen, dann wird diese Datei erstellt.
Außerdem ist die Option "lokale Kopie" deaktiviert. Dazu gehe ins Workbook_Open Sub und aktiviere diese auskommentierte Zeile:
'ThisWorkbook.SaveAs Environ("temp") & "\QS-Copy.xlsm"
Wichtig hierbei ist, dass die "Copy" Datei nicht wiederholt gestartet werden darf, weil sonst wieder keine Verbindung zur Datenbank besteht. Diese wird immer im gleichen Ordner wie die Startdatei gesucht, aber die Copy liegt für gewöhnlich im TEMP Ordner.
Was diese Mappe jetzt nicht hat, ist die erwähnte vollständige Logging-Funktion. Es werden jetzt nur die letzten Änderungen angezeigt. Wenn diese Funktion dich interessiert, muss ich nochmal nachbessern.
Gruß, Rainer
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige