Hallo zusammen,
ich habe eine fixe Idee, aber keinen Plan wie umzusetzen.
Ich habe einen Auftrag, der aus mehreren Arbeitspaketen besteht. (2 TAbellen in 1:n Beziehung)
Jedes Arbeitspaket hat einen Status "abgeschlossen" (j/n).
Jetzt suche ich einen Weg, dass ich beim Auftrag einen Wert "abgeschlossen" (j/n) gesetzt bekomme, sobald das letzte Arbeitspaket als "abgeschlossen" gekennzeichnet wird.
Den Status der Arbeitapakete setzt man in einem UFO im Formular des Auftrags (weiß nicht, ob das vielleicht hilft).
Geht das überhaupt?
Kann mir jemand einen Tipp geben, wie ich das schaffen könnte?
Gruß
Klaus
Hallo,
was ist das letzte "Arbeitspaket"?
Wenn Du damit "alle" Arbeitspakete meinst , dann wäre sowas möglich im Steuelementinhalt des Ja/Nein-Feldes im Hauptform (Datenherkunft "tblAuftrag"):
=not (Dcount ("*";"tblArbeitspakete"," [AuftragID]=" & [AuftragID]) + DSum("abgeschlossen";"tblArbeitspakete"," [AuftragID]=" & [AuftragID]) )
N'abend
meine Antwort hat etwas länger gedauert, aber dafür mit kleinem Anhang.
Harald
[Anhang gelöscht durch Administrator]
Hallo,
ich verstehe deine Antwort nicht so ganz. ???
Wo müsste ich den Code denn einbauen? Im Steuerelementinhalt des Formulars müsste ja tblAuftrag.abgeschlosen stehen, oder?
Wo kommt der Code dann hin?
...
Zur deiner Frage
Zitat von: DF6GL am Februar 21, 2012, 18:12:10
was ist das letzte "Arbeitspaket"?
Es kann unterschiedlich viele Arbeitspakete pro Auftrag geben. Diese werden auch nicht unbedingt in der gleichen Reihenfolge abgearbeitet.
Hast Du darauf abgezielt?
Gruß
Klaus
@HArald,
vielen Dank schon mal. Das sieht genauso aus, wie ich es mir gedacht habe.
Für diesen Fall habe ich nur einen ganz digitalen Status: Entweder "abgeschlossen" oder "nicht abgeschlossen", ein bisschen schwanger brauche ich hier nicht. Das passt gut.
Ich bekommen nur beim Anlegen eines neuen DS (Auftrag) eine Fehlermedlung "Syntaxfehler (fehlender Operator".
Wie fange ich den ab?
Gruß
Klaus
N'abend,
z.B mit
Private Sub Form_Current()
Me.Arbeitspaket_U.Requery
If Not Me.NewRecord Then
If DCount("Status", "Arbeitspaket", "nz(Status,'') = 'abgeschlossen' and von_id_Auftrag = " & id_Auftrag) = DCount("*", "Arbeitspaket", "von_id_Auftrag = " & id_Auftrag) Then
If Nz(Me.Status, "") <> "abgeschlossen" Then Me.Status = "abgeschlossen"
Else
Me.Status = "" ' aber was soll passieren, wenn es auch noch andere gibt => z.B. "offen" oder "gestartet"
End If
End If
End Sub
d.h. das obige wird nur abgefragt, wenn es kein neuer Datensatz ist
Harald
Hallo Harald,
Super, Danke!
Noch eine Frage. Ich bin der VBA Anfänger. Wie baue ich den Code um, dass es mit einen ja/nein Feld funktioniert?
Habe es schon versucht, will aber nicht so wie ich will. ;D
Gruß
Klaus
Hi,
siehe Anhang
Harald
[Anhang gelöscht durch Administrator]