Arnie Geschrieben 23. August 2002 Teilen Geschrieben 23. August 2002 Hallo miteinander, ich habe eine kleine Frage. Gibt es die Möglichkeit in einer Tabelle in Access 2000 die Nummerierung des Primärschlüssels zu ändern? Bsp.: Lösche Datensatz mit Primärschlüssel 10. ID 10 taucht nirgend mehr auf und nach der 9 folgt eine 11. Ich will die Primärschlüssel fortlaufend haben. Gibt es da eine Möglichkeit? Bevor jemand fragt: Ja, ich habe schon bei google gesucht = kein befriedigendes Ergebnis. MfG Arnie Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
byte Geschrieben 23. August 2002 Teilen Geschrieben 23. August 2002 Wenn du keinen AutoWert genommen hast, kannst du dir ab Access XP eine Prozedur schreiben, welche die IDs wieder anordnet. Dabei solltest du aber darauf achten, dass evtl. Programme die darauf zugreifen, damit klar kommen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Arnie Geschrieben 23. August 2002 Autor Teilen Geschrieben 23. August 2002 Was soll denn bedeuten: Dabei solltest du aber darauf achten, dass evtl. Programme die darauf zugreifen, damit klar kommen. ? Ich habe zwar Access 2000 und damit hätte sich diese Frage eh erübrigt, doch interessieren tut mich das schon. Hat jemand eine Ahnung, wie ich unter ACCESS 2000 mein Problem gelöst bekomme? MfG Arnie Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
byte Geschrieben 23. August 2002 Teilen Geschrieben 23. August 2002 Ich hab schon von Leuten gehört die statische IDs in ihre Programme vercodet haben. Wenn du dann aber die IDs in der DB updatest wird es nicht mehr funzen, weil die IDs der Datensätze sich ja ändern. Wozu brauchst du denn fortlaufende IDs ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Arnie Geschrieben 23. August 2002 Autor Teilen Geschrieben 23. August 2002 Muss das Programm eines Kollegen fortführen. Ein Praktikant erstellte die Datenbank, dementsprechend ist die auch (redundanz wo man nur hinschaut). Doch den Quelltext so zu lassen wie er ist, mit seinen ganzen DB-Zugriffen ist einfacher, als alles umzumodeln. 1.) interessiert mich das brennend, ob das funzt 2.) Benötige ich eine fortlaufende Reihenfolge für eine unglücklich formulierte, aber äußerst komplexe DB-Abfrage. MfG Arnie Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tauron Geschrieben 23. August 2002 Teilen Geschrieben 23. August 2002 Moin ! das einfachste (und das einzige was mir jetzt spontan einfällt)wäre, wenn Du die Spalte mit dem Primärschlüssel einfach löschst und wieder als Autowert anlegst. Er müsste dann alle Datensätze korrekt durchnummerieren. Wenn die Abfragen sich dann jedoch auf diesen Primärschlüssel beziehen, hast Du, wie byte schon meinte, das Problem das die Nummerierung der Datensätze jetzt anders ist und womöglich falsche Ergebnisse rauskommen. Vielleicht wär es einfacher die "unglücklich" formulierte Abfrage umzustellen? Gruß Christian ------------------------------------------------------------ "All power corrupts. Absolute Power is kinda neat though..." "50.000 gold a year in child care and they call it a CULT ?!?" - Kel'Thuzad, Archlich Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
byte Geschrieben 23. August 2002 Teilen Geschrieben 23. August 2002 Desweiteren müsstest du dann bei jeder änderung der Datensätze, von hand die Spälte löschen und wieder anlegen. Ich würde mir also je nach dem wie oft die Daten geändert werden, überlegen ob ich den Code nicht doch umschreiben sollte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Arnie Geschrieben 23. August 2002 Autor Teilen Geschrieben 23. August 2002 Auf die Idee mit dem Löschen bin ich auch schon gekommen. Und in meinem Fall ist das auch ausreichend, doch ich war mir nicht sicher, was er in einer Tabelle mit tausenden von Datensätzen machen würden, wenn ich das Prozedere anwende. Aber Ihr seht da keine bedenken? Nebenfrage: Wer macht denn Abfragen auf dem Primärschlüssel? Man sucht doch im Normalfall immer ein normales Datenfeld nach bestimmten Kriterien und geht dann mit rec.MoveNext einfach weiter... MfG Arnie P.S.: Danke für Eure Mühe! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
byte Geschrieben 23. August 2002 Teilen Geschrieben 23. August 2002 Über den Primär- bzw. Fremdschlüssel, werden die Tabellen ja zu einer Abfrage gemacht. Ich bin mir nicht 100% sicher, also mach lieber ne Kopie von der DB und versuch es. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Arnie Geschrieben 23. August 2002 Autor Teilen Geschrieben 23. August 2002 DANKE! Versuch's direkt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 23. August 2002 Teilen Geschrieben 23. August 2002 Original geschrieben von Arnie Aber Ihr seht da keine bedenken? Ja, sogar sehr große, da du alle Tabellen die sich auf den Primärschlüssel beziehen ändern müßtest. Original geschrieben von Arnie Nebenfrage: Wer macht denn Abfragen auf dem Primärschlüssel? Entweder du hast ein massives Design Problem oder du bist mit Excel besser bedient. Alle Abfragen die sich auf mehrere Tabellen beziehen, haben mit Sicherheit irgendwo den Primärschlüssel als Kriterium drin. Vielleicht postest du mal warum die Nummern unbedingt fortlaufend sein müssen. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Arnie Geschrieben 23. August 2002 Autor Teilen Geschrieben 23. August 2002 Ja, das war mal wieder ein Stau in den Synapsen. Über die Möglichkeit der Verweise innerhalb der DB habe ich gar nicht nachged8. Meine Intention für die Neu-Nummerierung siehst Du in diesem Thema, bei den Punkten 1.) & 2.)! Es ist aber mehr interessehalber, als wirklich nötig ;-)! MfG Arnie Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 23. August 2002 Teilen Geschrieben 23. August 2002 Original geschrieben von Arnie Meine Intention für die Neu-Nummerierung siehst Du in diesem Thema, bei den Punkten 1.) & 2.)! Nö, da steht nur das du das so haben willst aber nicht warum. Original geschrieben von Arnie Es ist aber mehr interessehalber, als wirklich nötig ;-)! Dann lass es sein, ein Primärschlüssel muss nicht schön aussehen, sondern nur die Funktion einer eindeutigen Zuweisung erfüllen. Wenn es darum geht bei einer Abfrage irgendwelche Aussagen über die Anzahl der Datensätze zu machen, nimmt man die Funktion count() Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Arnie Geschrieben 23. August 2002 Autor Teilen Geschrieben 23. August 2002 Das es eine Count Funktion gibt, war mir auch schon bekannt. Ich benutze sie sogar. Aber es ist für mich trotzdem sehr interessant, zu wissen, ob eine Datenbank dazu in der Lage ist. Als Fallbeispiel aus meinem Projekt: Es werden Rechnungsnummern verteilt. In der Tabelle Rechnung ist der Primärschlüssel das Feld Regnr. Durch dieses Feld wird der Rechnung eine Nummer zugewiesen. Da ist es natürlich blöd, wenn nach der Rechnung 17659 plötzlich die Nummer 17665 raus kommt. Das würde buchhalterisches Probleme geben. MfG Arnie Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Olli_Master Geschrieben 23. August 2002 Teilen Geschrieben 23. August 2002 Grundsätzlich dient der Primärschlüssel zur eindeutigen Idendifikation des Datensatzes. Wenn eine Datenbank eine durchgehende Nummerierung von Datensätzen über den Primärschlüssel bereitstellen würde, so müsste die DB auch sicherstellen, dass kein Datensatz mehr aus der Tabelle entfernt wird (, da sonst ständig der Primärschlüssel aktualisiert werden müsste - in allen abhängigen Tabellen natürlich !). Folglich ist eine automatische durchgehende Nummerierung nicht über den Primärschlüssel zu lösen. Als Fallbeispiel aus meinem Projekt: Es werden Rechnungsnummern verteilt. In der Tabelle Rechnung ist der Primärschlüssel das Feld Regnr. Durch dieses Feld wird der Rechnung eine Nummer zugewiesen. Da ist es natürlich blöd, wenn nach der Rechnung 17659 plötzlich die Nummer 17665 raus kommt. Das würde buchhalterisches Probleme geben. Ich denke, dass ist eine Ansichssache: Du kannst den Bericht doch von 1 bis xx durchnummeriert und mit der "nicht fortlaufenden" Rechnungsnummer als Bezug ausgeben. (So hast du keine neuen Probleme, wenn die Nummerierung jedes Jahr von vorn beginnt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 23. August 2002 Teilen Geschrieben 23. August 2002 Original geschrieben von Arnie Da ist es natürlich blöd, wenn nach der Rechnung 17659 plötzlich die Nummer 17665 raus kommt. Das würde buchhalterisches Probleme geben. Da hast du nicht ganz unrecht. Allerdings kannst du (aus buchhalterischer Sicht) auch nicht einfach Datensätze löschen und dann die nachfolgenden Rechnungen umnummerieren, das gibt genauso Probleme, wenn das auffliegt. Eine saubere Lösung ist in dem Fall eine Stornorechnung zu machen und den zu löschenden Datensatz nicht wirklich löschen sondern den nur als storniert kennzeichen. So kannst du nachweisen wie die Lücken in der Nummerierung (sind ja eigentlich keine Lücken, wenn die Datensätze nur als storniert gekennzeichnet sind) zustande kommen und für die Ablage hast du die Stornorechnung. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 23. August 2002 Teilen Geschrieben 23. August 2002 Bin zwar kein Buchhaltungsmensch, hatte mir sowas aber schon gedacht. Also Arnie Finger weg vom Primärschlüssel. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Arnie Geschrieben 26. August 2002 Autor Teilen Geschrieben 26. August 2002 @Wolle Genau das mache ich. Ich habe ein Feld "aktiv" und das setze ich bei der "löschung" einfach auf 0. Somit taucht die Rechnung im Proggi nicht mehr auf, ist jedoch in der Datenbank noch verzeichnet. Wie gesagt, es war nur interessehalber. @ALLE: Danke an alle, werde, glaube ich, die Finger davon lassen. MfG Arnie Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.