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?
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.
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.
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.
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?
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.