Neuigkeiten:

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

Mobiles Hauptmenü

Auto-Werte auf Null, bzw. nächsten Wert setzen

Begonnen von Pergus, April 02, 2011, 15:27:19

⏪ vorheriges - nächstes ⏩

Pergus

Hallo Access-Experten!

Hab´da mal wieder eine Frage an Euch!

Derzeit, wie der Eine oder Andere von Euch sicherlich schon bemerkt hat, habe ich viele neue Themen im Forum gepostet.
Dies deshalb, weil ich seit ein paar Monaten schon dabei bin, eine Vereinsdatenbank zu basteln.
Da ich noch ziemlich neu auf diesem Gebiet bin, habe ich von Euch bereits mehrmals eine großartige Hilfe bekommen.

Nun zur Frage:

Durch das viele testen der Datenbank wurden logischerweise die AutoWerte ganz schön hochgezählt.
Gibt es eine Möglichkeit (außer das Kopieren/einfügen der gesamten Struktur),
womit man die Datenbank an den Verein weitergeben kann, als ob sie "neu" wäre?

Ein Grund ist der, dass die Mitglieder eine Mitglieds-Nr. bekommen, die fortlaufend durchnummeriert werden sollte.
Genauso die Stempelungen (Zivilschutzverein, der Einsätze und Übungen tätigt), damit diese in fortlaufender Nummerierung
der Landesstelle übergeben werden kann.

Ich danke Euch schon mal im Voraus

Pergus
Win7, Office Professional 2010

DF6GL

Hallo,


die einfachste Art, um Autowerte ( als Primärschlüssel) wieder zu "resetten" ist, alle Tabelleninhalte (Datensätze) der davon betroffenen Tabellen zu löschen und danach die Datenbank zu komprimieren/reparieren. (Wenn die DB in FE und BE aufgeteilt ist, muß das BE komprimiert werden.)


Zitatdass die Mitglieder eine Mitglieds-Nr. bekommen, die fortlaufend durchnummeriert werden sollte.

das funktioniert nur bedingt bei der Verwendung eines Autowert-Feldes.

Zitatdamit diese in fortlaufender Nummerierung der Landesstelle übergeben werden kann.

Da solltest Du Dir dringend überlegen, ob das überhaupt sinnvoll ist.  Wenn die "Nummerierung" eine bestimmte definierende Rolle in einem Datensatz spielt, würde ich diese in einem separaten Feld behandeln.


oma

Hallo Pergus,

diese Frage taucht auch öfters bei verschiedenen anderen Gelegenheiten auf.

Sage mir einen Grund für eine laufende Nummer der Mitglieder.

Mitglied Paul Wurst hat die Nr: 1099 und das bleibt auch so für alle zeiten; und wenn Paul das Zeitliche segnet oder zu einen anderen Verein wechselt wird die Nummer nicht mehr vergeben!

Anders herum hast du mal für die Nummer 1099 Hans Wurst gemeldet, wenn du nun die Nummern selbst verwaltest, so das keine Lücken entstehen (also nicht mit Auto-Wert) meldest du im nächsten Jahr evt. für Nr 1099 den Günther Düwel!!!

Was sollst, alle Mitglieder haben eine feste Nummer, die auch nicht wieder vergeben wird u. eine durchfehende Nummerierung
ist schlicht nicht notwendig

Gruß Oma
nichts ist fertig!

bahasu

Hi

wenn ich auch keinen Grund für das Resetten sehe, hier noch eine Variante, bei der nicht die Daten gelöscht werden sondern aus dem Tabellenentwurf die ID-Nr entfernt wird. Danach Komprimieren und in die Tabelle wieder die ID-Nummer als auto-Feld eintragen. Dann wird mit 1 beginnend durchnumeriert.

Diese "Brutalo"-Methode ist - von obigen Bemerkungen mal abgesehen - aber nur dann sinnvoll, wenn an der ID-Nr nicht noch andere Tabellen hängen (dann wäre der Bezug ja auch weg).

Harald

Servus

database

Servus Harald,

Zitatwenn an der ID-Nr nicht noch andere Tabellen hängen

wenn diese Beziehungen ordnungsgemäß im Beziehungsfenster gesetzt wurde,
ist das Löschen des ID-Feldes auf der 1-Seite einer Beziehung ohnehin nicht möglich.
Dieses verhindert gottlob die Wahrung der referenziellen Integrität!  ::)

