Access Tabellendatensatz kopieren
Hallo,
Habe ein Problem mit meiner Access Datenbank.
Ich habe zwei Tabellen in der Datenbank.
Die erste Tabelle hat die Attribute id Name Artikelnr und Beschaffungsdatum.
Die zweite Tabelle Bezeichnung und Artikelnr.
Zudem habe ich ein Formular, in dem ich mir die Datensätze aus der ersten Tabelle anzeigen lasse. Auf diesem Formular ist ein Button.
Jetzt möchte ich erreichen, dass wenn ich den Button anklicke die Daten die unter Name und Artikelnr in der ersten Tabelle liegen in die zweite Tabelle unter Bezeichnung und artikelnr kopiert werden.
Ich hoffe, dass mir jemand vielleicht helfen bzw. einen Lösungsansatz geben könnte verzweifele nämlich langsam daran.
Schon mal Danke im Voraus.
Antwort schreiben
Antwort 1 von Teddy7 vom 05.07.2019, 13:35 Options
Das geht natürlich mit Anfügeabfrage oder mit VBA-Programmierung.
Aber wozu soll das gut sein ? Man versucht doch möglichst Daten nur einmal speichern zu müssen.
Kannst Du Dein Problem - was auch immer als Grund hinter Deinem Wunsch zu kopieren steckt - nicht damit lösen, dass Du als Datenquelle statt der Tabelle eine Abfrage machst, die die Daten aus beiden Tabellen enthält ?
Gruß
Teddy
Antwort 2 von xTrAg00n vom 05.07.2019, 14:00 Options
Hallo,
Da hast du schon recht das man die normalerweise nicht tun sollte.
Aber es geht sich darum das ich einen Bericht aus verschiedenen Tabellen erstellen möchte. Das Problem ist die verschiedenen Tabellen andere Attribute haben die aber das gleiche aussagen so gibt es z.b. eine Tabelle da gibt es das Attribut computerid in einer anderen Tabelle heißt es aber Monitorid. In einem Bericht hätte ich nun also sehr viele Attribute die eigentlich das gleiche sagen nebeneinander und es würde unübersichtlich werden. Daher möchte ich die Datensätze dieser Attribute in einer Tabelle zusammenfassen, sodass nachher in dem Bericht nur noch z.B. id steht und nicht computerid und monitorid nebeneinander.
Habe mal versucht meine Datenbank darzustellen,hoffe das Problem ist jetzt etwas verständlicher.
Computertabelle
Computerid Typ Seriennr Rechnername MAC
COM1 IBM Netvista 13432546623 Host1
COM2 Dell XPS 477933465476 Host2
COM3 IBM Netvista 45376833477 Host3
Druckertabelle
Druckerid Typ Seriennr
DRU1 OKI PAGe 14ex 54345zf542
DRU2 Kyocera FS800 3454f3ewet
DRU3 OKI PAGe B4350 4356f543ed
Monitor
Monitorid Typ Seriennr Größe
MON1 Belinea101560 32rz97gwq89 15“
MON2 Belinea101560 Q8wz9qgx9q 15“
MON3 Belinea101560 Ehq987ed9d 15“
Temp
Id Typ Seriennr Rechnername
COM1 IBM Netvista 13432546623 Host1
COM2 Dell XPS 477933 Host2
COM3 IBM Netvista 45376833477 Host3
DRU1 OKI PAGe 14ex 54345zf542
DRU2 Kyocera FS800 3454f3ewet
DRU3 OKI PAGe B4350 4356f543ed
MON1 Belinea101560 32rz97gwq89
MON2 Belinea101560 Q8wz9qgx9q
MON3 Belinea101560 Ehq987ed9d
So soll die Tabelle dann aussehen damit ich dann daraus
einen Bericht machen kann.
Antwort 3 von Teddy7 vom 05.07.2019, 15:34 Options
Naja - temporäre Tabelle ist eine denkbare Lösung - aber auch ziemlich zeitintensiv. Wie gesagt - mit Anfüfeabfragen machbar.
Alternative 1: Bericht mit 3 Unterberichten
Alternative 2: Für jede Tabelle eine Abfrage erstellen. In den Abfragen müssen die Felder gleich lauten. (Dat bekommt man hin, indem man z.B. den gewünschten Feldnamen vor das Feld setzt:
XID: DruckerId
XTyp: Typ
fehlende Spalten kann man simulieren
XRechnername: " "
Diese 3 Abfragen kann man dann in einer union-Abfrage zusammenfassen.
In SQL sieht das so aus:
SELECT xid, xtyp, xSeriennr FROM abfAbfrage1 UNION ALL SELECT xid, xtyp, xSeriennr FROM abfAbfrage2 UNION ALL SELECT xid, xtyp, xSeriennr FROM abfAbfrage3
ORDER BY xid, xtyp;
Gruß
Teddy
Antwort 4 von xTrAg00n vom 06.07.2019, 08:30 Options
Hallo
Wunderbar der UNION befhl war genau das was ich gebraucht hab.
Vielen Dank