rentier
Goto Top

Aktualisierung von Formulardaten nach Datensatz duplizierung

Hallo zusammen,

nachdem ich im Forum keinen entsprechenden Beitrag gefunden habe hier mein Problem:

Ich arbeite mit Access 2003 mit Registerseiten um die Übersichtlichkeit und Bedienbarkeit zu erleichtern. Hier nun genau mein Problem:

Im Reiter Sachbearbeiter habe ich ein Hauptformular in dem ein Listenfeld über eine SQL-Abfrage mit Werten aus einer Tabelle gefüllt wird. Beim Klick auf einen Eintrag in diesem Listenfeld werden die vollständigen Daten aus der Tabelle Sachbearbeiter in einem Unterformular angezeigt. Per Button wird mit Hilfe von VBA das Gültigkeitsdatum des im Listenfeld markierten Datensatzes auf das gestrige Datum gesetzt, der Datensatz kopiert und im Datensatzduplikat das Gültigkeitsdatum auf 31.12.9999 gesetzt.
Leider funktioniert danach bei einem Klick im Listenfeld die Anzeige der gesamten Daten im Unterformular nicht mehr. Damit dies wieder funktioniert muss ich immer erst Access beenden und neu öffnen.

Hat jemand ne Idee wie die Werte in dem Unterformular gleich wieder richtig angezeigt werden?

Matthias

Content-Key: 142809

Url: https://administrator.de/contentid/142809

Printed on: April 19, 2024 at 09:04 o'clock

Member: NetWolf
NetWolf May 14, 2010 at 14:43:50 (UTC)
Goto Top
Hallo,

Ich arbeite mit Access 2003 mit Registerseiten
also mit einem Register - Steuerelement, das auf einem Hauptformular liegt.

Im Reiter Sachbearbeiter habe ich ein Hauptformular
im Register-Steuerelement -> Reiter [Sachbearbeiter] hast du ein UFO (Unterformular)?

in dem ein Listenfeld über eine SQL-Abfrage mit Werten aus einer Tabelle gefüllt wird.
ok

Beim Klick auf einen Eintrag in diesem Listenfeld werden die vollständigen Daten aus der Tabelle
Sachbearbeiter in einem Unterformular angezeigt.
das macht keinen Sinn, im UFO die vollständigen Daten einer Tabelle anzuzeigen, wenn ich etwas vorher auswählen kann, oder??!

Per Button wird mit Hilfe von VBA das Gültigkeitsdatum des im Listenfeld
markierten Datensatzes auf das gestrige Datum gesetzt, der Datensatz kopiert und im Datensatzduplikat das Gültigkeitsdatum
auf 31.12.9999 gesetzt.
ok, warum auch immer....

Leider funktioniert danach bei einem Klick im Listenfeld die Anzeige der gesamten Daten im Unterformular nicht mehr.
kannst du das mal genauer beschreiben?

Ich habe es so verstanden:
- bei Klick auf Eintrag im Listenfeld
-> Gültigkeitsdatum = gestern
--> Kopie des Datensatzes erzeugen
---> bei der Kopie das Gültigkeitsdatum = 31.12.9999 setzen

wo? wie kommt jetzt das UFO ins Spiel? Was soll, was wird angezeigt?

Wenn ich - wie du schreibst- DANACH wieder auf einen Eintrag im Listenfeld klicke, löse ich doch wieder die gleiche Vorgehensweise wie vorher aus?

Damit dies wieder funktioniert muss ich immer erst Access beenden und neu öffnen.
nö, das ist garantiert nicht nötig und ein wenig viel Aufwand.

Hat jemand ne Idee wie die Werte in dem Unterformular gleich wieder richtig angezeigt werden?
ja, mit -> Me.UFO.Requery


Grüße aus Rostock
Wolfgang
(Netwolf)
Member: rentier
rentier May 17, 2010 at 08:17:41 (UTC)
Goto Top
Hallo Wolfgang,

danke erst mal für Deine schnelle Antwort:

> Ich arbeite mit Access 2003 mit Registerseiten
also mit einem Register - Steuerelement, das auf einem Hauptformular liegt.
Ja ist ein Hauptformular mit Register-Steuerelement (wegen der Übersichtlichkeit)