Und das zeigt wieder wie wichtig es ist die Beziehungen nicht nur im Kopf zu ziehen sondern
diese auch tatsächlich im Beziehungsfenster UND den Haken bei referenzieller Integrität zu setzen.

bahasu

Zitat von: database am April 02, 2011, 19:33:22
wenn diese Beziehungen ordnungsgemäß im Beziehungsfenster gesetzt wurde,

Hi

Danke, ist mir bekannt und auch gut so, dass es ref Int gibt. Aber auch das wäre abschaltbar durch ein paar Klicks.

Deshalb hatte ich das Ganze ja auch als "Brutalo"-Methode bezeichnet.
Hatte ich auch mal angewendet, nachdem ich gesehen hatte, dass mein Tabellenkonstrukt noch "suboptimal" war.  :-\
Harald
Servus

database

#6
Hi,

ZitatAber auch das wäre abschaltbar durch ein paar Klicks
naja, wenn man eh schon gewarnt wird und trotzdem weitermacht ...

Aber wenn's dann mal so richtig schön gekracht hat brennt sich das sowieso von alleine in den Gedankensitz ein.  ;D :D ;)

Meine Empfehlung geht da immer wieder in die gleiche Scharte - Kopie anlegen und auf der Kopie herumbasteln.
Habe ich ein Formular so geändert, dass es das macht was ich mir vorgestellt habe - ins Echtsystem implementieren.
Vor einer Änderung der Arbeitsdateien mit Originaldaten kann ich nur vehement abraten!

Pergus

Hallo an alle Thema-Beteiligten!

Erstmal danke für Euer Interesse am Thema.
Werde morgen abend mal den Tipp von DF6GL versuchen!

Lasse Euch dann wissen!

Gruß

Pergus
Win7, Office Professional 2010

Pergus

Hallo DF6GL,

funktioniert wunderbar!

Die Datenbank bleibt so wie sie ist, wird also nicht in FE und BE aufgeteilt, deshalb war das Löschen aller Daten der Tabellen
in einer bestimmten Reihenfolge (wegen der referentiellen Integrität, so wie database ganz richtig geschrieben hat!!!) und
daraufhin reparieren/komprimieren, schlussendlich alle Daten in die Tabellen wieder hineinkopieren (wieder in Reihenfolge!)!

Alle AutoWerte haben wieder bei 1 begonnen!

Die Überlegung von oma ist im Grunde begründet, die ID-Nr z.B. eines Mitglieds sollte so einmalig sein wie das Mitglied selbst,
wenn kümmerts da, ob dieser dann die Nr. 10, 157 oder 123456 hat!

Den Vorschlag von bahasu habe ich jetzt so nicht versucht, da sich in meiner Struktur 19 Tabellen befinden, und ich mich ehrlich gesagt nicht traue, die AutoWerte zu löschen!

Den Vorschlag von database kann ich absolut weiterempfehlen!

ZitatMeine Empfehlung geht da immer wieder in die gleiche Scharte - Kopie anlegen und auf der Kopie herumbasteln.

Habe mir vor einiger Zeit einiges "vergeigt", seitdem mache ich mir immer Kopien vom Vortag und arbeite an denen weiter.
Sollte ich einmal was schlimm danebenhauen, habe ich immer noch die Kopie vom Vortag. Da so aber sehr viele Kopien entstehen,
packe ich, bevor alles unübersichtlich wird, etliche "alte" Kopien in einen Ordner mit der Bezeichnung "alt".
Wenn die Datenbank dann fertig ist, können alle "alten" Kopien gelöscht werden, um Speicherplatz freizumachen!

Ach, übrigens...

morgen habe ich meinen zweiten (aber leider auch letzten  :'( ) Access-Kurs-Tag  ;D!
Freu mich riesig drauf!!!

Vielleicht muss ich Euch dann nicht mehr so viele Fragen stellen  ;)

Gruß an Alle

Pergus
Win7, Office Professional 2010

DF6GL

Hallo,

eine weitere Methode wäre, wenn ALLE Tabelleninhalte gelöscht werden sollen (Db in "Anfangszustand" versetzen) , in einer neuen leeren Db alle Objekte zu importieren , bei Tabellen aber NUR die Struktur (nur Definitionen) zu übernehmen.