Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Access Tabellen





Frage

Liebe Access-Profis, gleich noch eine zweite Frage, deren Beantwortung mir sehr helfen würde: Wie kann man Datensätze aus einer Access-Tabelle in eine andere Tabelle innerhalb derselben Datenbank übernehmen? Konkret soll es so ablaufen, dass zu alle Datensätzen, die in Tabelle 1 mit einem bestimmten Merkmal versehen sind, automatisch in Tabelle 2 übertragen werden. Ich bräuchte eine Anleitung, mit der ich als totaler Programmier-Laie nicht überfordert bin. Es wäre toll, wenn mir jemand helfen könnte! Danke schon jetzt dafür. Viele Grüße Bernd

Antwort 1 von Teddy7

Mach einfach eine Abfrage, die die gewünschten Datensätze enthält. Dann änderst Du die Abfrageart in "Anfügeabfrage" - den Rest macht der Assistent.

Gruß
Teddy

Antwort 2 von rookie44

Wow, das hört sich schon mal sehr gut an. Damit komme ich auf jeden Fall weiter.

Kann man der Anfügeabfrage auch weitere Spalten hinzufügen? Das wäre dann noch besser.

Grüße
Bernd

Antwort 3 von rookie44

Hallo Teddy7,

das mit der Anfügeabfrage klappt leider nicht auf Anhieb:

Die Abfrage wird als normale Abfrage problemlos ausgeführt, sobald ich sie als Anfügeabfrage speichere, bekomme ich die Meldung, die Datensätze (alle) könnten wegen Schlüsselverletzungen nicht angefügt werden. In meiner Tabelle gibt es lediglich einen Primärschlüssel und derzeit sind noch keine Beziehungen vorhanden.

Woran kann das liegen?

Danke nochmals für deine Hilfe.
Bernd

Antwort 4 von lleopard

Hallo Bernd,

das liegt vielleicht daran, daß Quell- und Zieltabelle nicht identisch (indiziert) sind, sprich du zB einen AutoWert an ein Textfeld anfügen willst...

Überprüfe im Entwurf deiner Tabellen, ob die Formate übereinstimmen und deine anfügeabfrage wird funktionieren!

Gruß leo

Antwort 5 von rookie44

Hallo Leo,

sorry, jetzt bin ich ganz verwirrt:

Ich hab gar keine Zieltabelle. Bisher gibt es bloß die Quelltabelle und die Anfügeabfrage.
Wie definiere ich denn eine Tabelle als Zieltabelle?

Vielleicht liegt es daran, dass beim Ändern der Abfrage in eine Anfügeabfrage bei mir kein Assistent oder Dialog gestartet ist.

Kannst du mir Anfänger das nochmal schrittweise beschreiben?

Danke und Grüße
Bernd

Antwort 6 von rookie44

Okay, ich hab rausgefunden, was ich zuvor falsch gemacht hatte. Trotzdem klappt es auch jetzt noch nicht.

Habe testweise die Quelltabelle kopiert und als Zieltabelle definiert, um sicherzustellen, dass die Feldtypen übereinstimmen. Leider lässt sich meine Anfügeabfrage gar nicht starten. Es gibt auch keine Fehlermeldung. Und die Zieltabelle füllt sich auch nicht.

Ein ratloser Bernd.

Antwort 7 von Marie

Zitat:
könnten wegen Schlüsselverletzungen nicht angefügt werden. In meiner Tabelle gibt es lediglich einen Primärschlüssel


Primärschlüssel ist ein Feld mit eindeutigem Wert. Wenn Du versuchst einen Datensatz anzuhängen, der denselben Inhalt in dem Feld hat, der bereits vorhanden ist, dann wird der Datensatz nicht angehängt mit der Meldung der Datensatz könne wegen Schlüsselverletzung nicht angefügt werden.

Wenn alle Datensätze nicht angefügt werden, dann verletzen wohl alle den Schlüssel. Nun musst Du halt mal schauen und hier posten was Du anhängen wolltest und was im Primärschlüsselfeld eingegeben ist.

Gruß marie

PS: Willst Du Tabellenspalten per VBA anhängen? Wenn ja schreib bitte ein beispiel: Name der Tabelle und Name der Spalte, die angehängt werden soll, Format der Spalte, dann schick ich Dir den Code so, dass Du ihn gleich verstehst.

Gruß Marie

Antwort 8 von Marie

Zitat:
sorry, jetzt bin ich ganz verwirrt:

Ich hab gar keine Zieltabelle. Bisher gibt es bloß die Quelltabelle und die Anfügeabfrage.
Wie definiere ich denn eine Tabelle als Zieltabelle?


Du hast die Abfrage gemacht und klickst dann im Abfrageentwurf auf den Menüpunkt "Abfrage" und dann auf "Anfügeabfrage". Dann öffnet sich automatisch ein Fenster mit der Frage: Anfügen an Tabellenname und dort ist ein Klappfeld, da wählst Du die Zieltabelle aus.

Dann erscheinen unter der Zeile Sortierung die Felder "anfügen an", hier musst Du jetzt gar nichts tun, wenn die Zieltabelle exakt dieselben Feldnamen hat. Die Zeile wird dann automatisch ausgefüllt. Ist jedoch in der Zieltabelle ein Feld nicht vorhanden, dann musst Du das Feld auswählen, wo das Quelltabellenfeld angehängt werden soll, oder aber dieses feld in der Abfrage löschen, wenn es kein entsprechendes Feld in der Zieltabelle gibt.