> Im Reiter Sachbearbeiter habe ich ein Hauptformular
im Register-Steuerelement -> Reiter [Sachbearbeiter] hast du ein UFO (Unterformular)?
Ja da ist nochmal ein Unterformular in dem dann das Listenfeld und nochmal ein UFO ist.

> in dem ein Listenfeld über eine SQL-Abfrage mit Werten aus einer Tabelle gefüllt wird.
ok

> Beim Klick auf einen Eintrag in diesem Listenfeld werden die vollständigen Daten aus der Tabelle
> Sachbearbeiter in einem Unterformular angezeigt.
das macht keinen Sinn, im UFO die vollständigen Daten einer Tabelle anzuzeigen, wenn ich etwas vorher auswählen kann,
oder??!
Sinn dahinter ist, dass man dann in dem UFO alle Daten des Sachbearbeiters bearbeiten kann.

> Per Button wird mit Hilfe von VBA das Gültigkeitsdatum des im Listenfeld
> markierten Datensatzes auf das gestrige Datum gesetzt, der Datensatz kopiert und im Datensatzduplikat das
Gültigkeitsdatum
> auf 31.12.9999 gesetzt.
ok, warum auch immer....
Ich möchte später Termine für eine Person vergeben und zum aktuellen Termin eine bestimmte Zeitspanne in Monaten bzw. Jahren addieren. Der alte Datensatz soll aber erhalten bleiben. Daher der aufwand. Oder aber sich z.B. die Telefonnummer ändert soll es einen Datensatz mit den alten Werten und dann den aktuell gültigen mit den neuen Daten geben.

> Leider funktioniert danach bei einem Klick im Listenfeld die Anzeige der gesamten Daten im Unterformular nicht mehr.
kannst du das mal genauer beschreiben?
Ich habe auf einer Registerseite ein Formular und darin enthalten das Listenfeld und das UFO mit den Kompletten Daten aus der Tabelle (Grund wie oben beschrieben). Solange ich keinen Datensatz kopiert habe werden mir bei einem Klick auf einen Eintrag im Listenfeld die Daten korrekt im UFO angezeigt. Sobald ich jedoch einen Datensatz kopiert habe sehe ich im UFO nur noch leere Felder.

Ich habe es so verstanden:
- bei Klick auf Eintrag im Listenfeld
-> Gültigkeitsdatum = gestern
--> Kopie des Datensatzes erzeugen
---> bei der Kopie das Gültigkeitsdatum = 31.12.9999 setzen

wo? wie kommt jetzt das UFO ins Spiel? Was soll, was wird angezeigt?
Ist mit der obigen Beschreibung nun klarer.

Wenn ich - wie du schreibst- DANACH wieder auf einen Eintrag im Listenfeld klicke, löse ich doch wieder die gleiche
Vorgehensweise wie vorher aus?

> Damit dies wieder funktioniert muss ich immer erst Access beenden und neu öffnen.
nö, das ist garantiert nicht nötig und ein wenig viel Aufwand.

> Hat jemand ne Idee wie die Werte in dem Unterformular gleich wieder richtig angezeigt werden?
ja, mit -> Me.UFO.Requery

Danke,
Matthias
Member: NetWolf
NetWolf May 17, 2010 at 10:09:00 (UTC)
Goto Top
Hallo Matthias,

sorry, aber dein Datenbankkonzept hinkt.

Du willst eine Historie, die alte Werte speichert. Dazu verwendet man nicht ein und dieselbe Tabelle in dem man einen Datensatz einfach kopiert.

Für eine Historie legt man eine extra Tabelle an, dorthin kopiert man den alten Datensatz.
Termine werden auch wieder in einer zusätzlichen Tabelle gepflegt.


Grüße aus Rostock
Wolfgang
(Netwolf)
Member: rentier
rentier May 17, 2010 at 11:07:12 (UTC)
Goto Top
Hallo Wolfgang,

dann werd ich das Konzept nochmal überarbeiten. Danke auf jeden Fall für Deine Hilfe.

Das mit den Terminen war mir klar dass ich da ne neue Tabelle mach. War nur ein Hinweis damit klarer wird was ich machen möchte.

Gruß,
Matthias