Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datensatz sichern

Begonnen von Brallu, April 21, 2017, 13:28:32

⏪ vorheriges - nächstes ⏩

Brallu

Hallo Gemeinde,
ich habe folgendes Problem:
Ein Datensatz soll archiviert werden (der hat auch Verknüpfungen) und eine berechnete Buchstabe / Zahl Kombination z.B. A12 (nicht das Feld Primärschlüssel mit Autowert) soll wiederverwendet werden für einen neuen Datensatz.
Die alte Nummer soll z.B. so abgewandelt werden das aus A12 eine A12Alt1 gemacht wird damit ich mir die Chronik anzeigen lassen kann. (z.B. A12 = So sind alle unsere Gegenstände beschriftet)

Leider habe ich noch nicht einmal eine Idee welchen Ansatz ich wählen soll.
Neue Tabelle und verschieben (was passiert mit den Verknüpfungen?) oder die gleiche Tabelle mit Ergänzungen und neuen Datensatz erstellen.

Ekkehard hat in einer anderen Sache mal auf das Verknüpfen von ein und der selben Tabelle hingewiesen als m:n Beziehung da verstehe ich leider nicht wie ich das umsetzen soll.
Findet ihr hier: http://www.access-o-mania.de/forum/index.php?topic=22061.msg127387#msg127387

Ich würde mich sehr über ein paar Ideen freuen, gerne auch als Beispiel.
Da ich als Einsteiger immer noch nicht das große Ganze durchschaue hoffe ich das ihr mir helfen könnt.

Gruß
Danny

Beaker s.a.

Hallo Danny,
Also einem n:m-Beziehung der Tabelle auf sich selber ist hier IMO nicht der
richtige Ansatz. Muss allerdings dazu sagen, dass ich mich mit Archivierung
noch nie beschäftigt habe.
Vielleicht erläuterst du wozu du das als nötig erachtest.
Ich markiere nicht mehr benötigte DS als "gelöscht". Dabei gehen keine
Beziehungen verloren, und diese DS lassen sich einfach ausblenden bzw.
so auch jederzeit wieder anzeigen.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MzKlMu

Hallo,
ich blase in as gleiche Horn wie ekkehard, und halte eine Archivierung im Regelfall für den völlig falschen Weg. Eine Archivierung von Datensätzen zerstört die kompletten Zusammenhänge der Daten.

Was versprichst Du Dir von einer Archivierung ?
Wie unterscheiden sich Archivdatensätze von den nicht archivierten DS ?

Platz spart man schon mal keinen, im Gegenteil.


Gruß Klaus

Brallu

Hallo zusammen,
ich habe z.B. Karabiner die werden Geprüft und gut.
Fallen sie durch die Prüfung kann ich sie neu beschaffen.
Die Zusammengesetzten Buchstaben Zahl Kombi für den Karabiner muss ich weiter verwenden.
Also aus A22 soll A22 Alt werden und A22 ist dann der neue Karabiner mit einer neuen ID.
Wenn der dann durchfällt dann A22 Alt 2. damit ich die Prüfung lückenlos nachverfolgen kann.
Nur Neugerät bekommt eine neue Buchstaben Zahl Kombi.
Das ist so erforderlich da ich an eine Beschaffungsliste gebunden bin.

Gruß
Danny

MzKlMu

Hallo,
das Archivieren ist hier mit Sicherheit keine gute Idee. Wenn ich mich recht erinnere, hat man schon mal versucht Dir das auszureden.
Wie viele Felder sind in dem Archivdatensatz gegenüber dem neuen Datensatz unterschiedlich ?

Gruß Klaus

Brallu

Ich bin ja noch nicht so weit das ich ein Archiv haben will oder nicht. Suche ja noch die beste Möglichkeit.
Wenn mit Archiv dann müste das wohl nur um die Felder "Archiv ID" und "Ausgesondert am" ergänzt werden.
Aber wenn ich eine schlaue Art hätte die Datensätze in der Materialtabelle zu speichern/belassen und einen Neuen Datensatz zu basteln wo ich das neue Gerät einpflegen kann wäre das bestimmt auch super.
Ich dachte nur jemand hätte sowas eventuell schon mal gebastelt und hätte ein paar tipps oder ein Beispiel.

MzKlMu

#6
Hallo,
das kann aber so nicht alles sein. Wenn Du einzelne Karabiner prüfst und ggf. aussonderst, so braucht ja jeder Karabiner eine eindeutige Nummer (ID).
Daher würde ich das etwas anders lösen. Jedes Teil kommt einmalig in die Tabelle.
Ohne das zusammengesetzte Feld für die Bezeichnung (A22, A22alt, A22alt2).
Dann legst Du eine Tabelle für einen Status mit Primärschlüssel.

StatusID       Status
     1        Neuanschaffung
     2        Prüfung bestanden
     3        Durchgefallen
     4        Defekt
     5        Verloren

In einer weiteren Tabelle (MaterialStatus) erfasst Du dann die MaterialID, die StausID, ein Datumsfeld und ggf. ein Fremdschlüssel zur Prüfung. Und in diese Tabelle kommt dann auch das zusammengesetzte Feld.
Somit hast Du in dieser Tabelle eine lückenlose Historie zu einem Material.
Eine Abfrage mit der Materialtabelle, der Statustabelle (neu) und der Tabelle MaterialStatus (neu) sortiert nach der MaterialID und dem Datumsfeld aus der Tabelle MaterialStatus listet alle Materialien mit allen Nummern (A...alt...) wie wenn Du es in Archivtabellen hättest.
Gruß Klaus

Brallu

Ist auch nicht alles! In Meinem Abgespeckten Beispiel kann man sehen wie das bei der Prüfung so klappt.
Das Grundgerüst ist schon wie ich es haben will und hat auch alle erforderlichen Tabellen.
Aber ich will den Datensatz alt erhalten und zu z.B. A22Alt1 machen damit er bei der Suche zum Prüfen nicht auftaucht ich aber in einem anderen Formular die Historie der Nr. z.B. A22 war vorher A22Alt2 und davor A22Alt1.

MzKlMu

#8
Hallo,
ich kann keine ACCDB ansehen/öffnen. Ich habe nur Access2003 (MDB).

Auch bei meinem Vorschlag ist das so wie Du es haben willst. Über den Status kannst Du steuern was Du siehst bzw. sehen willst.

Zitatdie Historie der Nr. z.B. A22 war vorher A22Alt2 und davor A22Alt1.
Nach meinem Verständnis ist das eher umgekehrt.
A22alt2 vorher A22alt1 und davor A22.

Und bei meinem Vorschlag kannst Du auf das "alt" verzichten und nur einen Zähler führen (1, 2, 3 usw.) und den dann mit A22 & "alt" & Zähler kombinieren, automatisch.
Konkreter kann ich nichts vorschlagen, da ich Dein Beispiel nicht ansehen kann.

Gruß Klaus

Brallu

Aber die Bezeichnung des aktiven Gerätes soll doch A22 bleiben. Also muss ich doch einen Neuen Datensatz erstellen und A22 übernehmen und den alten umbenennen.
Oder reden wir aneinander vorbei??  :-\

Brallu

Kriege es leider nicht als 2003er Version gespeichert :(
Aber hier mal die Beziehungen. Ist aber nur vom Beispiel aber das sind die relevanten Tabellen.

MzKlMu

Hallo,
ZitatAber die Bezeichnung des aktiven Gerätes soll doch A22 bleiben.
eben, daher ja mein Vorschlag, am Stammdatensatz wird nie etwas geändert, das Gerät hat also immer A22.
Nur in der neuen Tabelle "MaterialStatus" werden die Ergänzungen gespeichert. Und da hast Du dann die komplette Historie des Gerätes.

In welchem Feld ist denn jetzt dies A-Nr und die mit alt ?
Das Feld "matAusgesondertJaNein" ist überflüssig, das ergibt sich bereits wenn ein Datum dazu eingetragen ist. Überhaupt die Felder AusgesondertAm, Anschaffungsdatum etc. gehören alle nicht in den Stammdatensatz, sondern in eine Statustabelle wie vorgeschlagen.


Ich halte daher nach wie vor meinen Vorschlag mit der Statustabelle für den richtigen Weg.


PS:
In den Beziehungen stellt man immer den Typ 1 ein, das wird bei Bedarf nur in Abfragen als Verknüpfung geändert.

PS2:
Du kannst eine neue leere DB im MDB Format erstellen und die Tabellen importieren. Aber nicht diese abgespeckte Version, die ist zu unvollständig.
Gruß Klaus

Brallu

Ich versuche es mal auf dieArt hier im Testbeispiel. Sorry aber die anderen Tabellen werde und kann ich hier nicht einstellen.
Sie sind aus meiner Sicht auch unerheblich da diese Version lauffähig ist.
Das Feld Ja nein und die drunter habe ich nur als versuch mal eingefügt.
zu PS: Bei der Prüfung geht nur die 2 Variante. Bei Buchstabe war das allerdings falsch.
Erstelle mal was in 2003er Version.

MzKlMu

Hallo,
ZitatBei der Prüfung geht nur die 2 Variante.
dann ist etwas falsch. Und außerdem, wird das wie gesagt nur in den Abfragen geändert.
Gruß Klaus

Brallu

Hallo Klaus hier mal die Datei in 2003er Version.
Das ist das was ich brauche um die Prüfung durchzuführen. Schau doch bitte mal drüber und wenn du magst ergänz doch mal die Tabellen die  deiner Meinung benötigt werden.

Ich danke dir im voraus! Da ich noch nicht die Umsetzung verstehe die du meinst brauche ich die Hilfe wirklich. (Sorry) :-[

Gruß
Danny