Office: (Office 2000) Datenbanken abgleichen ohne Replikation

Helfe beim Thema Datenbanken abgleichen ohne Replikation in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Michael, das hat klasse geklappt *top , vielen Dank. Kannst du mir vielleicht auch noch etwas Starthilfe geben, wie ich einen Vergleich zustande... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von witschi1, 1. Oktober 2009.

  1. Datenbanken abgleichen ohne Replikation


    Hallo Michael, das hat klasse geklappt *top , vielen Dank.

    Kannst du mir vielleicht auch noch etwas Starthilfe geben, wie ich einen Vergleich zustande bringe, der prüft, welche Datensätze schon vorhanden sind und welche bei späterer Änderung überschrieben werden müssen? Einen Zeitstempel führe ich in jeder Tabelle mit.

    Ich denke, dass der Tabellenaufbau nun so angelegt ist, damit die Datensätze immer eindeutig der jeweiligen Fw zugeordnet werden. U.a. habe ich, wie mir weiter oben geraten wurde, einen Autowert und die ID der Fw mit dafür verwendet. Ich mache immer eher sporadisch in Access, wenn es mal nötig ist, daher sind meine VBA-Kenntnisse leider nicht so vollkommen.

    Mein Ziel ist, dass diese Datenbank bei jedem User gleich ist, also jede der Datenbanken soll nach Belieben importieren und exportieren können.

    Wenn ich keinen Denkfehler habe, sollte ich also 1. eine Tabelle mitführen, die jeweils das Datum der Importe/ Exporte nebst der Nummern der Berichte aufzeichnet, die bereits importiert/ exportiert wurden.
    Dann muss verglichen werden, welche der Datensätze eventuell noch später geändert wurden, damit diese zusätzlich exportiert/ importiert werden.

    Verglichen werden muss jeweils die Berichtsnummer (bei mir "H_Bericht_Nr") sowie der Zeitstempel.
     
    witschi1, 12. Oktober 2009
    #31
  2. Als Schwerpunkt eigentlich nur eine Tabelle in der Anwendung, wo das Datum des Exports dokumentiert wird. Zu exportierende Datensätze wären dann jene, wo der Zeitstempel größer dem letzten Exportdatum ist.
    Auf der Importseite brauchst Du pro Tabelle eine Aktualisierungs- und eine Anfügeabfrage.
     
  3. Hallo Eberhard,
    gibt es irgendwo ein Beispiel anzuschauen, wie man es umsetzt, gleichzeitig das Exportdatum in eine Tabelle zu schreiben und auf eine Abfrage zu zu greifen?
     
    witschi1, 13. Oktober 2009
    #33
  4. Datenbanken abgleichen ohne Replikation

    Gleichzeitig ist so eine Sache.
    Wenn die Daten, die ausser dem Exportdatum in die Tabelle geschrieben werden, aus der Abfrage kommen, ginge das so:
    Code:
     
    hcscherzer, 13. Oktober 2009
    #34
  5. Hallo Hans-Christian,
    das klingt umsetzbar, vielen Dank. Die Daten kommen ja aus der jeweiligen Abfrage. Ich werde mal heute abend versuchen, was zusammen zu basteln.
     
    witschi1, 13. Oktober 2009
    #35
  6. \@witschi1: Gleichzeitig im Sinne des Wortes wird nicht gehen und ist auch unnötig. Nacheinander geht auch. Eigentlich sind es nur die Schritte ...

    - Lesen des letzten Exportdatums aus der Logtabelle
    - Export der Datensätze aus den Datentabellen in die Austauschdatei, dabei wird das ermittelte Exportdatum als Kriterium verwendet (dynamisch in Abfragen einzusetzen, da sowieso der gesamte Vorgang über VBA läuft)
    - Austauschdatei könnte im Namen gleich den Zeitpunkt der Erstellung sowie den Ersteller erhalten (bei Fertigstellung)
    - neuer Eintrag in Logtabelle (Zeitpunkt neuer Export)

    Das Überschreiben des Erstell-/Änderungszeitpunktes der jeweiligen Datensätze durch den Exportzeitpunkt, wie es mir im Vorschlag von Hans-Christian erscheint, würde ich als Ausdünnung von Informationen empfinden und nicht anwenden.
     
  7. \@Eberhard: ich überschreibe doch nix ... ich füge einen Datensatz an, wo wird denn da was ausgedünnt ???
     
    hcscherzer, 13. Oktober 2009
    #37
  8. Datenbanken abgleichen ohne Replikation

    Hallo ebs,
    kann man sich da, irgendwo im weltweitenWeb, ein Beispiel begucken?*confused.gif* Das ist mir offen gestanden zu komplex für meine bischen VBA-Kenntnisse.
     
    witschi1, 13. Oktober 2009
    #38
  9. \@Hans-Christian: Da habe ich wohl die Zieltabelle fehlinterpretiert. Im Rahmen des Exports ist für mich eine Zieltabelle die resultierende Tabelle in der Austauschdatei.

    @witschi1: Beispiel im Web habe ich noch keines so gesehen. Die meisten haben es mit Netzwerklösungen zu tun oder verwenden Replikation.

    Aber die von mir genannten Schritte sind doch einzeln übersichtlich und lösbar, und nacheinander ausführbar.

    Wer Replikation ersetzen will, sollte sich bzgl. Komplexität nicht beschweren. Der Export ist dabei die einfachere Übung (beliebige Reihenfolge für Tabellen).
    Beim Import im Zielsystem ist dann eine Reihenfolge der Tabellen (Master vor abhängiger Tabelle) durchaus zu beachten.
     
  10. Hallo ebs,
    Eigentlich (oder nicht eigentlich) hast du ja völlig recht.
    Ich werde mich mal ran machen, habe ja schon fast alles zusammen. Und die langen Winterabende kommen ja erst*biggrin.gif*

    Bis dahin, erstmal vielen Dank an alle, für die vielen Tipps.
     
    witschi1, 13. Oktober 2009
    #40
  11. Hallo,

    ich habe mal so was ähnliches, wie Du es brauchst, umgesetzt.
    Ich kenne ja nun nicht Deine genauen Datenstrukturen, aber denke, dass sich das
    so oder ähnlich umsetzen lässt.

    Also Du hast 2 Tabellen (lässt sich aber auch auf "viele" Tabellen anwenden):

    tbl1 ist die Exporttabelle aus einer Deiner Niederlassungen (FW-Id(*)) mit Primärschlüssel = PK(tbl1)

    tbl2 ist die Importtabelle in Deiner Zentrale mit Primärschlüssel = FW-Id + PK(tbl1) = PK(tbl2)

    (*) = Niederlassungs-Id / Feuerwehr-ID

    Schritt 1:
    Lösche aus tbl2 alle seit dem letzten Import aus tbl1 gelöschten Datensätze.

    Luft-Code-Ansatz:
    Code:
    Achtung: der IN-Operator gilt IMO nur für 1 Attribut / hier bist Du dann während dem Winter gefordert *biggrin.gif*, die Abfrage entsprechend zu erstellen

    Schritt 2:
    Lösche aus tbl2 alle zwischen dem letzten Import in tbl1 geänderten Datensätze.

    sehr luftiger-Code-Ansatz:
    Code:
    Schritt 3:
    Füge alle DS aus tbl1 in tbl2 ein, welche nicht in tbl2 enthalten sind.

    -----------------

    Hoffe das war nicht zu abstrus *tongue.gif* , aber bei meinem Kunden läuft dies schon
    problemlos seit 3 Jahren.
    Ich muss aber gestehen, dass dort in jeder Tabelle der PK ein Long-Wert ist.
    Dies hat die SQL-Anweisungen relativ vereinfacht.

    Bei Fragen, bitte melden (auch im Winter)

    Derzeit 2° und leichter Schneegriesel
     
    sw-blitz007, 13. Oktober 2009
    #41
  12. Guten Morgen zusammen, Hallo Michael,

    ich habe nun erstmal begonnen, eine Export-Funktion zusammen zu basteln. Um den Import künmmere ich mich danach.

    Code:
    In den Abfragen vergleiche ich jeweils den Zeitstempel der Datensätze mit dem Datum des letzten Exports ([Zeitstempel] > [DatumLetzterExport]. Funktioniert soweit ganz gut.

    Nun fehlt mir noch der zündende Gedanke, wie die folgenden Fragen umzusetzen sind. Exportiert werden - vorraussichtlich - immer so ca. 150 bis 200 Berichte pro Feuerwehr, also ein ganzer Haufen Datensätze, auch in den Detailtabellen.

    1. Kann man sich hier den Fortschritt beim Export anzeigen lassen, falls es mal länger dauert?
    2. Kann man nach dem Export der Daten die Anzahl der exportierten und nicht exportierten Datensätze anzeigen?
    3. Wie schreibe ich das Datum des letzten Exports, nur nach einem erfolgreichen Export, in die Tabelle "tblExportdatum"?

    Fragen über Fragen*entsetzt , könnt ihr mir da auch auf die Sprünge helfen?
     
    witschi1, 13. Oktober 2009
    #42
  13. Datenbanken abgleichen ohne Replikation

    Hallo,

    Ja, nimm doch eine Fortschrittsanzeige aus MSComctlLib.ProgCtrl.2.
    BTW: ich würde die zu exportierenden Abfragen nicht alle einzeln im Programm
    benennen, sondern würde diese in eine Hilfstabelle schreiben und diese dann
    per Schleife durchlaufen. Hier kannst Du dann auch einfach die Fortschrittsanzeige
    aktualisieren.

    Glaube schon: nimm das Ergebnis Deiner Abfragen und dann noch per
    Subselect diejenigen welche nicht exportiert wurden (suche mal nach Differenzmenge etc.)

    Vielleicht so:

    Code:
    Noch ein paar Fragen zum Schluss:

    Du willst wirklich bis zu 200 "Berichte" exportieren?

    Sind die alle unterschiedlicher Struktur?

    Oder haben sie nur jeweils anderen Inhalt.

    Wolltest Du nicht nur DS aus Tabellen exportieren?
     
    sw-blitz007, 13. Oktober 2009
    #43
  14. Hallo Michael,
    Ich meinte natürlich nicht Berichte sondern Daten aus Tabellen. Habe weiter oben mal ein Bsp. eingefügt. Ich möchte die Datenbank an die Feuerwehren weitergeben. Diese DB sollen alle gleich sein (Struktur etc.). Dann sollen Sie mir die Excel-Datei mit ihren Daten schicken, die ich dann in meine DB (die auch die gleiche Struktur hat) importieren will. Die einzelnen Berichte bzw. Feuerwehren unterscheide ich anhand eines eindeutigen Schlüssels (siehe weiter oben). Habe es ausprobiert, das funktioniert reibungslos.

    Um die Feinheiten des Imports will ich mich später kümmern, grundsätzlich funktioniert der Import aus der Excel-Tabelle aber reibungslos. Über "Keine Duplikate" habe ich ausgeschlossen, dass doppelte Datensätze importiert werden. Hier muss ich dann nur noch lösen, dass - später - geänderte Datensätze doch überschrieben werden. Aber das kommt später.

    Dat is ein Klasse Tipp!
     
    witschi1, 13. Oktober 2009
    #44
  15. Ich stehe auf dem Schlauch*entsetzt

    Wie kann ich in folgenden Code
    Code:
    einfügen, dass folgende Anweisung ausgeführt wird?
    Code:
    Ich meine, dass die hier genannten Abfragen aus der "tblExportHilfstabelle" exportiert werden?
     
    witschi1, 14. Oktober 2009
    #45
Thema:

Datenbanken abgleichen ohne Replikation

Die Seite wird geladen...
  1. Datenbanken abgleichen ohne Replikation - Similar Threads - Datenbanken abgleichen Replikation

  2. Datenbank bleibt gesperrt - laccdb wird nicht gelöscht

    in Microsoft Access Hilfe
    Datenbank bleibt gesperrt - laccdb wird nicht gelöscht: Hallo zusammen, ich betreue eine Datenbank mit getrenntem Back- und Frontend, die in einem Firmennetzwerk auf dem Netzlaufwerk liegt. Ich entwickle sie lokal weiter, ohne vor Ort zu sein, wobei...
  3. LostFocus der Datenbank?

    in Microsoft Access Hilfe
    LostFocus der Datenbank?: Moin, gibt es das LostFocus-Event auch für die Datenbank, z.B. wenn man vom Formular zu Minesweeper wechselt? Oder entzieht Windows dem verlassenen Task sämtliche Aufmerksamkeit? Gruß Doming
  4. Problem Datenstruktur Mitglieds-Datenbank

    in Microsoft Access Hilfe
    Problem Datenstruktur Mitglieds-Datenbank: Hallo Leute, Ich habe eine Frage zu einer Vereins-Mitglieder-Datenbank, die ich erstelle. Die Vereinsmitglieder sind in einer Tabelle erfasst, also Nachname, Vorname, usw. Und es gibt einen...
  5. Auslesen Windowsbenutzer in einer Datenbank

    in Microsoft Access Hilfe
    Auslesen Windowsbenutzer in einer Datenbank: Hallo zusammen, wie kann ich auslesen, welcher Windows Benutzer gerade aktuell in einer Datenbank ist? Geht das? Danke Matthias
  6. Datenbank "Ausfahrtenerfassung" Rudern

    in Microsoft Access Hilfe
    Datenbank "Ausfahrtenerfassung" Rudern: Guten Abend zusammen Ich habe mich entschlossen unsere Papierversion der der Ausfahrtenerfassung unseres Ruderclubs zu aktualisieren. Ich habe also zwei neue Tabellen erstellt. T_FAHRTENBUCH und...
  7. Daten aus Datenbank mit einer Liste abgleichen

    in Microsoft Excel Hilfe
    Daten aus Datenbank mit einer Liste abgleichen: Hallo, bin noch Excelneuling und bräuchte mal Hilfe. Bin dabei für die Firma was zu basteln. Eine Art Erlaubnisschein für Fremdfirmen. Bin schon so weit das die Erlaubnisscheine in eine...
  8. lokale Datenbank mit Internet abgleichen

    in Microsoft Access Hilfe
    lokale Datenbank mit Internet abgleichen: Hallo, folgende Herausforderung: Ich habe eine Kontakt-Datenbank auf dem Rechner. Die Datenbank gebe ich an meine Kollegen weiter. Die sollen ebenfalls an der Datenbank mitarbeiten. Kann ich die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden