Access 2010 Zellen beim Laden löschen/reseten

Guten Tag,
ich habe eine Access-Tabelle (2010) mit einer „bearbeitet“-Spalte, der Felddatentyp ist „Ja/Nein“ (Format „Wahr/Falsch“, Anzeige „Checkbox“ in der Berichtsansicht). Ich möchte erreichen, dass alle Zellen dieser Spalte beim Laden der Datenbank (also beim Öffnen via Access) diese Werte gleich null gesetzt werden, sodass in der Berichtsansicht alle Checkboxen „unchecked“ sind.

Geht das und falls ja, kann mir bitte jemand erklären wie bzw. einen Verweis zu einer Quelle geben, wo ich dies nachlesen kann?

Recht herzlichen Dank.
CS.

Moin, CS.,

Access ist ein System zur Daten haltung - was in der Datenbank drin ist, wird angezeigt. Deshalb gibt es die gewünschte Funktion nicht.

Natürlich lassen sich auf Berichten auch Felder unterbringen, die nicht gespeichert sind, aber wozu sollte das gut sein?

Gruß Ralf

Hallo,

eine Möglichkeit wäre ein Makro namens „autoexec“ anzulegen, das eine AusführenSQL-Aktion wie „UPDATE Tabelle1 SET Tabelle1.Feld1 = False“ enthält. Wenn Du mit Öffnen der Datenbank meinst, dass auch ein Formular geöffnet wird, kannst Du so etwas auch im BeimÖffnen-Ereignis des Formulars machen.

MfG,

ujk

Moin, ujk,

eine Möglichkeit wäre ein Makro namens „autoexec“ anzulegen,
das eine AusführenSQL-Aktion wie „UPDATE Tabelle1 SET
Tabelle1.Feld1 = False“ enthält.

kann man machen, darf aber als Kunstfehler bezeichnet werden. Wenn der Wert beim Öffnen zurückgesetzt wird, ist das Speichern sinnlos und somit auch die Spalte selbst.

Gruß Ralf

Moin, CS.,

ich spiele jetzt mal den armen Sachbearbeiter, der damit arbeiten soll:

Heute habe ich jede Menge von Datensätzen bearbeitet, die werden auch brav markiert. Zum Feierabend schaue ich kurz nach, wie fleißig ich war, kriege 400 von 1000 Sätzen als „bearbeitet“ gezeigt. Tholl.

Morgen früh fahre ich den Rechner hoch und sehe 0 von 1000 Sätzen als „bearbeitet“. Tholl.

Schreib doch mal, was dieser Schalter bewirken soll.

Gruß Ralf

Guten Morgen,

Du hast ja recht, wenn man wüßte, was der Sinn des Ganzen ist, könnte man vielleicht Alternativen vorschlagen.

Ich fahre in der Regel immer mehr auf die technische Machbarkeit als auf die Sinnhaftigkeit einer Frage ab.

MfG,

ujk

Hallo Ralf

ich spiele jetzt mal den armen Sachbearbeiter, der damit
arbeiten soll:

Heute habe ich jede Menge von Datensätzen bearbeitet, die
werden auch brav markiert. Zum Feierabend schaue ich kurz
nach, wie fleißig ich war, kriege 400 von 1000 Sätzen als
„bearbeitet“ gezeigt. Tholl.

Morgen früh fahre ich den Rechner hoch und sehe 0 von 1000
Sätzen als „bearbeitet“. Tholl.

Schreib doch mal, was dieser Schalter bewirken soll.

Genau das. Es sind nicht so viele Datensätze und diese sollen schnell markiert und abgewählt werden können, sodass ersichtlich ist, welche Datensätze in einer Session bereits behandelt worden sind.

Hallo ujk

eine Möglichkeit wäre ein Makro namens „autoexec“ anzulegen, das eine AusführenSQL-Aktion wie „UPDATE Tabelle1 SET Tabelle1.Feld1 = False“ enthält. Wenn Du mit Öffnen der Datenbank meinst, dass auch ein Formular geöffnet wird, kannst Du so etwas auch im BeimÖffnen-Ereignis des Formulars machen.

Hier mein Ansatz: Entwurfsansicht des Berichts und unter Eigenschaften, Reiter „Ereignis“, Zeile „Beim Öffnen“, „Ereignisprozedur“ auswählen, drei Pünkten anklicken: VB-Editor öffnet sich.
Folgenden Code habe ich „verfasst“:

Private Sub Report_Open(Cancel As Integer)
Dim sortierungNummer As Boolean
sortierungNummer = False
DoCmd.Maximize
Set projekte.bearbeitet = False
End Sub

Hier ist sicherlich nur die vorletzte Zeile von Interesse. Leider erhalte ich bei dieser Ausführung immmer:
„Laufzeitfehler ‚424‘: Objekt erforderlich“ und der „Debuggen“-Button verweist (wie zu erwarten) auf diese letzte Zeile.

Liege ich richtig mit der Annhame, dass ich erst die aktuelle Tabelle (CurrentDB) auswählen, öffnen, bearbeiten, updaten und wieder schließen müsste?

Kann mir bitte jemand bei diesem Quellcode helfen, sofern ich mich nicht völlig auf dem Holzweg befinde?

Recht herzlichen Dank,

CS.

Hallo,

probier es doch mit einem einfachen

DoCmd.RunSQL „UPDATE Tabelle1 SET Tabelle1.Feld1 = False“

wobei Du den Tabellen- und Feldnamen natürlich anpassen mußt.

Das würde ich auch nicht aus einem Bericht heraus machen. Wie gesagt, ein Makro, das „autoexec“ heißt, wird beim Öffnen der Datenbank automatisch ausgeführt. Dann allerdings bei jedem Öffnen.

MfG,

ujk