Access Autowert formatieren mit 0 am Anfang
Hallo,
Ich möchte in Access einen Autowert so formatieren, dass der erste Wert 001 los geht, doch wenn ich das über eine SQL-Abfrage mache fängt er trotzdem mit 1 und nicht 001 an.
Kann mit da jemand helfen??
MfG bumbum
Ich möchte in Access einen Autowert so formatieren, dass der erste Wert 001 los geht, doch wenn ich das über eine SQL-Abfrage mache fängt er trotzdem mit 1 und nicht 001 an.
Kann mit da jemand helfen??
MfG bumbum
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 125411
Url: https://administrator.de/contentid/125411
Ausgedruckt am: 26.11.2024 um 12:11 Uhr
6 Kommentare
Neuester Kommentar
Moin bumbum,
mit Datenbanken kenn ich mich ja nicht so aus, aber..ein "AutoWert"/"Autoincrement"
Wie sieht die denn aus?
Grüße
Biber
mit Datenbanken kenn ich mich ja nicht so aus, aber..ein "AutoWert"/"Autoincrement"
- ist immer in ADO/ADOX vom Typ adInteger ->COUNTER ist adinteger mit dem Zusatzattribut "AutoIncrement" auf TRUE
- auch DAO/DDL-Datentyp COUNTER ist LONG (also == adInteger) mit dem Zusatzattribut "dbAutoIncrField" auf TRUE)
- was aber beides auch wurscht ist, denn die Formatierung machst Du doch eh nur im Display, also in der Query.
Wie sieht die denn aus?
Grüße
Biber
Ich kann mit Deiner Frage auch nicht wirklich viel anfangen. Ich vermute Du vergewaltigst gerade ein paar Datenbankmittel anders als vorgesehen.
Prinzipiell mal zum Format eines Autowertes: Die Tabelle im Entwurfsmodus öffnen, auf das Feld mit dem Autowert gehen und dann bei den Eigenschaften im Feld Format 000 eingeben. Formatiert Zahlen so, daß 1 und 2 stellige Zahlen 2 oder 1 Null davor haben.
Aber:
Ein Autowert wird AUTOMATISCH beim Speichern vergeben, Du kannst einer Autowert-Spalte nicht manuell Werte zuweisen. Deswegen verstehe ich das mit dem Prüfen auf schonmal vergeben nicht. Beim Speichern bekommt die Autowert Spalte AUTOMATISCH einen neuen eindeutigen Wert.
Deswegen vermute ich, daß Du was anderes machst / machen willst / beschreibst als das, was ich aus Deinem Text rausgelesen habe.
Ansonsten kann man natürlich auch beim Auslesen mit einer SQL Abfrage führende Nullen hinzufügen:
Prinzipiell mal zum Format eines Autowertes: Die Tabelle im Entwurfsmodus öffnen, auf das Feld mit dem Autowert gehen und dann bei den Eigenschaften im Feld Format 000 eingeben. Formatiert Zahlen so, daß 1 und 2 stellige Zahlen 2 oder 1 Null davor haben.
Aber:
Ein Autowert wird AUTOMATISCH beim Speichern vergeben, Du kannst einer Autowert-Spalte nicht manuell Werte zuweisen. Deswegen verstehe ich das mit dem Prüfen auf schonmal vergeben nicht. Beim Speichern bekommt die Autowert Spalte AUTOMATISCH einen neuen eindeutigen Wert.
Deswegen vermute ich, daß Du was anderes machst / machen willst / beschreibst als das, was ich aus Deinem Text rausgelesen habe.
Ansonsten kann man natürlich auch beim Auslesen mit einer SQL Abfrage führende Nullen hinzufügen:
SELECT Format(Tabelle1.test,'000') FROM Tabelle1
Moin bumbum,
ich versuch nochmal meine Verständnisprobleme zu beschreiben.
Verschiedene RDBMSe wie Oracle, DB2, MSSQL etc bieten leicht variiert diese AutoIncrement-Felder an.
Das funktioniert bei allen Datenbanken ähnlich mit vier Grundsätzen
---> Deshalb: einen "AutoWert" kannst Du nicht verbiegen zu einem wie-auch-immer-gerechtfertigten zusammengesetzen "automatisch generierten Kunstschlüssel" aus zwei Nummernkreisen (Präfix +"-"+ lfdNr-als-Text).
Das musst Du per VBA lösen.
Mimik: Wenn für Präfix "12345" ein neuer Satz hinzukommt, dann musst Du prüfen 'was ist jetzt die höchste vergebene lfdNr für Gruppe/Kategorie "12345"?'
Und wenn bei dieser Max()-Query rauskommt "12345-011", dann muss du eben 2001 draufaddieren auf die "11" , dann hast du 2012 --> davon die rechten 3 Stellen verwenden --"012" und aus dem bekannten Prefix und "-" und "012" Deinen neuen Kunstschlüssel zusammenbraten.
Der ist dann sicherlich auch eindeutig und als PK geeignet.... aber ein AutoWert-Feld hast und brauchst und kannst Du nicht.
Grüße
Biber
ich versuch nochmal meine Verständnisprobleme zu beschreiben.
Verschiedene RDBMSe wie Oracle, DB2, MSSQL etc bieten leicht variiert diese AutoIncrement-Felder an.
Das funktioniert bei allen Datenbanken ähnlich mit vier Grundsätzen
- der "AutoWert", wie er bei Access heißt, ist Long/Integer. Nicht Datum, nicht Währung, nicht Textfeld
- der Autowert ist nicht nur "eindeutig" je Tabellle, sondern eben auch der Primary Key.
- indirekte Schlussfolgerung aus dem 2. Grundsatz: Es kann nur maximal EIN Autowertfeld je Tabelle geben
- es heißt "Autoirgendwas", weil es automatisch von der DB-Engine generiert/hochgezählt wird. Bestenfalls kannst Du den Startwert einmalig festlegen, dann bist Du raus und nur noch Zuschauer.
---> Deshalb: einen "AutoWert" kannst Du nicht verbiegen zu einem wie-auch-immer-gerechtfertigten zusammengesetzen "automatisch generierten Kunstschlüssel" aus zwei Nummernkreisen (Präfix +"-"+ lfdNr-als-Text).
Das musst Du per VBA lösen.
Mimik: Wenn für Präfix "12345" ein neuer Satz hinzukommt, dann musst Du prüfen 'was ist jetzt die höchste vergebene lfdNr für Gruppe/Kategorie "12345"?'
Und wenn bei dieser Max()-Query rauskommt "12345-011", dann muss du eben 2001 draufaddieren auf die "11" , dann hast du 2012 --> davon die rechten 3 Stellen verwenden --"012" und aus dem bekannten Prefix und "-" und "012" Deinen neuen Kunstschlüssel zusammenbraten.
Der ist dann sicherlich auch eindeutig und als PK geeignet.... aber ein AutoWert-Feld hast und brauchst und kannst Du nicht.
Grüße
Biber
Hallo zusammen!
AutoWert1 = 12345
AutoWert2 = 12
Könnte man so zusammenbraten:
Gruß Dieter
AutoWert1 = 12345
AutoWert2 = 12
Könnte man so zusammenbraten:
Text = AutoWert1 & "-" & Right("00" & AutoWert2 + 1, 3) = "12345-013" |
Gruß Dieter