April 18, 2021, 02:27:33

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Datensatz tauschen

Begonnen von Xenon, Januar 05, 2021, 11:36:36

⏪ vorheriges - nächstes ⏩

Xenon

Guten Tag alle zusammen,

ich habe ein Projekt "Inventar-Datenbank" angefangen, was mich gerade vor einer Herausforderung stellt.

Folgende Tabellen wurden erstellt.

PC
- Rechnername (PK) (Grund es wird nur mit Namen gearbeitet)
- Seriennummer
- IP-Adresse
- MAC-Adresse

DoseRaum
- RaumNr
- DosenNr (PK)
- Rechnername (FK)
- zustand
- Bemerkungen

Ich möchte das mittels eines Buttons, in einem Formular, eine Abfrage ausgeführt wird. Dort soll ein Rechner (001) an einer Dose (001) mit einem anderen Rechner (002) an einer anderen Dose (002) getauscht werden.

Bsp.:

IST-Zustand:
Raum DosenNr Rechnername Zustand Bermerkungen
001  001     001
001  002     002

Sollzustand-Zustand:
Raum DosenNr Rechnername Zustand Bermerkungen
001  001     002
001  002     001

Mit freunlichen Güßen
Xenon

PS: Bleibt gesund.

DF6GL

Hallo,

für eine Inventar-Datenbank sind die zwei Tabellen aber völlig unzureichend...

ZitatRechnername (PK) (Grund es wird nur mit Namen gearbeitet)

Das ist kein Grund, einen db-technisch "vernünftigen" PK einzusetzen ---> Autowert-Feld.


Warum benötigst Du für diesen Dosen-Tausch eine Abfrage? Wie willst Du dazu die erforderlichen Daten angeben?


Edier (überschreib) einfach (in einem gebundenen Formular) die Dosen-Nummern.






K

Xenon

Hallo Franz,

vielen lieben Dank für die schnelle Rückantwort.

Zitat von: DF6GL am Januar 05, 2021, 11:46:00für eine Inventar-Datenbank sind die zwei Tabellen aber völlig unzureich

Ich habe natürlich noch mehr Tabellen (Hersteller, Monitore uvm.), die aber nix mit dem Problem zu zun haben.

Zitat von: DF6GL am Januar 05, 2021, 11:46:00Das ist kein Grund, einen db-technisch "vernünftigen" PK einzusetzen ---> Autowert-Feld.

Bei mir wird nur mit den Rechnernamen gearbeitet. Dieser besteht aus einer Kombination aus Bezeichnung (NB/PC) und Autowert.

Zitat von: DF6GL am Januar 05, 2021, 11:46:00Warum benötigst Du für diesen Dosen-Tausch eine Abfrage?

Ich möchte eine automatisierte Abfrage, da bei einem Kopiervorgang auch Fehler von Menschen gemacht werden können.

Zitat von: DF6GL am Januar 05, 2021, 11:46:00Wie willst Du dazu die erforderlichen Daten angeben?
Wenn zwei ausgewählt wurden, dann sind ja die Daten schon in den Zellen vorhaben. Sie müssen dann nur den Platz tauschen.

Zitat von: DF6GL am Januar 05, 2021, 11:46:00Edier (überschreib) einfach (in einem gebundenen Formular) die Dosen-Nummern.

Das will ich ja automatisch machen. Ein Formular erstellen, wo beide Datensätze angezeigt werden und ich dann mittels Knopfdruck den Inhalt tausche.

Ich habe schon Aktualisierungs-Abfragen ausprobiert, doch da wird der eine Wert überschrieben und kann nicht mehr in die andere Zelle übertragen werden. Müsste einen Puffer benutzen. Wo der überschriebene Wert zwischen gespeichert wird.

Mit freundlichen Grüßen
Xenon

ebs17

Ich würde bei Rechner-Dose eher an eine m:n-Beziehung denken. Dann wäre ein Tausch einfach darstellbar, indem man in die Verknüpfungstabelle zwei neue Datensätze mit einem neuen Gültigkeitsdatum schreibt.
Damit bleibt zudem die Historie erhalten, bei einem Überschreiben gehen Informationen verloren.
Mit freundlichem Glück Auf!

Eberhard

Beaker s.a.

@Xenon
Zitat von: undefinedMüsste einen Puffer benutzen. Wo der überschriebene Wert zwischen gespeichert wird.
Gut erkannt.
VBA stellt dafür die Möglichkeit Variablen zu definieren, die für
einen definierten Zeitraum Werte aufnehmen und zurück geben
können, zur Verfügung.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

Xenon

Guten Morgen,

zu deiner Aussage:
Zitat von: ebs17 am Januar 05, 2021, 15:59:27Ich würde bei Rechner-Dose eher an eine m:n-Beziehung denken. Dann wäre ein Tausch einfach darstellbar, indem man in die Verknüpfungstabelle zwei neue Datensätze mit einem neuen Gültigkeitsdatum schreibt.
Damit bleibt zudem die Historie erhalten, bei einem Überschreiben gehen Informationen verloren.

Eine Historie ist nicht notwendig, da nur die aktuellen Werte wichtig sind.

Außerdem wäre eine Umstruckturierung der anderen Tabellen Notwendig, um diese Idee umzusetzen.

Mit Freundlichen Grüßen
Xenon

ebs17

Das Hinzufügen von Datensätzen kann man auch in der eingangs beschriebenen Konstellation durchführen. Sonst könnte man ja auch die Frage aufwerfen, warum eine 1:n-Beziehung(?) verwendet wird, wenn man in der Sekundärtabelle sich auf einen Datensatz beschränken wollte.
Mit freundlichem Glück Auf!

Eberhard