Neuigkeiten:

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

Mobiles Hauptmenü

Wert setzen abhängig von mehreren DS im UFO

Begonnen von Klaus S. aus B, Februar 21, 2012, 17:54:56

⏪ vorheriges - nächstes ⏩

Klaus S. aus B

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

DF6GL

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]) )
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

bahasu

N'abend

meine Antwort hat etwas länger gedauert, aber dafür mit kleinem Anhang.

Harald

[Anhang gelöscht durch Administrator]
Servus

Klaus S. aus B

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

Klaus S. aus B

@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

bahasu

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
Servus

Klaus S. aus B

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

bahasu

#7
Hi,

siehe Anhang

Harald

[Anhang gelöscht durch Administrator]
Servus