rightman
Goto Top

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]

Content-ID: 47579

Url: https://administrator.de/contentid/47579

Ausgedruckt am: 24.11.2024 um 14:11 Uhr

Kosh
Kosh 29.12.2006 um 09:59:43 Uhr
Goto Top
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.
rightman
rightman 29.12.2006 um 10:14:42 Uhr
Goto Top
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?

Das gefällt mir schon sehr gut;) Aber wie meinst du das mit dem Accessprojekt?
Da gibt es aber ein kleines Problem. Bei uns im Büro gibt es keinen Computer, der ständig an ist. und dann bringt es doch garnichts, die Datenbank freizugeben.

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.
Dafür fehlt mir leider die Zeit. Und den Punkt, dass kein Computer immer an ist, haben wir auch noch;(


eine datenbank ist immerhin zum zentralen
speichern von daten.

Genauso sehe ich das auch... Aber für den Rest hier im Büro ist das nur eine andere Art und Weise, Daten zu speichern. Es war ja mal gesagt, dass man das auch in einer Excel-Tabelle speichern kann. Naja, ich habe es ja schonmal geschafft eine mdb nehmen zu dürfen;)
Kosh
Kosh 29.12.2006 um 10:22:40 Uhr
Goto Top
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.
rightman
rightman 29.12.2006 um 10:37:18 Uhr
Goto Top
ja,

1. fällt aus, weil es geld kostet

2. hab ich schon vorgeschlagen, da wir ja 2 Computer im Lager haben, und die Antwort war: "Sowas brauchen wir nicht, es will keiner einen Server neben sich stehen haben."
und den Sinn von solch einem Server hat auch noch keiner verstanden... Stichwort Samba, Cups, MySQL, LDAP und so weiter... Da kann ich mich auf den Kopf stellen und ich bekomme keine Genemigung, einen Server hinzustellen, weil es ja "irgentwie anders " gehen muss.

3. fällt auch weg, weil es ja wieder Geld kostet.
Kosh
Kosh 29.12.2006 um 10:43:42 Uhr
Goto Top
milchmädchenrechnung:

deine arbeitszeit für den datenabgleich der 5 datenbanken
gegen
200 € für eine netzwerk-festplatte

ich schätze die platte hat sich schnell amortisiert face-smile

ich kann dein problem leider sehr gut verstehen.
habt ihr nicht irgendwo nen raum oder ne ecke wo der "server" keinen stört?
rightman
rightman 29.12.2006 um 10:49:15 Uhr
Goto Top
jap, zB im Lager. Einfach eine WLan Karte reinstecken (~30€, oder?) und dann kann es auch schon los gehen. Wurde aber auch wieder abgewimmelt, wenn da mal jemand gegen stößt, was dann und das "Lager" ist auch nur 3x3m groß und da wird andauernd umgeräumt. Aber mich würde das ja auch ganricht stören, wenn der Server neben mir steht. Aber das ist auch der falsche Punkt, über den wir hier diskutieren sollen^^
Also Fakt ist, ich kann hier keinen dazu überreden, einen Server oder andere Netzwerkgeräte hinzustellen, ich brauche leider eine Lösung, die man ohne Netzwerk betreiben kann.

Sonst hätte ich schon längst meinen Debian- Server hingestellt und dann würde auch alles funktionieren.
Torsten72
Torsten72 29.12.2006 um 12:15:45 Uhr
Goto Top
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
rightman
rightman 29.12.2006 um 12:26:05 Uhr
Goto Top
naja, der dumme der die datensätze abgleichen soll bin ja ich... und ich mach mir die arbeit nicht, ich weis ja, wie es besser geht...

aber das mit der vm is auch käse, dann muss ja der rechner trotzdem an sein und da ist dann eine freigabe besser... das kommt dann aufs gleiche hinaus...

hat denn keiner ne idee, wie ich access sagen kann, das er alles mitloggen soll, wenn veränderungen auftauchen?

das wäre für mich die einfachste variante...
Biber
Biber 29.12.2006 um 13:28:38 Uhr
Goto Top
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
rightman
rightman 29.12.2006 um 13:53:46 Uhr
Goto Top
Super;)

Danke. Ich mag das gebatche eigentlich auch.... Aber dann muss ich denen wohl 2 Möglichkeiten bieten:

1) Ein Server und dann das ganze Pi-Pa-Po mit Samba,Apache,MySQL usw.

oder

2) Jeder muss die Änderungen/ Ergänzungen in eine Exceldatei eintragen und ich brauche dann einen ganzen Arbeitstag fürs aktualisieren.

achso

3) Die können sich alleine damit quälen^^
Kosh
Kosh 29.12.2006 um 13:58:52 Uhr
Goto Top
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.
rightman
rightman 29.12.2006 um 14:14:52 Uhr
Goto Top
ja, das ist eigentlich ne gute ideeface-smile

hat access die möglichkeit UNIX_TIMESTAMP() zu speichern? denn dann geht das filtern ja auf die sekunde genau;)

und die abfrage wäre ja dann auch recht einfach zu gestalten...


select * from XXX where timestamp > 124124822


also meine frage jetzt, kann access einen unix_timestamp speichern?
Kosh
Kosh 29.12.2006 um 14:21:43 Uhr
Goto Top
tjo da bin ich überfragt.

aber einen standard-timestamp kannst du genausogut filtern. (der geht auch auf die sekunde genau)

aber ich empfehle dir diesbezüglich einen neuen thread mit der frage zu starten.
rightman
rightman 29.12.2006 um 14:30:38 Uhr
Goto Top
naja, soweit ist meine frage ja beantwortetface-smile

aber ich bin gespannt, ob noch jemand eine antwort zur eigentlichen frage hat...
bitrider
bitrider 31.12.2006 um 03:29:17 Uhr
Goto Top
Zuerst möchte ich dir mein tiefstes Mitgefühl aussprechenface-sad
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 Wahlface-smile
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>
BitClowner
BitClowner 10.01.2007 um 13:33:39 Uhr
Goto Top
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.
bitrider
bitrider 10.01.2007 um 14:50:34 Uhr
Goto Top
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?

JA - Das ist Modell Fileserver für armeface-smile


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 übrigbleibenface-smile
Also: IT BRINGT SOGAR GELD !-)
BitClowner
BitClowner 10.01.2007 um 15:51:39 Uhr
Goto Top
Hi,

nun bin ich mal gespannt, ob sich "rightman" dazu meldet.

Vorschlag 3 find ich auch super.
Biber
Biber 10.01.2007 um 23:00:30 Uhr
Goto Top
@all
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
rightman
rightman 15.01.2007 um 21:23:44 Uhr
Goto Top
ja, danke erstmal für alle, die mir hier so viel geantwortet habt. Ich habe in den letzten tagen leider nicht reingeschaut... dafür wollte ich mich erstmal entschuldigen...


ich habe das aber jetzt folgender maßen gehandhabt.

jeder der MA bekommt von mir die datenbank, mit der er alles machen kann, was er will und bekommt zusätzlich eine excel-tabelle, inder er die neuen kontaktdaten einträgt.

da die MA bei änderungen auch den primärschlüssel eintragen müssen, ist es für mich ein leichtes, die änderungen vorzunehmen. falls ich mal wieder luft habe in meiner arbeitszeit, was aber für jeden MA nie der fall ist *hehe*, werde ich den lösungsansatz 2 mit vorliebe umsetzen

ich würde mich dann aber bei BitClowner und bitrider (Bertil Maier) nocheinmal per igm melden, denn dass ist mir noch nicht so einleuchtend, wie ihr das genau meint, mit der syncronisation...

aber das dann zu einem anderen zeitpunkt. vielleicht kann man dann ja auch ein HowTo machen, denn dieses problem werden sicherlich auch noch andere leute haben


so long.................... rightman
Biber
Biber 15.01.2007 um 21:39:07 Uhr
Goto Top
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