WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Access Autowert vorhersehen/verstellen (http://www.wcm.at/forum/showthread.php?t=127348)

3of4 04.03.2004 23:10

Access Autowert vorhersehen/verstellen
 
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?

renew 05.03.2004 07:31

Leg doch einfach vorher den Datensatz an, les den Autowert und dann schreib den Rest rein.
Is doch leichter...

Hussl 05.03.2004 07:34

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;

3of4 05.03.2004 20:33

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?

Hussl 07.03.2004 11:16

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

3of4 07.03.2004 11:20

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ß :D)
Allerdings ist dieses System nicht universell verwendbar...


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag