orthex Geschrieben 10. November 2008 Teilen Geschrieben 10. November 2008 Hallo zusammen, leider bin ich ein absoluter Newbie in dem Bereich Access. Aber ich hoffe ihr könnt mir helfen. Ich habe zwei Fox Pro Datenbanken, welche ich miteinander "verschmelzen" will. Nun habe ich Access 97 auf meinem Rechner. Damit kann ich die Fox Pro Datenbanken öffnen. Ich dachte mir das ich diese beiden dann mit einer Union Abfrage "verschmelze". Meine Abfrage sieht so aus: TABLE patient UNION TABLE patient1 Beim Audführen des Abfrage sagt mir aber Access das ich mit union kein Ole-objekt und memo in den zellen haben darf. Gut, jetzt habe ich aus den Tabellen die OLE-Objekte und Memo durch text ersetzt. Und so wie es aussieht führt er nun die Abfrage aus. Die nun entstandene Tabelle muß ich aber wieder von Access in Fox Pro machen. Und da ist das Problem. Er wandelt die zwar um aber mein Programm kann nun die Fox Pro DAtenbank nicht mehr lesen (wahrscheinlich weil ich die Zellen verändert habe) Gibt es vielleicht eine andere Möglichkeit meine beiden Tabellen miteinander zu verschmelzen? Benötige dringend hilfe. Danke im Voraus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 10. November 2008 Teilen Geschrieben 10. November 2008 definiere bitte "verschmelzen": alles von patient in patient1 dazu? alles von patient und patient1 in eine neue foxpro-tabelle? wenn man das weiss, kann man vielleicht mal sehen, ob ich das mittels direkten zugriffs auf die tabellen z.b. mit ADODB recordset geschehen kann, oder ob man das nicht sogar noch einfach lösen kann. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
orthex Geschrieben 11. November 2008 Autor Teilen Geschrieben 11. November 2008 Danke für deine Hilfe :uli Also folgendermaßen: Tabelle patient1 wird von einer Arztpraxis gepflegt, sprich sie legen neue Patienten an oder bearbeiten vorhandene. Meine Kollegen arbeitet mit Tabelle patient, sprich sie gibt dort Buchhaltungsdaten ein. Jetzt muß sie, um auf dem aktuellen Stand zu bleiben, ihre Tabelle patient mit der Tabelle patient1 aktualisieren. Damit sie immer alle aktuellen Patienten und Änderungen hat. Es muß also zu Tabelle patient alles neue oder geänderte aus Tabelle patient1 hinzugefügt werden. Spalten, etc. sind bei beiden gleich. Und wie gesagt, habe ich es mit einer Union Abfrage probiert. Nur da gibt es Probleme mit Memo und Ole Objekten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 12. November 2008 Teilen Geschrieben 12. November 2008 Hallo ich verstehe (noch) nicht was das Ganze mit einem UNION zu tun haben soll. UNION ist erstmal nur eine Auswahlabfrage - kein Verändern oder Einfügen. Das was du tun willst ist doch eine - zumindest teilweise - Synchronisation der beiden Tabellen, wobei jeder Bereich (Fibu bzw. Praxis) die für ihn relevanten Daten im jeweils anderen Bereich ändert oder einfügt. Entscheidend für die Umsetzung ist IMHO hierbei die zugrundeliegende Struktur (eindeutige Schlüssel ?) und die Frage, ob man immer klar trennen kann, wer was ändert/erfasst. Gruß Martin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
orthex Geschrieben 12. November 2008 Autor Teilen Geschrieben 12. November 2008 Ja, ich dachte das eine Union Abfrage das richtige wäre. Vielleicht ist es so verständlich. Aber vielleicht kann ich auch ich in meiner Tabelle1 nur die aktuellen und geänderten daten von Tabelle2 rein machen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
orthex Geschrieben 12. November 2008 Autor Teilen Geschrieben 12. November 2008 oder mal ganz ausführlich. ich kann so schlecht schreiben wie ich es meine. ich habe eine Tabelle (Datenbank), diese habe ich von einer Arztpraxis bekommen. Diese Tabelle (Datenbank) ist vom Stand 01.11.08 Jetzt hat natürlich die Arztpraxis ihre Tabelle verändert oder es sind neue Patienten dazu gekommen. Und das benötige ich jetzt aber auch in meiner Tabelle. Allerdings kann ich meine Tabelle nicht einfach überschreiben. Denn da habe ich ja auch schon andere DAten rein geschriebe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 12. November 2008 Teilen Geschrieben 12. November 2008 ja sowas meinte ich ja mit Synchronisieren. wie sehen denn in den beiden Tabelle die Schlüssel aus ? oder anders gefragt: woran erkennt man eindeutig, ob ein Patient aus der Praxistabelle auch schon in der Fibu vorhanden ist und umgekehrt ? (Bitte sag jetzt nicht "anhand des Namens" ;-) ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
orthex Geschrieben 12. November 2008 Autor Teilen Geschrieben 12. November 2008 Also die Spaltenbezeichnung ist Code. Und diese ist die Patientennummer. Naja und diese ist ja für jeden Partienten einmalig. Beide Tabellen haben alle dieselben Spalten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 12. November 2008 Teilen Geschrieben 12. November 2008 Hallo vorausgesetzt dass Löschungen nicht physisch erfolgen, sondern über ein Löschkennzeichen, dann kannst du doch die Datenfelder des jeweiligen Bereichs (Praxis und Fibu) update aktualisieren und Datensätze die im jeweils anderen Bestand nicht da sind, per Insert anlegen. Gruß Martin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
orthex Geschrieben 13. November 2008 Autor Teilen Geschrieben 13. November 2008 Vielleicht: SELECT all FROM patient INNER JOIN patient1 ON patient.code = patient1.code Da ich über 6200 Datensätze in den TAbellen habe, ist es schwer zu sehen ob diese Abfrage funktioniert. Aber wäre dies eine Möglichkeit? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
orthex Geschrieben 13. November 2008 Autor Teilen Geschrieben 13. November 2008 Ich bin am verzweifeln. Leider klappt diese Abfrage nicht ganz. Bei dieser Abfrage kriege ich ne TAbelle aber da ist alles zwei mal drin. Sprich es stehen alle Spalten von Tabelle1 und noch mal alle vn Tabelle2 da. Hat nicht jemand ne Idee Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0815FIA Geschrieben 13. November 2008 Teilen Geschrieben 13. November 2008 naja, du willst doch, wenn ich es richtig verstanden habe, alle haben, die nicht enthalten sind in der alten tabelle, also solltest du doch statt patient.code=patient1.code eher patient.code<>patient1.code benutzen, oder..? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
orthex Geschrieben 13. November 2008 Autor Teilen Geschrieben 13. November 2008 Ich habs probiert. Es ist zum Mäuse melken. Meine Tabelle patient1 hat 6200 Datensätze. Tabelle patient hat 6208 Datensätze. Mann müßte doch meinen, wenn ich SELECT all FROM patient1 INNER JOIN patient ON patient1.code <> patient.code; abfrage, das in meiner neuen Tabelle dann auch 6208 Datensätze enthalten sind. Aber nein, mit dieser Abfrage habe ich auf einmal 38483403 Datensätze. Wieso? Wenn ich die Abfrage SELECT all FROM patient1 INNER JOIN patient ON patient1.code = patient.code; mache, habe ich 6197 DAtensätze. :old Und es sind alle Spalten von patient1 und zusätzlich alle Spalten von patient da. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0815FIA Geschrieben 13. November 2008 Teilen Geschrieben 13. November 2008 SELECT * FROM patient1 WHERE code NOT IN (SELECT code FROM patient); damit müßtest du alle bekommen, die nicht in der alten sind (hoffe ich^^), dann einfach hinzufügen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.