Ich habe eine Tabelle Adressen.
Diese existiert auf 2 Rechnern lokal.
Am Abend will ich die Änderungen die der Andere Partner auf seinem Rechner gemacht hat mit den Änderungen die ich auf meinem PC gemacht habe synchronisieren, sodaß auf beiden Rechnern in der Tabelle sowohl die änderungen des einen als auch die des anderen vorhanden sind.
Wie mache ich das am besten?
Ich habe keine VBA Kenntnisse. Habe die komplizierte Datenbank mit lauter Makros geschrieben.
Das ist schwierig. Am besten ganz auf die lokalen Versionen verzichten und in einer Tabelle arbeiten …
Ansonsten brauchst du ein Kennzeichen, wenn in einem DAtensatz was verändert wurde … z.B. 1 für keine Veränderung, 2 für Veränderung … dann eine Abfrage auf Kennzeichen 2 … das Ergebnis an die andere Tabelle anfügen … und hinterher Duplikate mit 1 löschen … danach muss aber eine neue lokale Version erstellt werden, wo wieder alles auf 1 steht …
was anderes fällt mir ohne VBA, SQL … nicht ein.
Hallo !
Das einfachste wäre, wenn die beiden Rechner vernetzt sind, eine zentrale Datenbank zu nutzen, in der beide Parteien zentral ihre Änderungen pflegen. In einem Netzwerk eigentlich kein Problem. Ohne Netzwerk wird es schwierig. Theoretisch brauchtest du für jedes Feld einen Timestamp mit Änderungsdatum und müsstest dann die beiden Datenbestände abgleichen. Spätestens, wenn zwei Felder in einem Satz betroffen sind, wird es schwierig.
Ich würde versuchen die Netzwerkversion hin zu bekommen.
Gruß
Christof
Hallo,
erstmal ist es wichtig zu wissen, welche Version du einsetzt, da dies gerade im Hinblick aufs das Synchronisieren große Unterschiede gibt!
Sollten die Rechner im gleichen Netzwerk sein, dann ist ist es einfacher die Tabelle zum gemeinsamen Zugriff in eine eigene DB auszulagern. siehe: http://www.team-noehring.de/php/cmsmadesimple/index…
Zur Synchronisation bitte dies lesen:
http://office.microsoft.com/de-de/access-help/CH0063…
Ansonsten kann man das nur per VBA sicher lösen und ist nicht mehr ganz trivial.
Gruss und schönes Fest
Joey
Hi,
leider wie fast immer zu ungenau beschrieben.
Nach jedem Synchronisieren sollen immer auf beiden PCs die Stände beider PCs zu sehen sein, wie soll denn das aussehen?
Angenommen auf dem einen PC macht jemand aus dem Hans Meyer Hans Mayer und auf dem anderen PC ändert jemand die Telefonnummer dieser Person, dann sollen nach dem Synchronisieren beide auf ihren PCs beide Nachnamen und beide Telefonnummern sehen?
Und enthält die Adreßtabelle am Ende auch ein Bemerkungsfeld oder ein Datumsfeld „Stand“ oder „letzte Änderung“? Dann wird es ganz kompliziert…
Also egal, wie genau das laufen soll, schätze ich schonmal, daß das kompliziert werden wird. So lange nicht geregelt ist, daß entweder
A) ein Datensatz immer nur auf PC1 ODER PC2 geändert werden darf
oder
B) ein PC immer der Master ist, dessen Änderungen Vorrang haben.
Und haben die Adreßtabellen auch ein ID-Feld?
Und wenn ja, wie lauten die IDs und wie werden sie generiert?
Ich habe eine Tabelle Adressen.
Diese existiert auf 2 Rechnern lokal.
Am Abend will ich die Änderungen die der Andere Partner auf
seinem Rechner gemacht hat mit den Änderungen die ich auf
meinem PC gemacht habe synchronisieren, sodaß auf beiden
Rechnern in der Tabelle sowohl die änderungen des einen als
auch die des anderen vorhanden sind.
Hallo Jolana
Was meinst du mit Änderungen?
Nur zusätzliche Datensätze oder auch Änderungen in einzelnen Feldern?
Wenn es sich nur um zusätzliche Datensätze handelt, erstellst du dir einfach eine Abfrage mit beiden Tabellen und verknüpfst sie über ein oder mehrere eindeutige Felder. Einmal lässt du dir alle Daten der Tabelle A anzeigen und z.B. ein Feld von Tabelle B das du mit dem Kriterium IST NULL versiehst. Dann erstellst du eine weitere Abfrage und drehst die Verknüpfung um.
Wenn einzelne Felder von Datensätzen geprüft werden sollen, könnte man das auf ähnliche Weise machen. Das halte ich aber nicht für sinnvoll, weil relativ viele Abfragen erstellt werden müssten. Hier wäre dann u.U. eine Art Änderungsstempel sinnvoll, d.h. es wird bei Änderung jeweils das Feld und der Datensatz dokumentiert und dann abgeglichen.
Um dies detailliert zu beschreiben müsste man vielleicht doch erst einmal die Struktur der DB prüfen…
Grüsse aus Berlin / Bremen
Matthias
Da kann ich nicht helfen, Mit Makros unter Access kenne ich mich nicht aus.
Ich kann das nur in SQL und das lässt sich mit nem Makro nicht aufrufen
Hallo,
ich würde mich nicht damit herumärgern, wie ich Tabellen sychronisieren soll. Seit Windows XP gibt es die Möglichkeit mit dem Aktenkoffer (also die komplette Datenbank übertragen), ich bevorzuge seit Jahren aber folgende Variante: Ich teile die Datenbank in ein Front- und ein Backend auf, wobei sich die „echten“ Daten - also die Tabellen - im Backend befinden. Dieses Backend liegt auf dem Netzlaufwerk, das kann sowohl ein NAS als auch bereitgestellter Speicher von einem Internetprovider (z.B. 1und1) sein. Die Frontends mit den Abfragen, Fomularen, Berichten, Makros usw. können auf beliebig vielen Rechnern installiert werden und greifen alle auf das eine Backend zu, so dass die Daten immer aktuell sind und es keiner weiteren Aktualisierung bedarf.
Das ist vermutlich die bessere Alternative.
Ddie einfachste Möglichkeit ist die Erstellung einer
Anfügeabfrage die die fremden Daten in deine Tabelle einträgt.So hast Du beides, Deine neuen Daten und dnie des Anderen, efs gibt hier auch die Möglichkeit „keine Duplikate“ einzustellen. Für diese Abfrage gibt es einen sehr einfachen Assistenten in Access,einfach den Anweisungen des Assi folgen. Die Hilfe (F1) zu „Anfügeabfrage erstellen“ ist auch Toll.
Wenn du noch weitere Hilfe brauchst, melde dich einfach wieder. Im Moment ist die Zeit jedoch sehr Knapp, Zwischen Weihnachten und Neujahe ist eine noch ausführlichere Hilfe ehr möglich.
Erst mal „Frohe Weihnachten“
Lutz Kaftan
Hallo jolana.
ich habe Acces zwar beruflich gemacht inzwischen bin ich aber über 12 Jahre nicht mehr unter Acces tätig.
Im Moment benutze ich für dieser Art Sachen mysql weil das wesentlich besser in andere Programme und Websites einbindbar ist ausserdem ist es auch noch professioneller.
Um Deine Frage korrekt beantworten zu können müsste ich Access neu laden um es nocheinmal nachvollziehen zu können. Dies ist zwar möglich aber ich würde Dir empfehlen es noch einmal bei jemand Anderem zu versuchen.
Solltest Du allerdings nicht fündig werden werde ich, falls nötig, mir diese Mühe noch einmal machen.
Soweit ich das noch weiss geht ein Abgleich innerhalb Access.
Im Übrigen rate ich Dir Dich einmal mit den Accessbefehlen (Syntax) zu beschäftigen Du wirst sehen das manche Dinge ganz einfach damit zu realisieren sind insbesondere darum da Du, wie Du schreibst. alles schon mit Makros geschrieben hast.
Mit freundlichem Gruß und frohe Feiertage
friwem
Frohe Weihnacht!
Zunächst Danke für die Mühe die Du Dir gemacht hast.
Ich habe sehr viel gute Tipps bekommen, aber alle raten von einem „Abgleichen“ ab und empfehlen die Netzwerklösung. So werd ichs auch machen.
Ich hatte das Programm vorher schon in eine Frontend und Backend DB aufgeteilt und mit Netzwerk versucht. Es funktioniert, allerdings ist es auf dem Client sehr langsam. Da suche ich noch ne Lösung!
Danke nochmals
Hans
Frohe Weihnacht!
Zunächst Danke für die Mühe die Du Dir gemacht hast.
Ich habe sehr viel gute Tipps bekommen, aber alle raten von einem „Abgleichen“ ab und empfehlen die Netzwerklösung. So werd ichs auch machen.
Ich hatte das Programm vorher schon in eine Frontend und Backend DB aufgeteilt und mit Netzwerk versucht. Es funktioniert, allerdings ist es auf dem Client sehr langsam. Da suche ich noch ne Lösung!
Danke nochmals
Hans.
Frohe Weihnacht!
Zunächst Danke für die Mühe die Du Dir gemacht hast.
Ich habe sehr viel gute Tipps bekommen, aber alle raten von einem „Abgleichen“ ab und empfehlen die Netzwerklösung. So werd ichs auch machen.
Ich hatte das Programm vorher schon in eine Frontend und Backend DB aufgeteilt und mit Netzwerk versucht. Es funktioniert, allerdings ist es auf dem Client sehr langsam. Da suche ich noch ne Lösung!
Danke nochmals
Hans…
Frohe Weihnacht!
Zunächst Danke für die Mühe die Du Dir gemacht hast.
Ich habe sehr viel gute Tipps bekommen, aber alle raten von einem „Abgleichen“ ab und empfehlen die Netzwerklösung. So werd ichs auch machen.
Ich hatte das Programm vorher schon in eine Frontend und Backend DB aufgeteilt und mit Netzwerk versucht. Es funktioniert, allerdings ist es auf dem Client sehr langsam. Da suche ich noch ne Lösung!
Danke nochmals
Hans…
Frohe Weihnacht!
Zunächst Danke für die Mühe die Du Dir gemacht hast.
Ich habe sehr viel gute Tipps bekommen, aber alle raten von einem „Abgleichen“ ab und empfehlen die Netzwerklösung. So werd ichs auch machen.
Ich hatte das Programm vorher schon in eine Frontend und Backend DB aufgeteilt und mit Netzwerk versucht. Es funktioniert, allerdings ist es auf dem Client sehr langsam. Da suche ich noch ne Lösung!
Danke nochmals
Hans…
Frohe Weihnacht!
Zunächst Danke für die Mühe die Du Dir gemacht hast.
Ich habe sehr viel gute Tipps bekommen, aber alle raten von einem „Abgleichen“ ab und empfehlen die Netzwerklösung. So werd ichs auch machen.
Ich hatte das Programm vorher schon in eine Frontend und Backend DB aufgeteilt und mit Netzwerk versucht. Es funktioniert, allerdings ist es auf dem Client sehr langsam. Da suche ich noch ne Lösung!
Danke nochmals
Hans…
Hallo
vielleicht hilft dir das weiter
http://www.ms-office-forum.net/forum/sitemap/index.p…
Gruß Uwe
Hi Jolana,
du brauchst
- 2 Abfragen, die alle auf dem anderen Rechner neuen/geänderten Datensätze herüberziehen, wenn sie lokal unverändert sind
- evtl. ein Formular, das dir die auf beiden Rechnern geänderten Datensätze zwecks Vergleich und Auswahl anzeigt
- 2 Abfragen, die die lokal neuen/geänderten DS hinüberschieben
- natürlich ein Feld für das Änderungsdatum
- eindeutige Schlüssel, ggf. einen Mechanismus, der die Mehrfachvergabe von Autowerten verhindert
oder du freundest dich mit „REPLIKATION“ an!
Bei dauerndem Internetzugriff ist eine weitere Möglichkeit, per VPN=Virtual Private Network die Daten nur auf 1 Rechner zu halten.
Das ist bei weitem die leistungsfähigste Möglichkeit.
Viel Spaß
Herzlichsten Dank für die Mühe! War sehr hilfreich!