Forums Neueste Beiträge
 

Neuen Eintrag im Formular positionieren

22/11/2007 - 03:32 von Ludwig Ruhland | Report spam
Hallo NG,

ich habe ein Programmierproblem, bei dem ich nicht weiter komme und Hilfe
brauche.

Ich habe ein Endlosformular das nach einem Datumsfeld der Tabelle und nicht
nach dem primàren Index sortiert ist. Ich möchte nun einen neuen Eintrag in
die Tabelle einfügen.
Das Problem das sich dabei ergibt ist, dass der Eintrag immer am Ende des
Endlosformulars angezeigt wird und nicht dort, wo er der Sortierung (nach
Datum) entsprechend stehen sollte. Ich initialisiere das Datumsfeld
unmittelbar nach dem "AddNew" Statement und bevor ich das "Update" Statement
aufrufe. Anschließend synchronisiere ich das Formular mit "Bookmark".
Der einzige Weg den ich bisher gefunden habe, um den neuen Eintrag an seiner
korrekten Position einzufügen sind der Aufruf von "Requery" oder eine
erneute Zuweisung der Sortierung mit "OrderBy". Dabei werden die Daten des
Endlosformulars allerdings vollstàndig neu aufgebaut. Dies hat zur Folge,
dass im Formular eine ziemliche "Unruhe" entsteht. Beispielsweise wird ein
Tabelleneintrag der eben noch in der Mitte des Formulars angezeigt wurde,
plötzlich am Anfang (oben) des Formulars angezeigt.

Gibt es eine harmonischere Möglichkeit den neuen Eintrag an seine richtige
Position zu bringen, ohne das Endlosformular mit "Requery" bzw. "OrderBy"
und die darauf folgende "Unruhe" anzuzeigen?
Ich würde dies dem zukünftigen Benutzern des Programms gerne ersparen.

Vielen Dank für Eure Hilfe,

Ludwig Ruhland
 

Lesen sie die antworten

#1 Henry Habermacher
22/11/2007 - 08:02 | Warnen spam
Hallo Ludwig

Ludwig Ruhland wrote:
Ich habe ein Endlosformular das nach einem Datumsfeld der Tabelle und
nicht nach dem primàren Index sortiert ist. Ich möchte nun einen neuen
Eintrag in die Tabelle einfügen.
Das Problem das sich dabei ergibt ist, dass der Eintrag immer am Ende des
Endlosformulars angezeigt wird und nicht dort, wo er der Sortierung (nach
Datum) entsprechend stehen sollte. Ich initialisiere das Datumsfeld
unmittelbar nach dem "AddNew" Statement und bevor ich das "Update"
Statement aufrufe. Anschließend synchronisiere ich das Formular mit
"Bookmark". Der einzige Weg den ich bisher gefunden habe, um den neuen
Eintrag an
seiner korrekten Position einzufügen sind der Aufruf von "Requery" oder
eine erneute Zuweisung der Sortierung mit "OrderBy". Dabei werden die
Daten des Endlosformulars allerdings vollstàndig neu aufgebaut. Dies hat
zur Folge, dass im Formular eine ziemliche "Unruhe" entsteht.
Beispielsweise wird ein Tabelleneintrag der eben noch in der Mitte des
Formulars angezeigt wurde, plötzlich am Anfang (oben) des Formulars
angezeigt.
Gibt es eine harmonischere Möglichkeit den neuen Eintrag an seine richtige
Position zu bringen, ohne das Endlosformular mit "Requery" bzw. "OrderBy"
und die darauf folgende "Unruhe" anzuzeigen?
Ich würde dies dem zukünftigen Benutzern des Programms gerne ersparen.



Nein, mir ist keine bekannt. Der Wunsch, neue Datensàtze nicht immer unten,
sondern z.B. auch oben, oder wie bei Dir an der richtigen Stelle gemàss
Sortierung einzufügen, ist in Access nicht vorgesehen. Wenn Du beginnst zu
Sortieren, dann wird es einfach unruhig auf dem Formular, da dieses ja neu
aufgebaut werden muss.

Das einzige was Du machen könntest, wàre über ein (gefàhrliches) Echo False
vor dem Sortieren, die Anzeige im Formular zu unterbinden und nach dem
Setzen des Bookmarks mit Echo True diese wieder einzuschalten (und natürlich
auch im Fehlerfall und über ein Autokey Makro wie z.B. Ctrl+E).

Dass dann der oberste sichtbare Datensatz wieder der oberste sichtbare ist,
ist ebenfalls nicht ganz einfach zu bewerkstelligen, falls überhaupt.

Ich selber ziehe vor, das Formular für neue Datensàtze jeweils gleich zu
sperren und über dem Endlosformular ein identisches UFO einzufügen, in dem
nur neue Datensàtze eingebeben werden können. Dann kann der Benutzer ganz
oben einen neuen Datensatz eingeben (wenn das optisch gut gestaltet ist,
dann merkt er kaum, dass das nicht zum Endlosformular gehört) und nach der
Eingabe dann den Datensatz über einen Speichern Button im Endlosformular an
der richtigen Position anzuzeigen und gleich über einen Bookmark
anzuspringen.

Gruss
Henry


Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen