Guten Morgen liebe Experten
Seit Stunden scheitere ich an einem für euch sicher simplen Fehler.
Aus ein HF mit einem UF wird mit VBA der Focus auf das erste vorhandene Feld gesetzt.
Das ist der Codeteil der dieses macht.
With subFrmKostenartKontoUfo
.Form.PositionToLastRecord
subFrmKostenartKontoUfo.SetFocus
End With
End Sub
Ich möchte aber den Focus in das Feld mit der Bezeichnung txtBuchDatum haben, aber in einem NEUEN Datensatz, nicht im LETZTEN.
Das wäre der Codeabschnitt dazu:
With subFrmKostenartKontoUfo
.Form.PositionToLastRecord
subFrmKostenartKontoUfo.txtBuchDatum.SetFocus
End With
End SubAber der erzeugt eine Fehlermeldung DATENOBJEKT NIVHT GEFUNDEN
Obwohl die Schreibweise des Feldes korrekt ist. Das Feld ist ein Datumsfeld.
Habe jeweils nur den entsprechenden Codeteil eingefügt.
Die kpl. Codes stammen von Knobbi38 glaube ich.
VG
Moin Nicolo,
versuch mal
With Me!subFrmKostenartKontoUfo.Form
.SetFocus
DoCmd.GoToRecord , , acNewRec
.Controls("txtBuchDatum").SetFocus
End With
Gruß
Doming
ZitatsubFrmKostenartKontoUfo.txtBuchDatum.SetFocus
Damit adressierst du irgendetwas, aber bestimmt kein Feld in einem Unterformular! Hier ist nochmal alles erklärt:
https://msofficeinside.blogspot.com/2017/12/access-fokus-auf-das-erste-mogliche.html (https://msofficeinside.blogspot.com/2017/12/access-fokus-auf-das-erste-mogliche.html)
Wichtig ist die Reihenfolge:
' 1. Fokus auf das Unterformular-Steuerelement setzen
Me.NameDesUnterformularSteuerelements.SetFocus
' 2. Im Unterformular zu einem neuen Datensatz springen
DoCmd.GoToRecord , , acNewRec
' 3. Fokus auf das gewünschte Feld im neuen Datensatz setzen
Me.NameDesUnterformularSteuerelements.Form.NameDesFeldes.SetFocus
Allerdings sollte man dafür besser eine Prozedur im UF schreiben, welche dann vom HF aus aufgerufen wird - das wäre dann eine sauberere Lösung. Bitte verwende dann im UF anstatt DoCmd.GotoRecord besser DoCmd.RunCommand acCmdRecordsGoToNew, damit das Fokushandling stabiler funktioniert.
Knobbi38
PS:
verwende bitte die üblichen Namenskonventionen und für das SubForm-Steuerelement und das darin geladene Formular unterschiedliche Präfixe. Das Hilft anderen, den Code besser lesen zu können und vermeidet Folgefehler.