Supportnet / Forum / Datenbanken
Beim Wechseln von Formular auf Unterformular
Frage
Hallo Leute
Ich habe folgendes Problem:
Ich habe ein Formular mit einem Unterfolmular. Wenn ich Daten eingebe wechselt der Curser nach dem letzten Eingabefeld automatisch vom Formular in das erste Eingabefeld des Unterfolmulars. Beim Eingeben des ersten Datensatzes funktioniert dies einwandfrei. Wenn ich aber zu dem zweiten Datensatz komme springt der Curser anstatt in das erste in das zweite Eingabefeld.
Hat jemand für die oben aufgeführte Art eine Erklärung. Für eine Erklärung bzw. Lösung dazu währe ich dankbar, würde es doch den Arbeitsfluss stark erhöhen.
Besten Dank.
Es grüsst
Daniel
Antwort 1 von oliverV
Hallo Daniel,
die Aktivierungsreihenfolge hast du sicher überprüft.
Wenn eine Eingabe in [Feld1] zwingend notwendig ist, könntest du das Ereignis „Bei Focuserhalt“ von [Feld2] nutzen, um den Focus auf [Feld1] zu setzen.
Private Sub Feld2_GotFocus()
If IsNull ([Feld1]) Then
[Feld1].SetFocus
End If
End Sub
Funktioniert natürlich nur bei neuen Datensätzen, also wenn [Feld1] noch leer ist und wenn eine Eingabe in [Feld1] erforderlich ist, ansonsten kannst du stundenlang mit der Tab-Taste von [Feld1] auf [Feld2] springen.
Gruß
Oliver
die Aktivierungsreihenfolge hast du sicher überprüft.
Wenn eine Eingabe in [Feld1] zwingend notwendig ist, könntest du das Ereignis „Bei Focuserhalt“ von [Feld2] nutzen, um den Focus auf [Feld1] zu setzen.
Private Sub Feld2_GotFocus()
If IsNull ([Feld1]) Then
[Feld1].SetFocus
End If
End Sub
Funktioniert natürlich nur bei neuen Datensätzen, also wenn [Feld1] noch leer ist und wenn eine Eingabe in [Feld1] erforderlich ist, ansonsten kannst du stundenlang mit der Tab-Taste von [Feld1] auf [Feld2] springen.
Gruß
Oliver
Antwort 2 von dhafner
Hallo Oliver
Wie du richtig erkannt hast, habe ich die Aktivierungsreihenfolge überprüft. Ich hoffe
Dein Vorschlag löst bei mir mein Problem.(konnte dies noch nicht überprüfen) Ich habe das gleiche Problem auch bei der zweiten Erfassung. (Ablaufbedient muss ich in bestehende Grunddaten Resultate hinzufügen)
Hast du mir für die Problemstellung mit Daten ebenfalls eine Lösung? Ich möchte nochmals betonnen das dies nur beim wechseln vom Hauptformular ins Unterfolmular auftritt!
Für deine Hilfe danke ich.
Gruss
Daniel
Wie du richtig erkannt hast, habe ich die Aktivierungsreihenfolge überprüft. Ich hoffe
Dein Vorschlag löst bei mir mein Problem.(konnte dies noch nicht überprüfen) Ich habe das gleiche Problem auch bei der zweiten Erfassung. (Ablaufbedient muss ich in bestehende Grunddaten Resultate hinzufügen)
Hast du mir für die Problemstellung mit Daten ebenfalls eine Lösung? Ich möchte nochmals betonnen das dies nur beim wechseln vom Hauptformular ins Unterfolmular auftritt!
Für deine Hilfe danke ich.
Gruss
Daniel
Antwort 3 von oliverV
Hallo Daniel,
wirklich seltsames Phänomen, das es erst ab dem 2. Datensatz auftaucht.
Um bei bestehenden Datensätzen den Focus auf das erste Feld zu setzten habe ich leider keine fertige Lösung.
Als Ansatz wäre es evtl. möglich, bei Focusverlust des letzten Feldes, zum nächsten Datensatz zu gehen und den Focus auf [Feld1] zu setzten. Das funktioniert aber nur, wenn ein nächster Datensatz vorhanden ist, beim letzten Datensatz kann der Code dann nicht mehr korrekt ausgeführt werden.
Um dies abzufangen müsste man vor dem Wechsel zum nächsten Datensatz überprüfen, ob überhaupt einer vorhanden ist, wenn ja wie oben beschrieben, wenn nein gehe zu neuem Datensatz. Diese Überprüfung würde evtl. über eine aufsteigende ID im UFO funktionieren – Prüfung im Sinne von Wenn ID < ID nächster Datensatz, dann...
Dennoch ist der Grund des Verhaltens ja dadurch auch nicht geklärt.
Ich würde dir empfehlen das UFO noch mal neu zu erstellen und es anstatt des alten ins HF einbauen. Versuche es auch mal mit der „anderen“ UFO-Ansicht (Datenblatt – Endlosformular), ob das Focusverhalten dann auch identisch ist.
Schau im vorhandenen UFO auch mal nach verkleinerten Felder (z.B. Höhe und Breite 0 cm), aber auch diese Felder müssten in der Aktivierungsreihenfolge auftauchen.
Wenn du gar nicht weiter kommst, kannst du mir die DB auch mit ein paar Beispiel-Datensätzen mailen, ich schau dann mal ob ich etwas auffälliges sehe (E-Mail-Adresse auf Anfrage).
Gruß
Oliver
wirklich seltsames Phänomen, das es erst ab dem 2. Datensatz auftaucht.
Um bei bestehenden Datensätzen den Focus auf das erste Feld zu setzten habe ich leider keine fertige Lösung.
Als Ansatz wäre es evtl. möglich, bei Focusverlust des letzten Feldes, zum nächsten Datensatz zu gehen und den Focus auf [Feld1] zu setzten. Das funktioniert aber nur, wenn ein nächster Datensatz vorhanden ist, beim letzten Datensatz kann der Code dann nicht mehr korrekt ausgeführt werden.
Um dies abzufangen müsste man vor dem Wechsel zum nächsten Datensatz überprüfen, ob überhaupt einer vorhanden ist, wenn ja wie oben beschrieben, wenn nein gehe zu neuem Datensatz. Diese Überprüfung würde evtl. über eine aufsteigende ID im UFO funktionieren – Prüfung im Sinne von Wenn ID < ID nächster Datensatz, dann...
Dennoch ist der Grund des Verhaltens ja dadurch auch nicht geklärt.
Ich würde dir empfehlen das UFO noch mal neu zu erstellen und es anstatt des alten ins HF einbauen. Versuche es auch mal mit der „anderen“ UFO-Ansicht (Datenblatt – Endlosformular), ob das Focusverhalten dann auch identisch ist.
Schau im vorhandenen UFO auch mal nach verkleinerten Felder (z.B. Höhe und Breite 0 cm), aber auch diese Felder müssten in der Aktivierungsreihenfolge auftauchen.
Wenn du gar nicht weiter kommst, kannst du mir die DB auch mit ein paar Beispiel-Datensätzen mailen, ich schau dann mal ob ich etwas auffälliges sehe (E-Mail-Adresse auf Anfrage).
Gruß
Oliver

