![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Elite
![]() Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429
|
![]() Ich füge mittels SQL in eine MS Access DB neue Datensätze ein.
Allerdings müsste ich die Id die die Sätze kriegen vorraussagen, und da wirfts Probleme: Im Moment lese ich den Autowert(=id) vom letzten DS und addiere eins dazu. Nur: Wenn ich einen DS dazwischen gelöscht habe würde Access doch theoretisch einen Wert nehmen der um 2 höher ist? Wie kann ich also den Autowert so einstellen, dass er den nächsthöheren Wert nimmt? Oder müsste ich das in der Seite erledigen, sprich kann ich den Autowert vergessen? |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Leg doch einfach vorher den Datensatz an, les den Autowert und dann schreib den Rest rein.
Is doch leichter... |
![]() |
![]() |
![]() |
#3 |
Veteran
![]() Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320
|
![]() Ich glaube, in diesem Fall ist der Autowert keine gute Idee, da - wie du gesagt hast - Access nicht beim letzten Wert fortsetzt. Damit Access das wieder macht, müsste man die Datenbank komprimieren.
Du könntest dir ein einfaches Zahlenfeld anlegen (evtl. mit einem Index) und dann programmtechnisch immer den Wert erhöhen... Mit einer Abfrage lässt sich die letzte ID ja auch sehr schnell ermitteln: SELECT MAX(id) FROM tabelle;
____________________________________
Nein, ich bin nicht die Signatur, ich putz hier nur. http://www.chili-it.at |
![]() |
![]() |
![]() |
#4 |
Elite
![]() Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429
|
![]() Nö, da ist mir meine momentane Lösung lieber: Ich lesen die Id des letzten DS, addiere Eins und schreibe das manuell in das entsprechende Feld.
Kannst du mir sagen, wie ich eine Access DB komprimiere und was das bringt? |
![]() |
![]() |
![]() |
#5 |
Veteran
![]() Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320
|
![]() wenn du datensätze manipulierst oder löscht, dann bläht sich die access-datenbank auf. access löscht das irgendwie nicht sofort (bin mir aber nicht ganz sicher, will keinen blödsinn erzählen)
abhilfe schafft da das komprimieren. du löscht damit alles unnötige und machst die db wieder schlank. komprimieren kannst du eine datenbank indem du auf extras/datenbank-dienstprogramme/datenbank komprimieren und reparieren (unter access xp), unter access 97 ist es nur datenbank komprimieren. was ich aber noch nicht verstanden hab: du hast ein autowert-feld. das kann man doch nicht selbst befüllen, oder? dann nützt es ja auch nix, die letzte id rauszufinden, wenn man das feld nicht selbst füllen kann... oder bin ich schon ganz blöd?? ;-) Greets, Hussl
____________________________________
Nein, ich bin nicht die Signatur, ich putz hier nur. http://www.chili-it.at |
![]() |
![]() |
![]() |
#6 |
Elite
![]() Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429
|
![]() Nein, du bist nicht blöd, ich hab den Autowert weggelassen und erzeuge ihn jetzt Händisch (geht weil bei meinem System max. einer gleichzeitig einen neuen Bericht schreibt, sobald zwei gleichzeitig schreiben würden gäbe es eine ordentlichen Scheiß
![]() Allerdings ist dieses System nicht universell verwendbar... |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|