Gruß marie

Antwort 9 von Marie

Zitat:
Habe testweise die Quelltabelle kopiert und als Zieltabelle definiert, um sicherzustellen, dass die Feldtypen übereinstimmen. Leider lässt sich meine Anfügeabfrage gar nicht starten. Es gibt auch keine Fehlermeldung. Und die Zieltabelle füllt sich auch nicht.


Kopier mal die Quelltabelle mit "nur Struktur", damit die nicht nur leer ist, sondern auch gewährleistet ist, dass da kein gelöschter Autowert vorhanden ist, der nicht mehr belegt werden kann.

Und dann muss die natürlich auch einen anderen namen haben. Dann machst Du folgendes, damit Du sicher bist, dass Du das Anfügen an die richtige Tabelle ausgewählt hattest: Klickst im Abfrageentwurfsmenü "Abfrage Auswahlabfrage" an und dann erneut "Abfrage Anfügeabfrage" und wählst dann korrekt die Zieltabelle als "anfügen an" aus der Auswahlliste aus.

Gruß Marie

Antwort 10 von rookie44

Guten Morgen, Marie,

vielen Dank für deine super ausführlichen Antworten! Und super erklärt!

Die Schritte, die du beschreibst, hab ich alle genau so ausgeführt (nach einigen Anlaufschwierigkeiten...). Trotzdem hab ich jetzt das Problem, dass meine Anfügeabfrage sich gar nicht ausführen lässt. Wie schon beschrieben, gibt es noch nicht mal eine Fehlermeldung, es tut sich einfach gar nichts, wenn ich drauf klicke.

Da ich noch nicht mal genau weiß, was eigentlich genau in welcher Reihenfolge passieren müsste, hänge ich jetzt fest.

Was passiert beim Ausführen der Anfügeabfrage (wenn es dann klappt)?
Wird die Zieltabelle direkt gefüllt? Wird die Anfügeabfrage dabei auch gefüllt? Kann man es einrichten, dass vorhandene Datensätze durch neue überschrieben werden? Da meine Zieltabelle zusätzliche Spalten enthalten soll (die momentane Testversion enthält diese noch nicht): was würde beim Überschreiben vorhandener Datensätze mit den Einträgen in den zusätzlichen Spalten passieren?

Und natürlich immer noch die Frage: Wieso lässt sich meine Anfügeabfrage nicht ausführen?

Viele Fragen, ich weiß, aber ich bin lernfähig und dankbar für jede Hilfe.

Gruß Bernd

Antwort 11 von rookie44

Zitat:
Willst Du Tabellenspalten per VBA anhängen? Wenn ja schreib bitte ein beispiel: Name der Tabelle und Name der Spalte, die angehängt werden soll, Format der Spalte, dann schick ich Dir den Code so, dass Du ihn gleich verstehst.


@Marie:
Vielen Dank für dieses super Angebot. Ich kann bloß im Moment noch nicht genau sagen, ob ich das brauche. Vielleicht komm ich aber noch darauf zurück. ;-)

Grüße!
Bernd

Antwort 12 von Marie

Zitat:

Und natürlich immer noch die Frage: Wieso lässt sich meine Anfügeabfrage nicht ausführen?


Vermutlich weil Du nicht das gemacht hast, was ich Dir geschrieben habe??

Zitat:
Was passiert beim Ausführen der Anfügeabfrage (wenn es dann klappt)?


Die Daten aus der Quelltabelle, die nicht wegen Schlüsselverletzungen nicht angefügt werden können, werden an die Zieltabelle angefügt.

Zitat:
Wird die Zieltabelle direkt gefüllt?


Ja

Zitat:
Wird die Anfügeabfrage dabei auch gefüllt?


Das verstehe ich nicht, die Abfrage wird nicht angezeigt sondern ausgeführt. Du klickst auf den Button, dass die ausgeführt wird und dann öffnest Du die Zieltabelle und schaust nach ob sie da sind.

Zitat:
Kann man es einrichten, dass vorhandene Datensätze durch neue überschrieben werden?

Nicht mit einer Anfügeabfrage, die fügt, wie der Name sgt, Datensätze an. Di bereits vorhandenen werden ignoriert, da es eine Schlüsselverletzung gibt bei Deinem Primärschlüssel.

Zitat:
Da meine Zieltabelle zusätzliche Spalten enthalten soll (die momentane Testversion enthält diese noch nicht): was würde beim Überschreiben vorhandener Datensätze mit den Einträgen in den zusätzlichen Spalten passieren?


Du überschreibst doch nicht vorhandene Datensätze. Du hängst zuerst mal leere Spalten an. Dann machst Du eine Aktualisierungsabfrage und füllst nur die neuen Spalten.

Gruß Marie

Antwort 13 von rookie44

Hallo Marie,

vielen Dank für die ausführlichen Erläuterungen. Jetzt klappt's endlich mit der Anfügeabfrage und die Zieltabelle wird gefüllt.

"nur Struktur" kopieren hat die Lösung gebracht, in diesem Punkt hatte ich deine Anleitung zunächst nicht befolgt.

Die anderen Punkte sind klar geworden, als ich die funktionierende Prozedur dann gesehen habe.

Danke nochmals und ein schönes Wochenende!!!
Bernd

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: