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
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
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.
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
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 ?
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.
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.
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.
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.
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?? :-\
Kriege es leider nicht als 2003er Version gespeichert :(
Aber hier mal die Beziehungen. Ist aber nur vom Beispiel aber das sind die relevanten Tabellen.
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.
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.
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.
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
Hallo,
von den ganzen Vorschlägen die in deinem Ursprungsthema gemacht wurden hast Du so gut wie nichts umgesetzt. Und da das mit dem Status auch schon drin.
http://www.access-o-mania.de/forum/index.php?topic=22061.0
Ich war und bin Anfänger und habe natürlich auch Fehler gemacht. In der richtigen DB habe ich auch einen Status der aber nur dazu genutzt wird um anzuzeigen ob das Gerät genutzt werden kann oder nicht.
Jetzt läuft das aber schon sehr gut bei Prüfung von Gerät und der Erfassung von Neugerät (hier im Beispiel nicht dabei) und ich würde gerne versuchen auch die letzte Aufgabe das Ersetzen zu lösen.
Ich habe noch keinen Plan wie ich hier starten soll.
Wenn ich das so überhaupt nicht machen kann dann kann ich ja nochmal alles ändern,
aber ich bräuchte den Ansatz den ich auch verstehen kann. Eventuell als Beispiel oder ein paar Tipps.
Gruß
und danke für deine Mühe mit mir als Anfänger.
Danny
Hallo,
ich mache Dir schon das Beispiel, kein Problem. Aber das wird morgen Abend.
Klaus du bist Super!!! ;)
Lass dir Zeit und einen schönen rest Freitag.
Gruß
Danny
Hallo,
mal noch eine Frage:
Wenn jeder Karabiner geprüft wird, muss doch jeder Karabiner in der Datenbank unterschieden werden. Das heißt, hast Du 20 Karabiner sind das 20 Datensätze in der tblMat, richtig ?
Wie unterscheidest Du dann die Karabiner, haben die eine eindeutige Nummer aufgestempelt ?
Bei der Prüfung muss man ja wissen, das ist der Karabiner Nr.15, oder wie ist das gedacht ?
Ja das stimmt zb B23 bis B33 10 Stück
Die eindeutige Nummer ist die A55 oder D23 und genau diese soll beim ersetzen wieder verwendet werden und der Alte z.B. D23 Alt
Jedes Teil hat einen Aufkleber mit dieser Kennung!!
Hallo,
ZitatJedes Teil hat einen Aufkleber mit dieser Kennung!!
Das heißt, wenn Du einen neuen Karabiner kaufst, kommt auf den ausgesonderten Karabiner A55alt1 und auf den neuen dann wieder A55 ?
Ja der Alte wird dann entsorgt und nur die Daten bekommen A55alt1.
Der Neue dann einen Aufkleber mit A55
aber der Datensatz eine neue ID und das Feld A55 wegen der Prüfungen
So wie im Beispiel in der Tabelle Mat die zweite und Dritte Spalte
buchstabeZuordnungID z.B. 1 ( Buchstabe ergibt sich aus tblBuchstabeRzNr)
matRZNummerZahl z.B. 4
Berechnet = A 4
Hallo,
ich würde aber auf dem Aufkleber unbedingt noch zusätzlich (kann ganz klein sein) die MatID vermerken. Es würde den Umgang mit dem Materialdaten ziemlich erleichtern.
Das klappt nicht weil die A22 schon echt klein ist.
Aber das brauchts auch nicht.
Das Klappt unter Excel schon seit 5 Jahren wunderbar.
Auch in Der DB die bis hier hin schon fertig ist gibt es keine Probleme. Ich habe ja schon alle Daten drin, das klappt bisher wunderbar!
Ach und jedes Teil hat ja eine meistens unterschiedliche Seriennummer unter der finde ich auch zum Datensatz wenn der Aufkleber mal ab geht.
PN und ich schicke sie dir einmal komplett wenn du magst.
Hallo,
ZitatDas Klappt unter Excel schon seit 5 Jahren wunderbar.
was in Excel kalppt hat mit einer Datenbank relativ wenig zu tun. Ich halte das Datenmodell für Verbesserungsbedürftig. Die Materialtabelle muss in 2 Tabellen geteilt werden. Eine Tabelle die unveränderlichen Daten speichert, dazu gehört der Buchstabe, die Zahl und die Beschreibung. Diese Tabelle könnte man "tblMatStammdaten" nennen mit einem eigenen Primärschlüssel. Und die eigentliche Materialtabelle erhält dann einen Fremdschlüssel zur dieser MatStammID. Diese Tabelle wäre dann die jetzige "tblMatID" und würde nur einen Fremdschlüssel zur übergeordneten MatStammID enthalten.
Ich würde Dir dringend raten das umzubauen, die ganze Historiengeschichte wird sehr einfach und Kopien braucht es auch keine mehr.
Willst Du das umbauen ?
Ich helfe Dir dabei.
Mir die komplette DB zu schicken macht nur Sinn, wenn es als MDB geht.
Mensch Klaus mach Schluss es ist doch Samstag!!
Aber ich bin begeistert das du mir hilfst und weiter helfen willst.
Ich denke die Idee ist nicht schlecht und wohl auch !!! relativ !!! einfach umzusetzen.
Über deine Hilfe freue ich mich sehr und würde sie gerne in Anspruch nehmen!
Morgen könnte ich erst einmal die Tabellen umstellen und dann würde ich dir das mal zur Ansicht schicken(als MDB) ;).
Hallo Klaus,
ich habe jetzt die Tabellen verändert und meine Abfragen und Formulare angepasst. :)
Neuer DS klappt auch hier jetzt gut und die Prüfung auch!!!
Als Anhang habe ich mal die gesamte Übersicht eingestellt und hoffe das das so in deinem Sinne war.
In MatStammdaten habe ich keine Beschreibung weil auch die sich ändern kann.
Es bleibt zwar z.B. ein Karabiner aber der kann auch einen ganz anderen Namen haben.
Ach und die Satzbuch Geschichten in der tblMat sind hier drin weil sie einmalig sind und immer neu vergeben werden und somit zu dem einzelnen Datensatz gehören.
Wenn das so ok ist würde ich mich an das Formular und die Qry für den Ersatz machen.
Gruß und Danke vorab für deine Hilfe!!!
Hallo,
ich würde das doch etwas anders lösen. In die Stammdaten kommen alle Feld des Material die sich nie ändern.
Dann gibt es eine Tabelle "tblMatZugang". In diese Tabelle kommen alle Felder die das Material eindeutig kennzeichnen, also Hersteller, Seriennummer usw. Das musst und kannst nur Du beurteilen.
Dann gibt es eine Tabelle "tblMatAbgang". In dieser Tabelle werden die Abgänge erfasst mit einer Zählnummer (kann automatisiert werden). Mit der Zählnummer und dem MatStamm wird die RzBez erzeugt für den alten Datensatz.
Mit dem Kombi können nur solche Materialein gewählt werden die auch der RzBez zugeordnet sind.
In das Ufo mit den Zugängen müssen noch alle Felder die für das Material eindeutig sind.
Beispiel anbei.
Hallo Klaus,
wirklich vielen Dank für deine Hilfe!!
Sieht sehr vielversprechend aus.
Das bedeutet es gibt somit eine Archiv Tabelle oder??
Also die tblMatAbgang ist dann die Archiv Tabelle oder?
Ich versuche mal das in meine Listen zu übernehmen und umzusetzen.
Hallo,
nein, das würde ich nicht als Archivtabelle bezeichnen. Es wird je nichts archiviert. Alle Ursprungsdatensätze bleiben dort wo sie sind. Es wird nur ein weiterer Datensatz angelegt, für die Materialien die ausgesondert wurden.
Dann habe ich das nicht richtig verstanden :(
In den Stammdaten können dann nur die StammID / BuchstabeZuordnungID / NummerZahl enthalten sein.
Alles andere könnte sich ändern. Es bleibt zwar ein Karabiner aber sonst könnte sich jeder Wert verändern.
ZitatEs wird je nichts archiviert. Alle Ursprungsdatensätze bleiben dort wo sie sind. Es wird nur ein weiterer Datensatz angelegt, für die Materialien die ausgesondert wurden.
Also könnte ich die tblMatAbgang so übernehmen und in der tblMat (bei dir MatZugang) die Felder erweitern?
ZitatAlso könnte ich die tblMatAbgang so übernehmen und in der tblMat (bei dir MatZugang) die Felder erweitern?
Ja, so ist es.
Ich versuche es mal :)
Kann ich sie dir dann mal per PN zur Ansicht schicken wenn es noch große Probleme gibt??
Könnte das dann so aussehen?
Hallo,
ja, so habe ich das auch.
Moin,
hab leider doch noch ein paar Fragen.
1) Wo kann ich denn jetzt einem Datensatz sagen er soll von neu zu alt?
2) wie kann ich abfragen das ich die aktuellen RZ Nummern erhalte und die RZ Alt nicht?
3) kann ich hier
ZitatAbGRzNrBez: [buchstabeRzNummer] & Format([matRZNummerZahl];"00") & "alt" & [AbgZähler]
[buchstabeRzNummer & matRZNummerZahl schreiben dann muss in der Suche nicht A01 eingegeben werden sondern A1
Bin leider gerade ein wenig überfordert deinen Gedanken zu folgen :( brauche wohl mal ein Bier :)
Grundprinzip ist mir klar (glaube ich) aber wie ich ein Formular daraus zauber wo ich z.B. A1 ersetzen kann nicht.
Sorry
Hallo,
ZitatWo kann ich denn jetzt einem Datensatz sagen er soll von neu zu alt?
gar nicht, da wird nix von neu nach alt verschoben. Im Ufo wird nur der Datensatz über das Kombi gewählt der ausgesondert wird. An der Ursprungstabelle ändert sich nichts. Ist doch in meinem Beispiel alles zu sehen.
Zu 2)
Ich habe mal noch 2 Abfragen (1.., 2...) eingebaut. Der Name der Abfragen erklärt was sie machen.
Zu 3)
Ja, einfach das Format entfernen, das hat keine weiter Bedeutung.
Zitataber wie ich ein Formular daraus zauber wo ich z.B. A1 ersetzen kann nicht
Die Frage verstehe ich nicht, was willst Du denn ersetzen ?
Im Grunde musst Du nur das Formular (bzw. Ufo um die entsprechenden Felder erweitern. Du hast alles was Du brauchst. In diesem Formular (frmErfassung) kannst Du alles erledigen.
Ich habe noch mehr Sachen geändert u.a. auch die Beziehungen.
DB anbei.
Danke ich habe deine Vorlage gerade in meine Orginal DB integriert und das klappt auch so fürs erste. Schaue jetzt erst mal in die neue DB.
Also was ich noch nicht verstehe:
Ich habe eine Prüfung und da gebe ich bis jetzt z.B. A1 ein dann kann ich prüfen!
Wie mache ich es jetzt das er nicht den alten sondern den neuen Datensatz öffnet???
Ahhh!!! :)
Hallo,
ZitatIch habe eine Prüfung und da gebe ich bis jetzt z.B. A1
Die Materialien die geprüft werden sollte man nicht eingeben, sondern unbedingt per Kombifeld auswählen. Die Auswahl mit Kombi ist sehr komfortabel und Tippfehlersicher. Und das Kombifeld braucht dann eine Abfrage die die ausgesonderten Materialien nicht anzeigt. Wie das geht, siehst Du in der Abfrage 2...
Da wird auch keine Datensatz geöffnet.
Für die Prüfung machst Du ein extra Formular, das nur der Erfassung der Prüfung dient.
Nachtrag:
Ahhh!! heißt was ?
Deine Beiden zusatz Qry = Ahhh :)
Aber die Prüfung läuft super über die Eingabe!
Ich könnte dir das mal schicken über Email wenn du magst das erklärt sich dann.
Du hast eine PN.
Ist raus!!
Moin Klaus,
konntest du die Datei starten?
Moin nochmal,
jetzt habe ich meine Archivierung so wie ich sie haben will aber bei der automatischen Speicherung hapert es leider schon wieder. :-\
Ich habe Klaus seine Ideeen soweit übernommen und mal ein Beispiel gebastelt.
Dieses Beispiel ist nur auf das wesentliche beschränkt und noch nicht mit VBA Code hinterlegt.
Im Bild "Formular" habe ich mal aufgezeichnet was der Speicherbutton im UFO ErfassungAktuellesGerät machen soll.
Wenn ich also speichere dann soll zusätzlich zum normalen Datensatz speichern im UFO NeuesGerät,
im Datensatz UFO AktuellesGerät folgendes geändert werden:
- das Datum (NeuesGerät / matZugangsdatum) soll in (AktuellesGerät / matErsatzDatum) auch gespeichert werden.
- im Feld (AktuellesGerät / matErsatzZaehler) soll der Wert 1 eingetragen werden. Wenn diese Zahl schon
vergeben ist soll die Zahl um 1 erhöht werden.
So das in der Tabelle (tblMatGeraet) bei den richtigen Datensätzen alles gespeichert wird!
Gibt es da eine einfache Möglichkeit dies noch umzusetzen???
Ich würde mich doll freuen wenn nochmal jemand seine karge Freizeit opfert und mal kurz drüberschaut. :)
Gruß
Danny