aximand
Goto Top

Doppelte Wertausgabe bei Steuerelement-Klick in Access Report

Hallo zusammen,

ein ganz einfaches Beispiel:

Es gibt eine Tabelle Daten mit den Feldern ID und Wert.
ID = 1 und Wert = Eins.

Dazu wird Bericht erstellt und im Detailbereich hinter dem Feld "Wert" eine Checkbox eingestellt.

Als Ereignis beim Klicken ist geschrieben:

Private Sub cb_Click()

Debug.Print Wert.Value

End Sub

Im Direktbereich wird dann beim Klick auf die Checkbox
Eins
Eins

angezeigt, also der Wert der Zeile doppelt angezeigt.

Füge ich einen Tupel ID=2 , Wert=Zwei hinzu, so wird die Checkbox natürlich auch 'kopiert' Ich habe 2 Datensätze mit der Checkbox cb

Egal ob ich Checkbox der Zeile 1 oder 2 anklicke - im Dirketbereicht wird mir immer Eins, Eins, Zwei, Zwei angezeigt.

Warum isn das so? Access 2010

Content-ID: 384230

Url: https://administrator.de/forum/doppelte-wertausgabe-bei-steuerelement-klick-in-access-report-384230.html

Ausgedruckt am: 22.12.2024 um 11:12 Uhr

colinardo
colinardo 23.08.2018 aktualisiert um 15:51:08 Uhr
Goto Top
Warum isn das so?
Wert.Value
Weil der Bericht jede Checkbox inkl. seinem Event dupliziert und Wert.Value enthält ein Array keinen einzelnen Wert.
Das deshalb da der "Detailbereich" für jeden Datensatz kopiert wird, also auch seine Controls und Events!
Das was du willst machst du nicht mit einem Bericht, dafür gibt es Formulare in der "EndlosFormular" Anzeige mit Datensatzmarkierer.
Du hast da offensichtlich mit der Art und Weise wie Access Formulare und Berichte funktionieren noch Probleme face-smile. Here you go ...
https://www.google.com/search?q=Access+for+beginners
https://www.google.com/search?q=Access+VBA+for+Beginners

Grüße Uwe
Aximand
Aximand 23.08.2018 um 15:51:26 Uhr
Goto Top
Im Formular wird ja auch tatsächlich der Datensatz nur einmal im Direktbereich angezeigt.
Was mich aber eben massiv stört ist, dass die duplizierten Checkboxen pro Datensatz den selben Zustand bekommen.

Wenn ich nun so eine Art Freigabeliste erstellen möchte in der ich die einzelnen Datensätze mit OK bestätige, so ist nicht ersichtlich welche Sätze ich anklicke, Satz 1 und 4 von 5 Sätzen seien OK. Ich klicke 1 cbQSOK an und 2-5 bekommen auch den Haken, klicke ich dann 4 an, dann sind wieder alle unchecked - auch wenn der Code dahinter das richtige gemacht hat.
colinardo
colinardo 23.08.2018 aktualisiert um 15:54:16 Uhr
Goto Top
Wie oben geschrieben, Endlosformular mit Datenmarkierern nehmen, oder eine Spalte mit Ja/Nein in der Tabelle nutzen und dann per Foreach markierte Zeilen durchlaufen bzw. Daten per Filter Filtern und Aktion ausführen face-wink.
Aximand
Aximand 23.08.2018 um 16:03:30 Uhr
Goto Top
Fehler gefunden! Es ist schlichtweg ein Denkfehler von mir.

Anstelle eine Checkbox manuell in den Bericht zu setzten die dann z.B. den Status QSerfolgt in der Datenbank setzt, sollte das Datenbankfeld QSerfolgt (booelan) mit in die Formulardarstelung rein. Dann kannst das auch logischerweise anklicken und nur der Datensatz bekommt den Haken.

Manchmal muss ich mich über meine eigene Dummheit wundern face-sad
colinardo
colinardo 23.08.2018 aktualisiert um 16:07:34 Uhr
Goto Top
Schrieb ich ja oben bereits als möglich Option face-smile. Kaffee rüber schieb face-wink.

Alles wird gut. Als denn ...
Uwe