Access 2010; Checkbox im Bericht

Guten Tag,

ich möchte in Access 2010 in der Berichtsansicht für jeden Datensatz einer zugrunde liegenden Tabelle eine Spalte einfügen, in welcher eine Checkbox vorhanden ist. Falls die Checkbox angeklickt wird (also Häkchen gesetzt), soll in der Tabelle der entsprechende Wert auf (Ja/Nein) gesetzt werden.
Mein Problem ist, dass wenn ich im Bericht, die Eigenschaftsseite der Checkbox unter Daten/Steuerelementinhalt die entsprechende Zelle (der Name ist „bearbeitet“) angebe, dann im Bericht alle Checkboxen in allen Datensätzen gesetzt werden - und nicht nur in dem einen, wie gewünscht.

Hallo,

prizipiell: Um Daten zu bearbeiten, nimm ein Formular.
Ein Bericht ist zum Drucken gedacht und nicht für Datenmanipulationen.

Die neuen und mehr oder weniger unbrauchbaren Möglichkeiten im Bericht bei A2007 und A2010 sind eh das Ergebnis nicht nachvollziehbarer Denkweise bei manchen Entwickler-Teams.

:wink:

ich möchte in Access 2010 in der Berichtsansicht für jeden
Datensatz einer zugrunde liegenden Tabelle eine Spalte
einfügen,

Du kannst da keine Spalte(n) in der Tabelle einfügen, Du könntest höchstens Daten in bestimmten Feldern ändern…

in welcher eine Checkbox vorhanden ist.

Die Checkbox ist nur eine Darstellungsform des Dateninhaltes einer Tabellenspalte vom Datentyp Ja/Nein (boolean).

Falls die
Checkbox angeklickt wird (also Häkchen gesetzt), soll in der
Tabelle der entsprechende Wert auf (Ja/Nein) gesetzt werden.
Mein Problem ist, dass wenn ich im Bericht, die
Eigenschaftsseite der Checkbox unter Daten/Steuerelementinhalt
die entsprechende Zelle (der Name ist „bearbeitet“) angebe,
dann im Bericht alle Checkboxen in allen Datensätzen gesetzt
werden - und nicht nur in dem einen, wie gewünscht.

Durch die Gruppierung „weiß“ der Bericht nicht, welcher (eindeutige) Datensatz nun vom Setzen des Hakens betroffen ist.

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo Franz, DF6GL,

recht herzlichen Dank für deine Antwort und entschuldige meinen selbst sehr verspäteten Kommentar (Urlaub auf Rügen - kein Internet).

prizipiell: Um Daten zu bearbeiten, nimm ein Formular.
Ein Bericht ist zum Drucken gedacht und nicht für
Datenmanipulationen.

Ja, das Datenmanipulation über einen Bericht „schwierig“ bis unmöglich (weil ja so eigentlich nicht von Access gedacht) ist, habe ich auch schon erfahren. Ich führe hier die Arbeit meines Vorgängers fort und möchte weitesgehend darauf aufbauen.

Die neuen und mehr oder weniger unbrauchbaren Möglichkeiten im
Bericht bei A2007 und A2010 sind eh das Ergebnis nicht
nachvollziehbarer Denkweise bei manchen Entwickler-Teams.

Ja, diesbezüglich habe ich schon lange aufgehört, mich zu wundern…

ich möchte in Access 2010 in der Berichtsansicht für jeden
Datensatz einer zugrunde liegenden Tabelle eine Spalte
einfügen,

Du kannst da keine Spalte(n) in der Tabelle einfügen, Du
könntest höchstens Daten in bestimmten Feldern ändern…

Schon gemerkt. In der Tabelle ist die Spalte mit dem Ja/Nein-Wert eingebettet und auch (mit Checkbox) im Bericht zu sehen.
Bisher weiß ich, dass: wenn ich (boolsche) Daten in der Tabelle ändere, sie folglich in der Berichtsansicht auch „gechecked“ sind. Geht das auch umgekehrt? Also in der Berichtsansicht ein Kontrollkästchen anklicken und den Wert des Datensatzes in der Tabelle ändern/manipulieren?

Die Checkbox ist nur eine Darstellungsform des Dateninhaltes
einer Tabellenspalte vom Datentyp Ja/Nein (boolean).

Falls die
Checkbox angeklickt wird (also Häkchen gesetzt), soll in der
Tabelle der entsprechende Wert auf (Ja/Nein) gesetzt werden.
Mein Problem ist, dass wenn ich im Bericht, die
Eigenschaftsseite der Checkbox unter Daten/Steuerelementinhalt
die entsprechende Zelle (der Name ist „bearbeitet“) angebe,
dann im Bericht alle Checkboxen in allen Datensätzen gesetzt
werden - und nicht nur in dem einen, wie gewünscht.

Durch die Gruppierung „weiß“ der Bericht nicht, welcher
(eindeutige) Datensatz nun vom Setzen des Hakens betroffen
ist.

Und hier liegt der casus knaxus: wie „sage“ ich dem Bericht, welcher eindeutige Datensatz betroffen ist bzw. wie hebe ich die Gruppierung auf?

Recht herzlichen Dank,
CS.

Hallo Franz, DF6GL,

Und hier liegt der casus knaxus: wie „sage“ ich dem Bericht,
welcher eindeutige Datensatz betroffen ist bzw. wie hebe ich
die Gruppierung auf?

Um mal meine eigenen Bemühungen zu demonstrieren, hier eine kurze Beschreibung meiner Vorgehensweise in der Hoffnung dich oder andere zum Helfen zu motivieren:
Nach dem Öffnen von Access gehe ich in die Entwurfsansicht des Berichts und markiere das Kontrollkästchen bzw. die Checkbox. Im Eigenschaftsfenster (rechts) unter „Ereignis“ in der Zeile „Beim Klicken“ wähle ich „Ereignisprozedur“ und klicke auf die drei Pünktchen - der VB-Editor öffnet sich.

Dort ist bisher folgender Code:

Private Sub bearbeitet_checkbox_Click()
’ Start der eigenen Bearbeitungen
Dim db, rs ’ Deklaration der Variablen
Set db = CurrentDb ’ Setzt die aktuelle Datenbank auf „db“
Set rs = db.OpenRecordset(„projekte“, dbOpenTable) ’ Öffnet die Tabelle „projekte“
rs.Edit ’ Befehl zum Bearbeiten der Tabelle „projekte“
rs.Index = „PrimaryKey“
rs.Seek „=“, aktuelleNummer
rs!bearbeitet = True
rs.Update
rs.Close
DoCmd.Requery
’ Ende der eigenen Bearbeitungen
End Sub

Leider erhalte ich immer den Laufzeitfehler:
„3020: Update oder CancelUpdate ohne AddNew oder Edit“. Beim Klick auf „Debuggen“ wird die Zeile „rs!bearbeitet = True“ markiert.
Was ist daran falsch bzw. wie kann es behoben werden?

Recht herzlichen Dank,
CS.

Hallo,

MAch das mal so:

Private Sub bearbeitet_checkbox_Click()
Dim db as Dao.Database
Set db = CurrentDb
db.Execute "Update Projekte set bearbeitet = -1 where > = " & aktuelleNummer ’ wo kommt „aktuelleNummer“ her?

DoCmd.Requery 'evtl. Me.Requery
End Sub

Die ganze Geschichte mit dem „interaktiven“ Bericht ist m. E. ein Irrweg. Gut (brauchbar) wäre, wenn der Bericht in Seitenansicht speichern könnte.

Viele Grüße vom Bodensee
Franz, DF6GL