Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Checkbox in Recordset deaktivieren

Begonnen von michelig, Juli 05, 2011, 12:03:37

⏪ vorheriges - nächstes ⏩

michelig

Hallo an Alle,

habe ein Problem. ???
Das Formular "MPliste" zeigt alle Datensätze einer Tabelle in einem Datenblatt (1 Datensatz pro Zeile) an. Ich möchte das Formular auf Datensätze durchsuchen, welche im Feld "Anwesenheit" einen Wert ausser "MP frei" eingetragen haben. Soweit funktioniert dies auch.
Wie kann ich nun im Falle eines solchen Eintrages die Checkbox "MP_frei" in nur diesem Datensatz (Zeile) deaktiveren?
Mit diesem Code verändere ich immer die Aktivierung der Checkbox für das gesamte Formular.


Sub MPfeldAkt()
Dim rsFeldAkt As DAO.Recordset

Set rsFeldAkt = Forms!FormMPliste.Recordset
   rsFeldAkt.MoveFirst
   Do While Not rsFeldAkt.EOF
       If Nz(Anwesenheit, 0) = 0 Or Anwesenheit = Format("MP frei") Then
           MP_Frei.Enabled = True
       Else
           MP_Frei.Enabled = False
       End If
       rsFeldAkt.MoveNext
   Loop
set rsFeldAkt = Nothing

End Sub

In der Ruhe liegt die Kraft. Aber wo zum Teufel liegt "Ruhe"?

DF6GL

Hallo,

versteh Deine Beschreibung nicht...


Wie auch immer, wenn das Checkbox-Steuerelement (Kontrollkästchen mit Namen "MP_Frei" ?? ) nicht an ein Feld in der Tabelle gebunden ist, klappt das in Endlos-  oder Datenblattansicht nicht.




Was soll denn diese Codezeile bedeuten:

If Nz(Anwesenheit, 0) = 0 Or Anwesenheit = Format("MP frei") Then

???

michelig

Hallo Franz,

Dank Dir für Deine schnelle Antwort.

ZitatWie auch immer, wenn das Checkbox-Steuerelement (Kontrollkästchen mit Namen "MP_Frei" ?? ) nicht an ein Feld in der Tabelle gebunden ist, klappt das in Endlos-  oder Datenblattansicht nicht.

:P Ich glaube das kapier ich. Das würde bedeuten, ich muss nicht das Formular abfragen und ändern, sondern die zugrunde liegende Tabelle. Oder ???

ZitatWas soll denn diese Codezeile bedeuten:

If Nz(Anwesenheit, 0) = 0 Or Anwesenheit = Format("MP frei") Then

Ja, da sieht man den blutigen Amateur ;D Es sieht zwar komisch aus, bewirkt aber, daß nur die leeren oder mit "MP frei" ausgefüllten Textfelder ausgewählt werden. Würde mich sehr über eine Anregung zur professionelleren Formulierung freuen :D
In der Ruhe liegt die Kraft. Aber wo zum Teufel liegt "Ruhe"?

DF6GL

Hallo,

"Oder " :
Nein, es geht doch um Steuerelemente... auch wenn es gebunden St.-Elemente sind, ist die datensatzweise Einstellung der Enabled-Eigenschaft nicht ohne Weiteres zu realisieren. (Auswerten der Ereignisse "Beim Anzeigen" und/oder "Beim Hingehen" )



"..professionelleren Formulierung ..":


If Nz(Me!Anwesenheit, "MP frei") = "MP frei" Then   'True bei Anwesenheit =NULL oder bei Anwesenheit ="MP frei"


Me als Referenz auf das akt Form-Objekt im gesamten Code nicht vernachlässigen

michelig

Danke Franz,

manche Dinge funktionieren einfach nicht. Schön wenn man es gesagt bekommt. :)

ZitatIf Nz(Me!Anwesenheit, "MP frei") = "MP frei" Then   'True bei Anwesenheit =NULL oder bei Anwesenheit ="MP frei"

WOW! Ein Augenöffner!

ZitatMe als Referenz auf das akt Form-Objekt im gesamten Code nicht vernachlässigen

::) Habe den gehobenen Zeigefinger bemerkt. Macht ja auch sinn
In der Ruhe liegt die Kraft. Aber wo zum Teufel liegt "Ruhe"?