bumbum
Goto Top

Access Autowert jährlich automatisch mit Eins beginnen

Hallo,

Ich möchte, das sich ein Feld (BestNr) wie folgt zusammen setzt: "B"+aktuelles Jahr(09)+ einen Autowert(1)

Ich habe einen Tabelle, mit den Feldern:
BestNrZus = B
BestNr= Autowert(1)
BestDatum= Speicherdatum(23.10.09)

Ich setzte mir das in einer Abfrage zusammen:

NeuBestNr: [BestNrZus] & Jahr([BestDatum])& Wenn(Länge([BestNr])=1;"0000" & [BestNr];Wenn(Länge([BestNr])=2;"000" & [BestNr];usw.))

Die BestNr sieht dann wie folgt aus: B0900001

Mein Problem:
Wenn sich das Jahr ändert soll der Autowert wieder mit 1 beginnen, d.h. B1000001

Könnt ihr mir irgendwie helfen???

LG bumbum

Content-Key: 127770

Url: https://administrator.de/contentid/127770

Ausgedruckt am: 28.03.2024 um 16:03 Uhr

Mitglied: NilsErik
NilsErik 23.10.2009 um 15:16:26 Uhr
Goto Top
Das sollte so funktionieren:

Public Sub setzeAutowert(sTabelle As String, sSpalte As String, lNeuerWert As Long)
    
    CurrentDb.Execute "ALTER TABLE " & sTabelle & " ALTER COLUMN " & sSpalte & " COUNTER(" & lNeuerWert& & ",1)"
                     
End Function
Mitglied: bumbum
bumbum 23.10.2009 um 16:05:20 Uhr
Goto Top
Hallo NilsErik,

wird die Funktion dann automatisch zu Jahreswechsel nach dem ersten öffnen im neuen jahr ausgeführt?

LG bumbum
Mitglied: NilsErik
NilsErik 26.10.2009 um 08:33:23 Uhr
Goto Top
Nein, die Funktion habe ich nur zu Tests genutzt.

Autowerte sind meiner Meinung nach zur Erzeugung eindeutig indentifizierbarer IDs zu nutzen, nicht um schöne Zahlen zu haben. Die kann man sich selbst erzeugen, ggf. aus den Autowerten berechnen.
Mitglied: bumbum
bumbum 26.10.2009 um 09:13:01 Uhr
Goto Top
Es bleibt doch trotzdem eine eindeutige Zahl, sie hat nur eine bestimmte Formatierung, es ist bloß der zusatz, das man ihm einem jahr zuweisen kann und sieht, dass es sich um eine Bestellung handelt und nicht um einen Lieferschein oder ähnliches.

Also kannst du mir nicht weiterhelfe, schade.....
aber trotzdem danke.

Hat jemand anderes eine Idee??

lg bumbum
Mitglied: NilsErik
NilsErik 26.10.2009 um 11:58:45 Uhr
Goto Top
Wenn Du das so durchziehen möchtest, prüfst Du halt, wie der Zähler steht und setzt ihn ggf. auf (Jahr Mod 1000)*10000+1

Führende 0-er ggf. über Format anfügen bei Ausgabe oder in der Tabellendefinition.

Das B kannst Du beim Ausdruck z.B. in der Formatierung angeben oder in einem extra Feld.
Mitglied: bumbum
bumbum 26.10.2009 um 14:19:39 Uhr
Goto Top
Hey NilsErik,
danke für deine Unterstützung, ober wo soll denn "(Jahr Mod 1000)*10000+1" hin geschrieben werden? In eine Abfrage oder in einen VBA-Code, oder...?

LG bumbum