Neuigkeiten:

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

Mobiles Hauptmenü

ID Dekrement

Begonnen von braveheartchris, Juli 06, 2010, 19:10:35

⏪ vorheriges - nächstes ⏩

braveheartchris

Hallo,
ich bin zZ dabei mir eine Liste für meine dvds in access zu erstellen.
Dazu habe ich bereits eine tabelle und ein Formular erstellt.

dem formular habe ich schaltflächen hinzugefügt mit welchen ich durch meine filmliste navigieren, löschen, speichern oder hinzufügen kann - gut das geht auch alles.

aber wenn ich jetzt sagen wir 5 einträge erstellt habe und das fünfte dann lösche, zählt mir der primärschlüssel das löschen nicht minus eins, somit bin ich bei ID 6.

Ich hätte aber gerne mein ID vortlaufent also 1,2,3,4,5.... und nicht 1,2,3,4,6

nochmal:
ID
1.  eingabe
2.  eingabe
3.  eingabe
4.  eingabe
5.  eingabe  - wird jetzt von mir gelöscht!
6.  eingabe  - hier sollte nun eigentlich 5. folgen aber er zählt mir die gelöschte eingabe mit


kann mir jemadn helfen bitte?






MzKlMu

#1
Hallo,
eigentlich sollte es für den Primärschlüssel bedeutungslos sein, wenn da eine Lücke ist. Wenn Du eine durchlaufende Nummerierung willst, solltest Du dazu ein eigenes Feld anlegen. Allerdings, hast dann exakt das gleiche Problem, Du musst mit DMax den höchsten Wert ermitteln und 1 dazu zählen. Aber Lücken werden damit auch nicht gefüllt.
Der einfachste Weg, ist eine Hilfstabelle die fortlaufend alle Zahlen enthält. Mit einer Abfrage kann dann ermittelt werden, wo eine Lücke ist in den echten Datensätzen.

[Anhang gelöscht durch Administrator]
Gruß Klaus

Manfred S

Hallo,
das ist genau das, was den Primärschlüssel ausmacht.
Er dient nicht zur Vergabe einer fortlaufenden, ununterbrochenen Nummer.

Schau mal in den Thread "Formular mit Datenbank verbinden". Ca. 3 Themen unter Deinem.
Dort wird ein Code dargestellt.
Das könnte die Lösung sein...
Gruß

MzKlMu

@Manfred S
Das ist auch nicht die Lösung, weil da auch keine Lücken gefüllt werden. Es wird ja mit DMax der höchst Eintrag ermittelet und 1 dazu gezählt. 1,2,3,5 ist 5 das Maximum +1 = 6, die 4 ist immer noch nicht gefüllt.
Ich habe oben mal ein Beispiel mit der Hilfstabelle angehängt.
Gruß Klaus

braveheartchris

danke für die antwort.

wie mache ich das dann wenn ich ein neues feld erstelle.
welchen datentyp hat das feld dann - AutoWert geht ja nur einmal in der Tabelle.

wie mache ich das dann das er mir das vortlaufent zählt?
aber da wird ja dann das selbe problem wie beim Primärschlüsselaufträten beim löschen, wie du schon sagtest.

MzKlMu

Hallo,
siehe meine Ergänzung in meinem ersten Beitrag. Habe ein Beispiel angehängt.
Gruß Klaus

braveheartchris

Zitat von: MzKlMu am Juli 06, 2010, 19:32:23
Es wird ja mit DMax der höchst Eintrag ermittelet und 1 dazu gezählt. 1,2,3,5 ist 5 das Maximum +1 = 6, die 4 ist immer noch nicht gefüllt.

kann man DMax nicht im Code von der löschenschaltfäsche um 1 Dekremtieren?

MzKlMu

Hallo,
Zitatkann man DMax nicht im Code von der löschenschaltfäsche um 1 Dekremtieren?
Und dann, die Lücke ist doch jetzt zufällig bei 4, wenn die bei 2 wäre, was dekremtierst Du dann?
Du müsstest ja den Wert zum dekremtieren ermitteln, was ja auch wieder ein ziemlicher Aufwand wäre, ohne dass ich mir darüber jetzt Gedanken gemacht hätte. Und auch nicht tun werde, weil die Hilfstabelle (wie im Beispiel) die absolut einfachste Methode ist.
Mit einer einzigen Zeile VBA.
Gruß Klaus

braveheartchris

MzKlMu hab dir ne pn geschickt

MzKlMu

#9
Hallo,
ich möchte keine PN zur Lösung von Problemen. Alles läuft über das Forum.
Ich lade auch bei Rapidshare nichts herunter. Du kannst die Datei im Forum direkt anhängen. Ohne Rapidshare.
Und bitte in eine Version kleiner Access2007 konvertieren, falls Du eine neuere Version hast. Access2007 haben noch nicht so viele.
Im Forum helfe ich Dir gern, aber nicht per PN.
Gruß Klaus

braveheartchris

die datei ist leider etwas zu gross, deshalb rapidshare http://rapidshare.com/files/405343782/Filmliste_1080p_datenbak_-_Kopie.rar

ich hab erst gestern mit access angefangen - bin also absoluter anfänger.

kannst du mir zeigen wie ich diese hilfstablle genau erstelle und dann mit meinem formular/tabelle "verknüpfe"?



MzKlMu

Hallo,
Zitat von: MzKlMu am Juli 06, 2010, 20:04:10
Und bitte in eine Version kleiner Access2007 konvertieren, falls Du eine neuere Version hast. Access2007 haben noch nicht so viele.
Ich habe kein Access2007, wenn Du nicht konvertierst, kann ich Dir nicht helfen.
Gruß Klaus

braveheartchris

hmm hab Access 2010 - kann die datei irgendwie nur als 2007er speichern :(

MzKlMu

Hallo,
irgendwo muss es eine Möglichkeit geben in Access2003 zu speichern. Da sich Bedienung von A2003 nach A2007 grundsätzlich geändert hat, habe ich aber keinen weiteren Hinweis dazu.
Gruß Klaus

braveheartchris

habs gefunden unter freigabe.

aber speicher lässt er mich nicht weil ich features verwendet habe mit der 2003 nichts anfangen kann:(