Zum Inhalt springen

Access Primärschlüssel-Neu nummerieren


Arnie

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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. :D 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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...