Supportnet / Forum / Datenbanken
Datensatz-Nr einem Feld zuweisen
Frage
Hallo zusammen,
gibt es eine Möglichkeit, die jeweilige Datensatznummer in ein Feld (z.B. Auftragsnr.) des Datensatzes zu schreiben?
Bin über jeden Tip dankbar!
Gruß frokzee
Antwort 1 von 14071
schon mal mit einem Feld vom Typ autowert versucht?
Gruß
Jürgen
Gruß
Jürgen
Antwort 2 von frokzee
ja... das funktioniert aber nicht, denn wenn ich einen Datensatz lösche, kann ich die gelöschte AutoWert-Nr. nicht wieder verwenden!
Antwort 3 von 14071
braucht bei einer ID ja auch nicht zu sein, was willst du denn damit erreichen?
Antwort 4 von frokzee
Ich möchte ganz einfach eine Nr. haben, die genau der Datensatz-Nr. entspricht!
Bei einer AutoWert-Nr. habe ich wiegesagt ja das Problem, dass wenn ich z.B. Nr. 5 von 10 lösche, es dann einfach die Nr. 5 nicht mehr gibt und auch nie wieder geben wird! Die Reihe sind dann ja so aus:
1 2 3 4 6 7 8 9 10
Das muss doch irgendwie gehen...
Gruß frokzee
Bei einer AutoWert-Nr. habe ich wiegesagt ja das Problem, dass wenn ich z.B. Nr. 5 von 10 lösche, es dann einfach die Nr. 5 nicht mehr gibt und auch nie wieder geben wird! Die Reihe sind dann ja so aus:
1 2 3 4 6 7 8 9 10
Das muss doch irgendwie gehen...
Gruß frokzee
Antwort 5 von 14071
hab schon verstanden was du willst, aber nicht, warum und wozu das gut sein soll.
In der Tabelle hab ich keine Lösung, aber vielleicht willst du´s ja nur zur Ansicht in einem Formular, oder so, das gäb´s dann ...
In der Tabelle hab ich keine Lösung, aber vielleicht willst du´s ja nur zur Ansicht in einem Formular, oder so, das gäb´s dann ...
Antwort 6 von frokzee
OK, in der Tabelle gehts nicht, klar...
Wie sieht es mit einem Listenfeld auf einem Formular aus?
Gruß frokzee
P.S. Danke für die Hilfe
Wie sieht es mit einem Listenfeld auf einem Formular aus?
Gruß frokzee
P.S. Danke für die Hilfe
Antwort 7 von 14071
also ganz einfach geht´s in einem Bericht, da brauchst du nur ein ungebundenes Textfeld einzufügen und =1 bei Inhalt einzutragen. Dabei stellst du noch ein bei laufendeSumme über Alles oder Gruppe.
Es muß auch möglich sein, die laufende Datensatznummer im Form mit auszugeben, aber wie? und vor allem warum? Dient dir das irgendwie als Hilfe um festzustellen, wann der Satz eingegeben wurde, oder so??
Gruß
Jürgen
Es muß auch möglich sein, die laufende Datensatznummer im Form mit auszugeben, aber wie? und vor allem warum? Dient dir das irgendwie als Hilfe um festzustellen, wann der Satz eingegeben wurde, oder so??
Gruß
Jürgen
Antwort 8 von 14071
hab´s gefunden, wie´s geht - www.donkarl.com 4.13 - da steht´s geschrieben. Nimm also eine Abfrage als Grundlage für dein Form und bau die Funktion von Karl Donbauer ein.
Aber wozu würd mich trotzdem interessieren.
Gruß
Jürgen
Aber wozu würd mich trotzdem interessieren.
Gruß
Jürgen
Antwort 9 von frokzee
Alles klar, Danke.
Ich habe eine Access-DB zur Verwaltung von Projekten. Die Projekt-Nummer spielt keine Rollte, sollte aber stets ohne Lücken sein!
Gruß, frokzee
Ich habe eine Access-DB zur Verwaltung von Projekten. Die Projekt-Nummer spielt keine Rollte, sollte aber stets ohne Lücken sein!
Gruß, frokzee
Antwort 10 von Roadrunner90
wenn du jemals eine Lösung findest, sag mir bitte bescheid. Suche ich auch schon, allerdings mehr aus Interesse bei IBM-Datenbanken (DB2/DB400) gibt es die Satznummer und man kann sie auch auslesen und benutzen. Evtl. gibt es eine Möglichkeit mit SQL an die Satznummer zu kommen, das teste ich mal in den nächsten Tagen
Gruß Rudolf
Gruß Rudolf
Antwort 11 von Teddy7
Also Du willst die SatzNummer als Projektnummer verwenden ?
Da gibt es ein Problem. Wenn es zunächst z.B. so aussieht:
1 Projekt A
2 Projekt B
3 Projekt C
4 Projekt D
und dann Satz 2 gelöscht wird, dann müsste doch -spätestens nach komprimieren der Datenbank - das hier passieren, oder:
1 Projekt A
2 Projekt C
3 Projekt D
d.h. die SatzNr ist für sowas nicht brauchbar.
Nimm besser als ProjektNr eine Zahl(integer oder long, je nach Bedarf).
Wenn dann ein neuer Datensatz erfaßt wird, dann programmierst Du sowas:
dim xnext as long
if isnull(ProjektNr) or ProjektNr = 0 then
xnext = 0
on error resume next
xnext = dmax("ProjektNr", "tblDeineTabelle")
on error goto 0
if xnext = 0 then
xnext = 1
endif
ProjektNr = xnext
endif
am bestem im lostfocus-ereignis eines Feldes, das auf jeden Fall durchlaufen werden muß (damit Du keine Nummer vergibst, wenn sich nur jemand auf diese Form verirrt hat *g*)
Gruß
Teddy
Da gibt es ein Problem. Wenn es zunächst z.B. so aussieht:
1 Projekt A
2 Projekt B
3 Projekt C
4 Projekt D
und dann Satz 2 gelöscht wird, dann müsste doch -spätestens nach komprimieren der Datenbank - das hier passieren, oder:
1 Projekt A
2 Projekt C
3 Projekt D
d.h. die SatzNr ist für sowas nicht brauchbar.
Nimm besser als ProjektNr eine Zahl(integer oder long, je nach Bedarf).
Wenn dann ein neuer Datensatz erfaßt wird, dann programmierst Du sowas:
dim xnext as long
if isnull(ProjektNr) or ProjektNr = 0 then
xnext = 0
on error resume next
xnext = dmax("ProjektNr", "tblDeineTabelle")
on error goto 0
if xnext = 0 then
xnext = 1
endif
ProjektNr = xnext
endif
am bestem im lostfocus-ereignis eines Feldes, das auf jeden Fall durchlaufen werden muß (damit Du keine Nummer vergibst, wenn sich nur jemand auf diese Form verirrt hat *g*)
Gruß
Teddy
Antwort 12 von frokzee
Hi Teddy,
besten dank für den Tip. Werde es gleich mal so versuchen.
Gruß
frokzee
besten dank für den Tip. Werde es gleich mal so versuchen.
Gruß
frokzee

