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?
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]
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ß
@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.
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.
Hallo,
siehe meine Ergänzung in meinem ersten Beitrag. Habe ein Beispiel angehängt.
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?
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.
MzKlMu hab dir ne pn geschickt
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.
die datei ist leider etwas zu gross, deshalb rapidshare http://rapidshare.com/files/405343782/Filmliste_1080p_datenbak_-_Kopie.rar (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"?
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.
hmm hab Access 2010 - kann die datei irgendwie nur als 2007er speichern :(
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.
habs gefunden unter freigabe.
aber speicher lässt er mich nicht weil ich features verwendet habe mit der 2003 nichts anfangen kann:(
Hallo,
Zitataber speicher lässt er mich nicht weil ich features verwendet habe mit der 2003 nichts anfangen kann
Die entfernst Du am besten soweiso wieder, denn die taugen eh nichts. Vermutlich Mehrwertgelder.
kannst mir das vielleicht auch so verklickern wie man die hilfstabelle erstellt und dann "verknüpft"?
Hallo,
das beispeil beinhaltet alles. Wenn Du das verstanden hast, hast Du auch die Lösung.
wie stellt man den diese beziehung zwischen den beiden tabellen her?
du hast da ja gryLücken (abfragetyp) - wie erstell ich das?