Reihenfolge Eingabmaske

Ich habe mal eine Frage an die BASE-Experten. Ich habe in einer Datenbanktabelle folgende Eingabemaske:

Wenn ich einen neuen Datensatz eingebe, steht der Cursor nicht im ersten Feld „Anrede“, sondern im Feld darunter „Telefon“, also im dritte Feld.

Hat jemand eine Idee, was man machen kann, um den Cursor bei einem neuen Datensatz in das oberste/erste Feld zu bekommen? Die Tabelle selbst hat eine etwas andere Reihenfolge; sie beginnt mit dem Datum.

Hallo Torsten.

Notlösung:

Rechtsklick in das Eingabeformular - Befehl “Eingabeformular bearbeiten”.

Verändere nun das “bewußte” (gewünschte) DB-Feld.

Speichere die Änderung ab.

Ab sofort sollte der Cursor nach Aufruf des Eingabeformulars in eben diesem DB-Feld stehen.

(Manchmal, nicht immer hilft folgendes.)

Eingabemaske ändern (irgendetwas, größe des Feldes o.ä.) Änderungen wieder Rückgängig machen, (das Sternchen für Änderungen muss erscheinen) den Cursor ins gewünschte , erste Feld (also Anrede) stellen, dann abspeichern.

gegebenenfalls wiederholen.

Oder:

Datensatz eingeben, Cursor in das Feld Anrede stellen, Eingabeformular in der Größe / Position verändern, abspeichern, Papyrus beenden. Kann dann gut sein, das beim nächsten Start alles klappt.

Ok, dotpap war schneller :scream:

Lieber Gerd, lieber Blake,

das hatte ich auch schon probiert - leider ohne Erfolg. ich habe „Anrede“ als „Poup (nur Auswahl aus Liste)“ definiert. Kann es daran liegen? Muss das erste Feld ein „normales“ Eingabefeld sein?

Fragen über Fragen … :astonished:

Hallo Torsten.

Das sollte auch bei so einem Popup-DB-Feld funktionieren. Bei mir tut es das hier.

Hmm, habe mal einen 2 minütigen Schnelltest gemacht und vergeblich versucht ein anderes Feld oben links zum Startfeld der TAB - Reihenfolge zu machen. Geht nicht.

Andererseits ist es mir aber auch schon gelungen, die Reihenfolge zu ändern… Mit Datenbank aufräumen hat es aber schon mal nichts zu tun, das habe ich eben auch schon versucht.

Beim Aufrufen der Eingabemaske (bei einem existierenden Datensatz) steht der Cursor zwar immerhin im linken oberen Feld, bein erzeugen eines NEUEN Datensatzes rutscht er aber wieder (meiner Erinnerung nach) in das zuerst erzeugte Feld der Datenbank.

Guten Morgen blake und Torsten.

Tja, dann muss wohl Torsten diese DB-Tabelle löschen.

Anschließend die DB-Tabelle neu erstellen. Dabei beachten, dass das DB-Feld als erstes angelegt wird, in welchem nach Klick auf “Neu” der Cursor stehen soll.

Guten Morgen zusammen,

hmm, die Tabelle neu wäre unschön; schon deshalb weil dann diese Tabelle ganz nach hinten rutscht und über Schnelltasten nicht mehr erreichbar ist (das hatte ich schon an anderer Stelle gepostet).

Vielleicht könnte Christian hier mittelfristig Abhilfe schaffen …

Euch vielen Dank für die Unterstützung!

Hallo Torsten.

Nur der Vollständigkeit halber.

Wenn Du die betreffende DB-Tabelle nicht löschen magst, weil Du Reihenfolge und Tastenkürzel gern erhalten möchtest, dann kannst Du auch nur die DB-Felder löschen. Danach erstellst Du sie neu - das vergebene Tastenkürzel bleibt dabei unangetastet und steht nach Abschluß der Arbeiten wie gewohnt zur Verfügung.

(Arbeitszeitaufwand etwa 15 Minuten - einschließlich Import der ggf. vorhanden Adressen.)

Meinst du die Tabelle oder das Eingabeformular? Die Tabelle ist Teil einer relationalen Verknüpfung. Beim Löschen verlöre ich alle Beziehungen zu einer anderen Tabelle bwz. sie würden zu statischen verändert. Das wäre tragisch.

Und weiter - erneut der Vollständigkeit wegen…

Hallo Torsten.

Meiner Ansicht nach geht da nichts verloren.

Es handelt sich bei Dir vermutlich um die DB-Tabelle “Studierende”(?).

Sie hat wohl 11 DB-Felder und weist 2-3 Verknüpfungen auf.

Dabei scheint die Verknüpfungsart “Dynamisch” gewählt worden sein.

Und so sollte es gehen - kurz und knapp:

-Sicherungskopie der kompletten DB erstellen.

-DB-Tabelle “Studierende” aufrufen.

-Export durchführen - Format der Exportdatei ist natürlich eine *.pb-Datei.

-Alle 11 DB-Felder notieren. (Dabei auf korrekte Schreibweise achten.)

-Nun in den Feldeigenschaften alle DB-Felder löschen.

-Das erste DB-Feld (bei welchem der Cursor bei Klick auf NEU später stehen soll) anlegen.

-Dann alle weiteren 10 DB-Felder anlegen. (Auf korrekte Schreibweise achten.)

-Import durchführen.

-Die 2-3 Relationen wieder herstellen.

Ungeprüft.

Okay, vielen Dank. Ich probiere das mal am Wochenende. Diese Tabelle ist Zulieferer für weitere Tabellen, d.h., die meisten Feler dienen in anderen Tabellen als relationale Verknpüfungen. Da sie dynamisch sind, wie du richtig feststellst, bin ich immer etwas ängstlich.

Aber du hast recht: Mit einer Sicherungskopie kann ja nichts ernsthaftes passieren.

Halt! habs noch nicht probiert, aber es macht vielleicht Sinn, vor dem Löschen der Datenfelder einfach nur mal die Eingabemaske zu löschen, und (mit entsprechender Reihenfolge sortiert) die Maske neu kreiren zu lassen. vielleicht baut Papyrus ja dann schon die (neue) Reihenfolge.

Allerdings nicht wirklich löschen, sondern nur dahin kopieren, wo Papyrus sie nicht findet. Wenns nicht klappt, müsste man nach dem neuprogrammieren der Felder wenigstens die bearbeitete Eingabemaske (wieder) benutzen können.

Ja, das war es! :laughing:

Ich habe das Eingabformular verschoben, Papyrus neu gestartet (das war notwendig). Wichtig ist es, die Reihenfolge der Tabelle zunächst zugunsten des ersten Feldes zu verändern, das im Formular vorn stehen soll.

Dann ein neues Formular erzeugen und wieder zurechtrücken (Formular bearbeiten).

Schließlich habe ich Papyrus neu gestartet (für alle Fälle) und die Tabelle wieder so sortiert, wie ich sie brauche. Daher steht bei mir die Spalte Datum an erster Stelle, im Formular wie oben zu sehen das Feld „Anrede“.

Offenbar ist es also wichtig, das vor der Erzeugung des Formulars in der Tabelle die Spalte vorn steht, die im Formular den Start bilden soll. Danach kann man die Reihenfolge der Tabellenspalten ändern, wie man möchte.

Gerds Tipp wäre sich auch zielführend gewesen, aber ich befürchtete, doch wieder den halben Sonntag an der Datenbank herumzuschrauben, bis alles passt.

Vielen Dank, blake!