PDA

Vollständige Version anzeigen : Automatische Nummerierung ?


greedy
23.10.2001, 19:41
Hallo !
Wie bekomme ich folgendes Verhalten hin :

Tabellen :
[Aufgabe] (1) ==> (*) [Unteraufgabe]

(Jede Unteraufgabe gehört zu *genau einer* Aufgabe)
Beim Einfügen einer neuen Unteraufgabe soll nun ein Feld automatisch belegt werden : a) für die 1. Unteraufgabe, b) für die 2. Unteraufgabe etc. ....
Desweiteren soll *nur* das Löschen der jeweils letzten Unteraufgabe möglich sein, damit keine falsche Nummerierung entsteht...

Hat jemand eine Idee, wie sowas zu realisieren wäre ??

Vielen Dank
Florian

wisi01
23.10.2001, 21:21
Hi greddy!

Sorry, aber ich versteh die Aufgabe nicht ganz.
Wenn du zwei Tabellen hast, sollte doch die Aufgabe im Wege einer "1-n"-Beziehung zu lösen sein. Oder hab' ich hier was falsch verstanden?

vg
WiSi

greedy
23.10.2001, 21:41
Ich möchte einfach, dass jeder neue Eintrag automatisch mit einem Wert vorbelegt ist. Allerdings geht das ja nicht mit Standardwert, da ja festgestellt werden muss, "der wievielte Datensatz für diese Aufgabe" das gerade ist.

Irgendwie müsste also gezählt werden, wieviel Unteraufgaben zu einer best. Aufgabe gehören, dann +1, dann umrechnen in "a)"-"z)"
und dann als Stadardwert eintragen....

Oder denk ich da zu kompliziert ??? Würdet ihr das anders machen ??


mfg
greedy

erwin
24.10.2001, 04:00
folgende Routine bei den Ereignissen
- Form_AfterUpdate
- Form_Current
- Form_AfterDelConfirm
- Form_AfterInsert
aufrufen:
<big>
Private Sub DeinNächsterWertimUFo()
Dim rs_Clone As Recordset
DeinWert.DefaultValue = 0
DeinWert.Requery
Set rs_Clone = Me.RecordsetClone
rs_Clone.Sort = "DeinWert"
rs_Clone.MoveLast
If rs_Clone!DeinWert < 1 Or IsNull(rs_Clone!DeinWert) Then
DeinWert.DefaultValue = 1
Else
DeinWert.DefaultValue = 1 + rs_Clone!DeinWert
End If

End Sub</big>
und schon steht im "neuen leeren" DS automatisch der nächste Wert.

HTH erwin...

PS: Um das Löschen zu verhindern, verwende das Form_Delete Ereignis, prüfe ebenso mittels rs_Clone (s.o.) und verhindere das Ganze indem du Cancel=True setzt, falls nicht der letzte DS gelöscht werden soll.