Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Zählen in der Datenbank

Begonnen von Christian111, Oktober 29, 2010, 10:12:10

⏪ vorheriges - nächstes ⏩

Christian111

Hallo zusammen,
ich möchte gerne in einer Tabelle einen Zählmodus einbauen, der den letzten Wert im neuen Datensatz um 1 erhöht. kann mir bitte jemand sagen wie das geht?
Danke

MzKlMu

Hallo,
warum nimmst Du nicht einfach ein Autowertfeld?

Ansonsten kannst Du mit DMax() den letzten Wert ermitteln und 1 dazuzählen.
Z.B. im Ereignis "Beim Anzeigen":
Private Sub Form_Current()
    If Me.NewRecord = True Then
        Me!ZahlenFeld = Nz(DMax("ZahlenFeld", "Tabellenname) + 1
    End If
End Sub
Gruß Klaus

Christian111

der Autowert hilft mir nicht´s da ich jedes Jahr bei 1 anfangen muss.
Danke für deine Antwort    MzKlMu
mir ist nur nicht klar wie und wo ich den Befehl eingeben muss.
ich nin in der Tabelle in dem betreffenden Feld oder?? über Makro
Vorab schon danke für deine Hilfe
Gruß

MzKlMu

Hallo,
das ist VBA Code der im entsprechenden Ereignis als Ereignisprozudur angelegt werden muss.
In einem Formular, in der Tabelle direkt kann man das nicht.
Da muss aber noch ein Kriterium für das Jahr eingebaut werden.
Gruß Klaus

Hondo

Hallo,
Zuerst sollte die Frage geklärt werden ob die Nummerierung nachträglich bei vorhandenen Datensatzen eingefügt werden soll, oder bei der Eingabe der Daten in ein Formular.
Bei letzterem kannst du per VBA die nächsthöhere Nummer holen indem du z.B. per DMax-Funktion die letzte Nummer aus der Tabelle bei dem aktuellen Jahr holst, und um 1 erhöhst, so wie Klaus das beschrieben hat.

Andreas

Christian111

habe ich in "Beim Hingehen" als Ereigniss eingetragen
Me!Stock hinterlegt er immer ROT
wo ist denn der Fehler Bitte
nochmals danke für deine Hilfe

Private Sub Stock_Test_Enter()
Private Sub Form_Current()
If Me.NewRecord = True Then
Me!Stock_Test= Nz(DMax("Stock_Test", "Fahrzeugbuch") + 1
End If
End Sub

Christian111

Jetzt gehts VIELEN DANK euch beiden
Gruß

Hondo

Hallo,
ich sehe aber noch ein Fehler.
Du sagtest doch du willst immer jedes Jahr bei 1 beginnen?
Dann musst du deinen Code verändern.
Der Algorithmus ist wie folgt:

'Letzter ID holen mit aktuellem Jahr als Criterium
'Falls kein ID vorhanden dann bei 1 beginnen, da dies der erste Eintrag im neuen Jahr ist
'Ansonsten wenn ID vorhanden: ID incremieren

Gruß Andreas

Christian111

Hallo Andreas Danke für deinen Tip
da ich heute das erste mal mit diesen Codes arbeite, könntest du mir bitte den code einfügen bzw erstellen
Danke
???

Hondo

Hallo,
hier der Code:
Private Sub Form_Current()
   Dim nextID As long
   If Me.NewRecord = True Then
       Me!Zählfeld = nz(DMax("Stock_Test", "Fahrzeugbuch", "Jahr=" & year(now())), 0) + 1
   End If
End Sub

Voraussetzung ist in der Tabelle hast du ein Feld namens jahr.
Wenn du nur das Datum in der Tabelle hast lautet der code so:
Me!Zählfeld = nz(DMax("Stock_Test", "Fahrzeugbuch", "Jahr(Datum)=" & year(now())), 0) + 1