WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 04.03.2004, 23:10   #1
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard 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?
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 05.03.2004, 07:31   #2
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Leg doch einfach vorher den Datensatz an, les den Autowert und dann schreib den Rest rein.
Is doch leichter...
renew ist offline   Mit Zitat antworten
Alt 05.03.2004, 07:34   #3
Hussl
Veteran
 
Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320


Standard

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
Hussl ist offline   Mit Zitat antworten
Alt 05.03.2004, 20:33   #4
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard

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?
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 07.03.2004, 11:16   #5
Hussl
Veteran
 
Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320


Standard

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
Hussl ist offline   Mit Zitat antworten
Alt 07.03.2004, 11:20   #6
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard

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...
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:21 Uhr.


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