Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: dobby110 am November 18, 2016, 08:18:59

Titel: Kontrollkästchen mit dritter Komponente?
Beitrag von: dobby110 am November 18, 2016, 08:18:59
Hallo zusammen,

ich hätte eine Frage. Und zwar habe ich folgendes Problem.
Ich habe eine Art Checkliste erstellt. In dieser werden bestimmte Punkte abgehakt, sobald die Dokumente vorliegen. Allerdings ist es so, dass nicht immer alle Dokumente notwendig sind.
Nun suche ich nach einer Möglichkeit einer dritten Komponente für das Kontrollkästchen. Kann mir jemand sagen, ob das überhaupt möglich ist?

Ich will damit kenntlich machen, dass das Dokument nicht benötigt wird (weil es dieses nicht gibt)
Ich habe zwar auch ein Textfeld, wo man das erfassen kann, aber das Hauptproblem besteht auf dem dazugehörigen Bericht. Da dort wirklich nur die Häkchen angezeigt werden und dann nicht hervor geht, ob das Dokument vorliegt, nicht benötigt wird oder noch fehlt.

Hat jemand eine Idee?
Titel: Re: Kontrollkästchen mit dritter Komponente?
Beitrag von: MzKlMu am November 18, 2016, 08:26:00
Hallo,
ein KK mit den 3 Zuständen gibt es nicht. Du kannst aber für die 3 Möglichkeiten ein einfache Zahlenfeld nehmen.
1=Vorhanden
2=fehlt noch
3=nicht notwendig

Mit Hilfe einer Optionsgruppe kannst Du diese 3 Zustände abbilden.

Wie ist denn die Tabelle mit den jetzigen KK aufgebaut ?
Sind das immer die gleichen Dokumente die mal gebraucht werden und mal nicht ?
Vermutlich könnte man auch das Datenmodell noch verbessern.

Kannst Du mal ein Bild des Beziehungsfensters posten ?
Titel: Re: Kontrollkästchen mit dritter Komponente?
Beitrag von: crystal am November 18, 2016, 12:26:20
Hallo,
Klaus, ich kann doch in den Eigenschaften eines KK unter Daten "Dreifacher Status" Ja definieren. Dann wird das KK in drei Zuständen angezeigt: leer, mit Häkchen oder gefüllt.

Ich habe jetzt nicht geprüft, wie diese drei Zustände intern abgebildet werden (ich glaube -1, 0, 1).

Das ausgefüllte KK sieht man in manchen Windows-Einstellungen und es steht da manchmal für "noch nichts gewählt" oder meistens für "nicht erforderlich".

lg
crystal
Titel: Re: Kontrollkästchen mit dritter Komponente?
Beitrag von: DF6GL am November 18, 2016, 13:33:33
Hallo,
Ein KK-Feld kann nicht als Tristate mit einem boolschen Tabellenfeld verwendet werden.

Soll der Wertebereich eines Tristate-KK  (-1, 0, NULL)  in einem Tabellenfeld abgebildet werden, ist ein "echtes" Integer-Zahlen-Feld erforderlich.
Titel: Re: Kontrollkästchen mit dritter Komponente?
Beitrag von: MzKlMu am November 18, 2016, 18:35:58
Hallo,
@cristal
ZitatDann wird das KK in drei Zuständen angezeigt: leer, mit Häkchen oder gefüllt.
versuche mal in einem Formular ein gebundenes KK als Leer (also gefüllt) zu speichern. Das ist nur leer, solange der DS nicht gespeichert wurde. Sobald der Datensatz gespeichert ist wird aus dem Leer (gefüllt) ein "nicht angehakt (0).
Und selbst wenn Du das Hakenfeld an ein Zahlenfeld bindest, kannst Du das KK niemals wieder zu Leer zurückklicken. Es geht immer nur Ja (-1) oder Nein (0)
Es bleibt nur die Optionsgruppe.

Meiner Meinung nach ist das auch irreführend beschrieben, auch in der Access Hilfe.

Aber, da ich ohnehin das Datenmodell bezweifle braucht man das gar nicht.  ;D
Titel: Re: Kontrollkästchen mit dritter Komponente?
Beitrag von: crystal am November 18, 2016, 18:57:09
Hallo Klaus,
in einem Boolean speichern ist natürlich nicht möglich.
Wie aber Franz bereits geschrieben hat, geht es mit einem Integer-Feld. Als Wert steht dann in diesem Feld Null, 0, oder -1 und ich kann in einem Formular, das ein KK darstellt, alle drei Zustände anwählen (durch wiederholtes Klicken).

Der entscheidende Hinweis von Franz ist, dass der dritte Zustand als Null (nicht etwa 0) gespeichert wird (und nicht als 1, wie von mir vermutet).

Jedenfalls habe ich es eben probiert und es funktioniert (Acc2016).

lg
crystal
Titel: Re: Kontrollkästchen mit dritter Komponente?
Beitrag von: MzKlMu am November 18, 2016, 19:04:46
Hallo,
es gelingt mir (Access2003) nicht den Null Zustand wieder auszuwählen. Dass KK wechselt von Angehakt zu Nicht angehakt, ohne einen 3.Zustand.
Titel: Re: Kontrollkästchen mit dritter Komponente?
Beitrag von: crystal am November 18, 2016, 19:08:43
Hallo,
dann hat MS da vermutlich etwas nachgebessert...
Aber auch in acc2016 gibt es seltsame Phänomene, wenn man "Eingabe erforderlich" auf Ja stellt.

Um auf der sicheren Seite zu sein, bleibt also wirklich nur die Optionsgruppe, denn "da weiß man, was man hat".

lg
crystal

Nachtrag aus der acc2013-Developer-Documentation:


Published: July 16, 2012

You can use the TripleState property to specify how the specified control will display Null values. Read/write Boolean.

expression .TripleState

expression A variable that represents a CheckBox object.

The Null property uses the following settings.
----XXXX------------------------------------

True
The control will cycle through states for Yes, No, and Null values.
The control appears dimmed (grayed) when its Value property is set to Null.
-------------------XXXXXXXXXXXXXXX----------------------

False
(Default) The control will cycle through states for Yes and No values. Null values display as if they were No values.

This property can be set in any view.

Dim strTripleState As String

strTripleState = Forms.Item("frmOperations").Controls.Item("Check1").TripleState

Select Case strTripleState
Case True
MsgBox "For Check1, TripleState = " & strTripleState & _
". The control will cycle through states for Yes, No, " & _
"and Null values. The control appears dimmed (grayed) " & _
"when its Value property is set to Null."
Case False
MsgBox "For Check1, TripleState = " & strTripleState & _
". The control will cycle through states for Yes and No " & _
"values. Null values display as if they were No values."
Case Else
MsgBox "Can't determine the TripleState property for Check1."
End Select


Aber hier hat MS wohl etwas geschlampt (siehe meine Kommentar oben -----XXXX----).