MS Access DB aktualisieren/ Veränderungen mitloggen
Es haben 5 User eine Access Datenbank und diese soll nach Möglichkeit ohne großen Aufwand aktualisiert werden.
Also, mein Problem sieht folgender Maßen aus. Ich habe eine Access Datenbank und diese soll jeder Mitarbeiter bekommen, damit er mit dieser arbeiten kann. Da es eine Kontaktdatenbank ist, treten an dieser auch ständig Veränderungen auf und ich habe keine Lust 5000 Datensätze ständig miteinander zu vergleichen. Da sind mind. 2-3 Arbeitstage fällig.
Ich habe auch schon einmal den Vorschlag gemacht, einfach einen MySQL- Server zu nutzen, aber das wurde ganz schnell wieder abgewimmelt, da es ja sinnlos ist, einen Server im Büro stehen zu haben.
Also, meine Frage ist nun, wie kann ich der Access-DB sagen das sie alle Veränderungen in ein Textfile schreibt. Am besten wäre ja für jede Aktion den SQL-Query aufzuschreiben. Aber wie soll ich das machen?
Falls jemand einen Rat weis, dann freue ich micht über Vorschläge!
[Edit] Closed by Mod Biber am 15.1.2006 wegen unterstellter Unbeantwortbarkeit [/Edit]
Also, mein Problem sieht folgender Maßen aus. Ich habe eine Access Datenbank und diese soll jeder Mitarbeiter bekommen, damit er mit dieser arbeiten kann. Da es eine Kontaktdatenbank ist, treten an dieser auch ständig Veränderungen auf und ich habe keine Lust 5000 Datensätze ständig miteinander zu vergleichen. Da sind mind. 2-3 Arbeitstage fällig.
Ich habe auch schon einmal den Vorschlag gemacht, einfach einen MySQL- Server zu nutzen, aber das wurde ganz schnell wieder abgewimmelt, da es ja sinnlos ist, einen Server im Büro stehen zu haben.
Also, meine Frage ist nun, wie kann ich der Access-DB sagen das sie alle Veränderungen in ein Textfile schreibt. Am besten wäre ja für jede Aktion den SQL-Query aufzuschreiben. Aber wie soll ich das machen?
Falls jemand einen Rat weis, dann freue ich micht über Vorschläge!
[Edit] Closed by Mod Biber am 15.1.2006 wegen unterstellter Unbeantwortbarkeit [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 47579
Url: https://administrator.de/contentid/47579
Ausgedruckt am: 24.11.2024 um 14:11 Uhr
21 Kommentare
Neuester Kommentar
warum legst du die access datenbank mit den daten nicht zentral auf einem share ab, und erstellst für die 5 user ein access projekt dass auf die zentrale datenbank zugreift?
oder noch besser (weil schöner und schneller):
die daten liegen in einer access-datenbank auf einem netzwerkshare und du bastelst dir mit vb.net (visual studio express) eine gui zusammen mit der sie die daten bearbeiten können.
eine datenbank ist immerhin zum zentralen speichern von daten.
oder noch besser (weil schöner und schneller):
die daten liegen in einer access-datenbank auf einem netzwerkshare und du bastelst dir mit vb.net (visual studio express) eine gui zusammen mit der sie die daten bearbeiten können.
eine datenbank ist immerhin zum zentralen speichern von daten.
also um das ganze wirklich sinnvoll zu lösen bleibt nur die möglichkeit: 1 datenbank, mehrere zugriffe.
da gibts für kleine unternehmen recht günstige lösungen:
1. einen router mit usb anschluss, und dort nen usb-stick rein
(hängt natürlich von eurem internetzugang ab was ihr da nehmen könntet)
2. einen alten rechner (Pentium II oder III egal) irgendwo auftreiben und dort windows drauf (oder auch linux mit samba)
3. eine externe fesplatte mit netzwerkanschluss.
die gibts schon recht günstig. (je nach grösse von 150 € aufwärts)
ein access-projekt (*.adp) ist nix anderes als sagen wir mal ein frontend mit formularen, abfragen, berichten, welches auf eine getrennte datenbank (sql, access) zugreift.
da gibts für kleine unternehmen recht günstige lösungen:
1. einen router mit usb anschluss, und dort nen usb-stick rein
(hängt natürlich von eurem internetzugang ab was ihr da nehmen könntet)
2. einen alten rechner (Pentium II oder III egal) irgendwo auftreiben und dort windows drauf (oder auch linux mit samba)
3. eine externe fesplatte mit netzwerkanschluss.
die gibts schon recht günstig. (je nach grösse von 150 € aufwärts)
ein access-projekt (*.adp) ist nix anderes als sagen wir mal ein frontend mit formularen, abfragen, berichten, welches auf eine getrennte datenbank (sql, access) zugreift.
vielleicht hilft es, einen server in einer vmaschine laufen zu lassen, muss eben immer mindestens diese arbeitsstation an sein... der dreh- und angelpunkt ist doch die ablage der datensätze in einer datei. wenn die schnapsnasen das bei euch nicht kapieren, lass ihnen doch den spass, und die mitarbeiter können ruhig ihre zeit mit abgleichen von datensätzen verbringen und nicht mit sachen, die geld bringen.... so eine firma ist sozial völlig ok - die firma als selbstzweck, damit die leute ein auskommen haben... toll
Moin rightman,
da brauchen wir nicht länger rumeiern (auch wenn es nicht das ist, was Du hören willst):
Netzwerkfunktionalität ohne Netzwerkshare geht nicht. Ende.
Wenn die anderen in Deinem Arbeitsumfeld noch nicht in den 90ern angekommen sind - wünsch Ihnen trotzdem auch alles Gute für 2007 und vergiss es.
Fakt ist jedenfalls, dass ein sinnvolles Arbeiten mit gemeinsamen, "synchronen" oder "gleichen" Daten im Team nicht über irgendwelche asynchronen Batch-Log-Abgleich-Krücken machbar ist.
Und das schreibt Dir jemand, der Bätche heiß und innig liebt.
Grüße
Biber
da brauchen wir nicht länger rumeiern (auch wenn es nicht das ist, was Du hören willst):
Netzwerkfunktionalität ohne Netzwerkshare geht nicht. Ende.
Wenn die anderen in Deinem Arbeitsumfeld noch nicht in den 90ern angekommen sind - wünsch Ihnen trotzdem auch alles Gute für 2007 und vergiss es.
Fakt ist jedenfalls, dass ein sinnvolles Arbeiten mit gemeinsamen, "synchronen" oder "gleichen" Daten im Team nicht über irgendwelche asynchronen Batch-Log-Abgleich-Krücken machbar ist.
Und das schreibt Dir jemand, der Bätche heiß und innig liebt.
Grüße
Biber
als administrator empfehle ich die Nummer 3 !!!!!!! *lach*
ne mal wieder ernst.
es gibt zwar so sachen wie ablaufverfolgung (tracing) usw... aber das ist wohl überhaupt nicht zielführend.
eines fällt mir da noch ein:
erstelle in den tabellen eine neue spalte mit einem timestamp und jedes mal wenn ein datensatz geändert wird aktualisiere den timestamp auf das/die entspreche datum/zeit.
dann kannst aus den datenbanken ganz leicht rausfiltern welche datensätze geändert wurden.
ich mach das bei allen sql-basierenden applikationen so. aber in access sollte es auch funktionieren.
ne mal wieder ernst.
es gibt zwar so sachen wie ablaufverfolgung (tracing) usw... aber das ist wohl überhaupt nicht zielführend.
eines fällt mir da noch ein:
erstelle in den tabellen eine neue spalte mit einem timestamp und jedes mal wenn ein datensatz geändert wird aktualisiere den timestamp auf das/die entspreche datum/zeit.
dann kannst aus den datenbanken ganz leicht rausfiltern welche datensätze geändert wurden.
ich mach das bei allen sql-basierenden applikationen so. aber in access sollte es auch funktionieren.
Zuerst möchte ich dir mein tiefstes Mitgefühl aussprechen
Du hast offensichtlich eine ganz eigene Art von Problemen.
Antike Kravatten - wenig Hirn - aber Wollust am Sparen ...
Vor einigen Jahren hätte ich dir geraten sofort Stellenanzeigen zu lesen.
Heute rate ich eher zur Hab-Acht Stellung!
Aber jetzt zu deinem Access Problem:
- wenn mehrere Dateien (egal welche) existieren, die geschrieben werden können, laufen die Daten unweigerlich auseinander
- Daten zu synchronisieren ist a) superaufwändig b) fehlerträchtig!
- Ansatz1 die Daten zu zentralisieren geht nicht, weil keine Maschine DAUERND läuft
- Ansatz2:
du arbeitest mit 2 Tabellen
in der ersten kann von normalen usern nur gelesen werden
in der 2ten werden die neuen Kontakte erfasst
Jede der Userdatenbanken heisst wie der User ( hans.mdb, ute.mdb ...)
Es gibt einen SYNC Tag an dem alle user ihre Datenbanken auf einer Maschine abliefern.
Eine übergeordnete Datenbank hat Verknüpfungen zu allen 2ten Tabellen und zieht diese zusammen und baut daraus die neue 1ste Tabelle.
Rausschieben auf die userDBs und fertig.
Jetzt können die user "ihre" Datenbanken wieder haben und damit arbeiten.
- Ansatz3 !!! In DER Struktur meine Wahl
Suche dir die Sekretärin mit den tollsten Fingernägeln, die hat die meiste Zeit...
( NEIN - NICH SCHIMPFEN ...)
Alle Mitarbeiter drücken ihr die neuen Kontaktdatenzettel in die Hand; sie erfasst diese zentral und abends bekommen alle Mitarbeiter einen USB-Stick, im Wechsel, mit den aktuellen Daten.
USB-Sticks in der Größe gibt's an allen möglichen Ecken als Werbegeschenke.
Das wird den Kravatten gefallen.
IT OHNE KOSTEN <ROL>
Du hast offensichtlich eine ganz eigene Art von Problemen.
Antike Kravatten - wenig Hirn - aber Wollust am Sparen ...
Vor einigen Jahren hätte ich dir geraten sofort Stellenanzeigen zu lesen.
Heute rate ich eher zur Hab-Acht Stellung!
Aber jetzt zu deinem Access Problem:
- wenn mehrere Dateien (egal welche) existieren, die geschrieben werden können, laufen die Daten unweigerlich auseinander
- Daten zu synchronisieren ist a) superaufwändig b) fehlerträchtig!
- Ansatz1 die Daten zu zentralisieren geht nicht, weil keine Maschine DAUERND läuft
- Ansatz2:
du arbeitest mit 2 Tabellen
in der ersten kann von normalen usern nur gelesen werden
in der 2ten werden die neuen Kontakte erfasst
Jede der Userdatenbanken heisst wie der User ( hans.mdb, ute.mdb ...)
Es gibt einen SYNC Tag an dem alle user ihre Datenbanken auf einer Maschine abliefern.
Eine übergeordnete Datenbank hat Verknüpfungen zu allen 2ten Tabellen und zieht diese zusammen und baut daraus die neue 1ste Tabelle.
Rausschieben auf die userDBs und fertig.
Jetzt können die user "ihre" Datenbanken wieder haben und damit arbeiten.
- Ansatz3 !!! In DER Struktur meine Wahl
Suche dir die Sekretärin mit den tollsten Fingernägeln, die hat die meiste Zeit...
( NEIN - NICH SCHIMPFEN ...)
Alle Mitarbeiter drücken ihr die neuen Kontaktdatenzettel in die Hand; sie erfasst diese zentral und abends bekommen alle Mitarbeiter einen USB-Stick, im Wechsel, mit den aktuellen Daten.
USB-Sticks in der Größe gibt's an allen möglichen Ecken als Werbegeschenke.
Das wird den Kravatten gefallen.
IT OHNE KOSTEN <ROL>
Hi,
wenn ich Dich richtig verstanden habe, bist Du derjenige, der an einem beliebigen Arbeitstag in der Woche die mdb's der Kollegen einsammelt, dann versucht die Daten gerade zu ziehen und anschließend die mdb's wieder verteilt.
Ist das so?
Nun mein Ansatz (Idee):
Teile zunächst deine MDB in einen Frontend und einen Backend auf (dafür gibt es einen Assistenten). Vorteil, nur die Daten, die für alle gültig sind, befinden sich an einer Stelle, nämlich im Backend.
Erzeuge nun für jeden anderen Mitarbeiter einen Ordner, z.B. MA1, MA2, usw.
Kopiere den Front- und Backend in diesen Ordner.
Benenne die Backends analog der Ordner um.
Öffne jeden Frontend und verknüpfe den zugehörigen Backend neu (Menü Extras --> Datenbank-Dienstprogramme --> Tabellenverknüpfungsmanager)
Suche im Internet nach einer VBA-Routine, die beim Öffnen des Frontends (via Autostart-Makro oder Startformular) die Tabellenverknüpfungen überprüft und ggfs. neu verlinkt.
Bis hierhin ist alles mehr oder weniger Vorbereitung.
Sammle die Backends zum geeigneten Zeitpunkt wieder ein.
Verknüpfe nun alle Tabellen der Backends mit Deinen Masterbackend. Die verknüpften Tabellen werden bei Namensgleichheit durchnummeriert. Laß das so.
Jetzt bis Du in der Lage mit dem Queryassistenten geignete Update-Queries zu erstellen, die alle neuen oder geänderten Daten der Backends in die Tabellen des Master-Backends einfügen oder ändern.
Mit diesen Master-Tabellen und geigneten Queries kannst Du nun die Tabellen der anderen Backends aktualisieren.
Anschließend müssen nur noch Backends auf den PC's der Mitarbeiter überkopiert werden.
PS. Feedback wäre nett.
wenn ich Dich richtig verstanden habe, bist Du derjenige, der an einem beliebigen Arbeitstag in der Woche die mdb's der Kollegen einsammelt, dann versucht die Daten gerade zu ziehen und anschließend die mdb's wieder verteilt.
Ist das so?
Nun mein Ansatz (Idee):
Teile zunächst deine MDB in einen Frontend und einen Backend auf (dafür gibt es einen Assistenten). Vorteil, nur die Daten, die für alle gültig sind, befinden sich an einer Stelle, nämlich im Backend.
Erzeuge nun für jeden anderen Mitarbeiter einen Ordner, z.B. MA1, MA2, usw.
Kopiere den Front- und Backend in diesen Ordner.
Benenne die Backends analog der Ordner um.
Öffne jeden Frontend und verknüpfe den zugehörigen Backend neu (Menü Extras --> Datenbank-Dienstprogramme --> Tabellenverknüpfungsmanager)
Suche im Internet nach einer VBA-Routine, die beim Öffnen des Frontends (via Autostart-Makro oder Startformular) die Tabellenverknüpfungen überprüft und ggfs. neu verlinkt.
Bis hierhin ist alles mehr oder weniger Vorbereitung.
Sammle die Backends zum geeigneten Zeitpunkt wieder ein.
Verknüpfe nun alle Tabellen der Backends mit Deinen Masterbackend. Die verknüpften Tabellen werden bei Namensgleichheit durchnummeriert. Laß das so.
Jetzt bis Du in der Lage mit dem Queryassistenten geignete Update-Queries zu erstellen, die alle neuen oder geänderten Daten der Backends in die Tabellen des Master-Backends einfügen oder ändern.
Mit diesen Master-Tabellen und geigneten Queries kannst Du nun die Tabellen der anderen Backends aktualisieren.
Anschließend müssen nur noch Backends auf den PC's der Mitarbeiter überkopiert werden.
PS. Feedback wäre nett.
Hi,
wenn ich Dich richtig verstanden habe, bist
Du derjenige, der an einem beliebigen
Arbeitstag in der Woche die mdb's der
Kollegen einsammelt, dann versucht die Daten
gerade zu ziehen und anschließend die
mdb's wieder verteilt.
Ist das so?
wenn ich Dich richtig verstanden habe, bist
Du derjenige, der an einem beliebigen
Arbeitstag in der Woche die mdb's der
Kollegen einsammelt, dann versucht die Daten
gerade zu ziehen und anschließend die
mdb's wieder verteilt.
Ist das so?
JA - Das ist Modell Fileserver für arme
Nun mein Ansatz (Idee):
Teile zunächst deine MDB in einen
Frontend und einen Backend auf (dafür
gibt es einen Assistenten). Vorteil, nur die
Daten, die für alle gültig sind,
befinden sich an einer Stelle, nämlich
im Backend.
Erzeuge nun für jeden anderen
Mitarbeiter einen Ordner, z.B. MA1, MA2,
usw.
Kopiere den Front- und Backend in diesen
Ordner.
Benenne die Backends analog der Ordner um.
Öffne jeden Frontend und verknüpfe
den zugehörigen Backend neu (Menü
Extras --> Datenbank-Dienstprogramme
--> Tabellenverknüpfungsmanager)
Suche im Internet nach einer VBA-Routine,
die beim Öffnen des Frontends (via
Autostart-Makro oder Startformular) die
Tabellenverknüpfungen
überprüft und ggfs. neu verlinkt.
Bis hierhin ist alles mehr oder weniger
Vorbereitung.
Sammle die Backends zum geeigneten Zeitpunkt
wieder ein.
Verknüpfe nun alle Tabellen der
Backends mit Deinen Masterbackend. Die
verknüpften Tabellen werden bei
Namensgleichheit durchnummeriert. Laß
das so.
Jetzt bis Du in der Lage mit dem
Queryassistenten geignete Update-Queries zu
erstellen, die alle neuen oder
geänderten Daten der Backends in die
Tabellen des Master-Backends einfügen
oder ändern.
Mit diesen Master-Tabellen und geigneten
Queries kannst Du nun die Tabellen der
anderen Backends aktualisieren.
Anschließend müssen nur noch
Backends auf den PC's der Mitarbeiter
überkopiert werden.
Du hast meinen Ansatz #2 super sauber ausformuliert. So sollte es gehen...
Aber ich steh immer noch auf #3!
Einer geht noch:
Alle Computer bis auf einen werden verkauft!
Von dem Erlös kauft man sinnvolle Handys/PDAs !
Die Daten werden auf dem übriggeblieben Rechner gepflegt. Morgens und abends kommen die entsprechenden Mitarbeiter vorbei und bekommen per bluethooth, während einem Pläuschen, ihre Daten rübergenudelt.
Dann müsste sogar noch Geld für die Kaffekasse übrigbleiben
Also: IT BRINGT SOGAR GELD !-)
@all
Ist mir als Mod in diesem Bereich eigentlich auch egal, ob er sich noch mal dazu äußert - ich denke jede/r Mitleser/in in diesem Thread konnte die verschiedenen Argumentationen nachvollziehen (die alle in die Richtung gingen "Lass den Unsinn, überleg doch erst mal, was sinnvoll wäre...").
Ich kenne auch solche Unternehmen, die sich beharrlich weigern, irgendetwas "anders" zu machen als sie es "schon immer gemacht haben", nur weil der Rest der Welt sich angeblich weiterentwickelt haben soll.
[Ich kenne eine im Bremer Sozialbereich tätige Firma mit 12 fest angestellten MA mit jeweils eigenem Schreibtisch und organisatorisch klar abgegrenzten Aufgabenbereichen, einer eigenen Domäne, 3 Servern und 12 Clientrechnern....und insgesamt EINEM Mailaccount.
"Wir haben doch keine Geheimnisse voreinander. Wenn jemand eine Mail an uns schreibt, können das doch alle lesen. Und wenn wir eine Mail verschicken, ist das doch der XXXX-Firmenname als Ganzes..."]
Wenn es in rightman's Firma politisch nicht gewollt ist oder die anderen unter "Administrator" jemand verstehen, der für Datenbereinigung und -konsolidierung zuständig ist, wenn dort die Datensicherung mit dem Etagenkopierer gemacht wird....
...was soll's. Dieses Forum hat nicht den Anspruch, jede Frage im Sinne des Fragenden beantworten zu können und zu wollen.
Jedenfalls nicht in den Seitenarmen des Forums, in denen ich den Mod spiele.
@rightman
Ich lasse den Thread noch bis zum Wochenende offen, falls Du noch etwas dazu schreiben möchtest - dann schließe ich ihn.
Grüße
Biber
nun bin ich mal gespannt, ob sich "rightman" dazu meldet.
Ist mir als Mod in diesem Bereich eigentlich auch egal, ob er sich noch mal dazu äußert - ich denke jede/r Mitleser/in in diesem Thread konnte die verschiedenen Argumentationen nachvollziehen (die alle in die Richtung gingen "Lass den Unsinn, überleg doch erst mal, was sinnvoll wäre...").
Ich kenne auch solche Unternehmen, die sich beharrlich weigern, irgendetwas "anders" zu machen als sie es "schon immer gemacht haben", nur weil der Rest der Welt sich angeblich weiterentwickelt haben soll.
[Ich kenne eine im Bremer Sozialbereich tätige Firma mit 12 fest angestellten MA mit jeweils eigenem Schreibtisch und organisatorisch klar abgegrenzten Aufgabenbereichen, einer eigenen Domäne, 3 Servern und 12 Clientrechnern....und insgesamt EINEM Mailaccount.
"Wir haben doch keine Geheimnisse voreinander. Wenn jemand eine Mail an uns schreibt, können das doch alle lesen. Und wenn wir eine Mail verschicken, ist das doch der XXXX-Firmenname als Ganzes..."]
Wenn es in rightman's Firma politisch nicht gewollt ist oder die anderen unter "Administrator" jemand verstehen, der für Datenbereinigung und -konsolidierung zuständig ist, wenn dort die Datensicherung mit dem Etagenkopierer gemacht wird....
...was soll's. Dieses Forum hat nicht den Anspruch, jede Frage im Sinne des Fragenden beantworten zu können und zu wollen.
Jedenfalls nicht in den Seitenarmen des Forums, in denen ich den Mod spiele.
@rightman
Ich lasse den Thread noch bis zum Wochenende offen, falls Du noch etwas dazu schreiben möchtest - dann schließe ich ihn.
Grüße
Biber
Hmmm...
danke, rightman, für Deine Rückmeldung.
Dennoch schließe ich jetzt diesen Thread - von der Unbeantwortbarkeit nach wie vor felsenfest überzeugt.
IMHO ist es ein organisatorisches bzw politisches Problem, für das es keine sinnvolle "handwerkliche" Lösung geben kann.
Jede Lösung, die sich bei Euch durchsetzen lässt, läuft anscheinend darauf hinaus, dass Du mit Eimerchen und Handfeger den anderen MA hinterherhechelst, um deren achtlos irgendwo fallengelassene Daten aufzulesen und an der richtigen Stelle einzusortieren.
So etwas wäre für einige hier im Forum schon ein Kündigungsgrund, andere (so wie ich) würden dagegen eher lachend in die Kreissäge springen als so etwas auch nur 20 sec mitzuspielen.
Oder demonstrativ mit einer roten Pappnase zur Arbeit erscheinen.
Ich möchte jedenfalls nicht weiter in einem Admin-Forum laut darüber nachdenken. Sorry.
Wie auch immer, sollte wider Erwarten doch noch vermeintlicher oder tatsächlicher Bedarf zur weiteren Diskussion und/oder Lösungsfindung bestehen, mache ich gern diesen Thread wieder auf - bitte PN an mich.
Nochmals sorry - das musste ich tun.
Dazu steh ich - und lass mich auch dafür verhauen.
Gruß
Biber
danke, rightman, für Deine Rückmeldung.
Dennoch schließe ich jetzt diesen Thread - von der Unbeantwortbarkeit nach wie vor felsenfest überzeugt.
IMHO ist es ein organisatorisches bzw politisches Problem, für das es keine sinnvolle "handwerkliche" Lösung geben kann.
Jede Lösung, die sich bei Euch durchsetzen lässt, läuft anscheinend darauf hinaus, dass Du mit Eimerchen und Handfeger den anderen MA hinterherhechelst, um deren achtlos irgendwo fallengelassene Daten aufzulesen und an der richtigen Stelle einzusortieren.
So etwas wäre für einige hier im Forum schon ein Kündigungsgrund, andere (so wie ich) würden dagegen eher lachend in die Kreissäge springen als so etwas auch nur 20 sec mitzuspielen.
Oder demonstrativ mit einer roten Pappnase zur Arbeit erscheinen.
Ich möchte jedenfalls nicht weiter in einem Admin-Forum laut darüber nachdenken. Sorry.
Wie auch immer, sollte wider Erwarten doch noch vermeintlicher oder tatsächlicher Bedarf zur weiteren Diskussion und/oder Lösungsfindung bestehen, mache ich gern diesen Thread wieder auf - bitte PN an mich.
Nochmals sorry - das musste ich tun.
Dazu steh ich - und lass mich auch dafür verhauen.
Gruß
Biber