Neuigkeiten:

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

Mobiles Hauptmenü

Microsoft Access Kontrollkästchen verkleinern

Begonnen von Flarchen, Mai 20, 2019, 07:20:33

⏪ vorheriges - nächstes ⏩

Flarchen

Hallo Leute,

ich habe folgendes Problem. Ich nutze Access 2016 und will mittels Formular einen Bericht erstellen. Soweit so gut.

Ich will den Zustand von einem Gerät mittels mehrere Kontrollkästchen beschreiben, sodass die zuständigen Mitarbeiter nur noch ankreuzen müssen (z.B. Gerät verschlissen, Gerät verrostet etc.)

Die nicht angekreuzten Kästchen möchte ich ausblenden und das klappt auch soweit. Jedoch möchte ich, dass wenn nur das zweite Kontrollkästchen angekreuzt wird dieses an die Stelle des ersten rückt.

Bei Textfelder gibt es die Möglichkeit die Eigenschaft "Verkleinern" auf True zu setzen um diesen Effekt zu erreichen. Jedoch habe ich diese Eigenschaft nicht bei den Kontrollkästchen gefunden. Vielleicht gibt es eine Möglichkeit dies per VBA zu Programmieren?

Ich hoffe ich habe mich verständlich ausgedrückt und ihr könnt mir helfen.

Vielen Dank.

Viele Grüße Flarchen

MzKlMu

Hallo,
Ja/Nein Felder zum Anhaken von Zuständen sind für eine Datenbank ungeeignet.
Hier sind 3 Tabellen erforderlich.
- Garäte
- Zustand
- ZustandGerät

In der 3 Tabelle wird der Zustand des Gerätes per Kombifeld ausgewählt.
Die Ja/Nein Felder entfallen ersatzlos. Dein Problem gibt es dann auch nicht mehr.

Siehe hierzu:
http://allenbrowne.com/casu-23.html
Gruß Klaus

PhilS

Zitat von: MzKlMu am Mai 20, 2019, 08:24:13
Ja/Nein Felder zum Anhaken von Zuständen sind für eine Datenbank ungeeignet.
Für die Datenstruktur stimme ich hier zu.

Allerdings finde ich die Zuordnung der Zustände in einem Formular über eine ComboBox in der M:N-Tabelle für eine kleine Anzahl an vordefinierten Zuständen nicht besonders benutzerfreundlich. Da würde auch ich zur Darstellung in der GUI die Checkboxen vorziehen.
Leider ist die alternative Darstellung in Access nur recht komplex mit VBA zu Lösen. Sprich; man müsste die ComboBoxen ungebunden erstellen und per VBA ihrer Werte aus der Tabelle lesen bzw. in diese schreiben.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Flarchen

Hallo Klaus,

vielen Dank für deine schnelle Antwort.
Diese Option habe ich bereits in Erwägung gezogen aber wieder verworfen, da es für die ausfüllenden Mitarbeiter als zu umständlich eingestuft wurde.
Ich möchte es so einfach wie möglich halten.

Im Prinzip werden die Eingaben in den Kontrollkästchen auch nirgends gespeichert. Das Gerät soll bewertet werden, der Bericht wird erzeugt und per Mail als PDF verschickt. Anschließend werden die Felder wieder geleert.

Mein einziges Problem sind jetzt noch die Lücken im Bericht, da sich die Kontrollkästchen nicht verkleinern lassen.

Gruß Flarchen

Maxel

Probiere mal, im Ereignis des Detailbereichs "Beim Formatieren"

Me.Visible = [DeinKontrollkästchen]
Viele Grüße
Maxel

Flarchen

Hallo Maxel,

diesen Code verwende ich schon. Aber leider löst er mein Problem nicht. Ich zeige mal in Bildern was ich meine:
1. Ich habe verschiedene Eigenschaften zur Verfügung, die von den Mitarbeitern angeklickt werden sollen.
2. Beim Druck sollen nur die ausgewählten angezeigt werden, allerdings gebündelt (ähnlich der Eigenschaft "Verkleinerbar" bei Textfeldern. Leider funktioniert das nicht bei Kontrollkästchen. Hier ist eine Lücke zwischen den angekreuzten Kontrollkästchen (Siehe Bild 2)

MzKlMu

Hallo,
Du musst per VBA die Kästchen verschieben.
Das ist allerdings eine ziemliche Pfriemelei, weil ermittelt werden muss, wie viele Kästschen dazwischen liegen um dann entsprechend zu verschieben.
Einmal sind 2 Kästchen dazwischen und beim nächsten mal 4. Da wirst Du zu Hirsch um alle Zustände abzubiden. Ich habe dazu aber nix parat.

Ich würde in jedem Fall einen Aufbau mit 3 Tabellen vorziehen und damit dann die gewünschte Darstellung zu realisieren.
Mit (VBA) Aufwand kannst Du auch mit Hakenfeldern in die von mir vorgeschlagene 3. Tabelle schreiben, wie von Philipp auch schon vorgeschlagen.
Gruß Klaus

Beaker s.a.

Hallo Klaus,
So pfriemelig ist das IMO nicht.
- eine Hilfstabelle mit den Koordinaten jeder Position plus einer Warte-
position
- eine Schleife durch die Felder, wenn angehakt werden die zugehörigen
Controls an die Koordinaten der mitgezählten Position geschoben, wenn
nicht, unsichtbar an die Warteposition
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Flarchen

Zitat von: Beaker s.a. am Mai 20, 2019, 15:16:03
Hallo Klaus,
So pfriemelig ist das IMO nicht.
- eine Hilfstabelle mit den Koordinaten jeder Position plus einer Warte-
position
- eine Schleife durch die Felder, wenn angehakt werden die zugehörigen
Controls an die Koordinaten der mitgezählten Position geschoben, wenn
nicht, unsichtbar an die Warteposition
gruss ekkehard
Hallo Ekkehard,

vielen Dank für die Antwort. Hierzu habe ich allerdings noch eine Frage.

Wie bestimme ich die Koordinaten in der Tabelle? Kann ich die auslesen oder muss ich die selbst bestimmen?
Oder hast du ein Beispiel für die Zuweisung?

Vielen Dank
Gruß Flarchen

DF6GL

Hallo,

warum denn verschieben?

Einige KK-Felder als Platzhalter einbauen und unsichtbar stellen.

Sodann mit einer Schleife über die angehakten KKs  die Platzhalter-KKs nacheinander sichtbar stellen und die Beschriftung entspr. dessen Bedeutung anpassen.
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

Beaker s.a.

@Flarchen
ZitatKann ich die auslesen oder muss ich die selbst bestimmen?
Wo willst du die denn auslesen? Wie/wo die Kästchen angeordnet sein
sollen weisst doch nur du. Die Abstände zwischen vorigem Label und
nachfolgender Checkbox würde ich mit dem längsten Label berechnen.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)