Hi, ich bekomme bei diesem Code immer die Fehlermeldung:
Laufzeitfehler 2110: Der Fokus kann von Microsoft Access nicht nicht auf das Steuerelement Artikelbestellungen verschoben werden.
Mit dem Button wird ein Code aktiviert mit dem man die Bestellnummer ändern kann, die Inputbox kommt, aber nach der Eingabe kommt diese Fehlermeldung.
Beim Debuggen wird mir diese Zeile (in fett) angezeigt.
Bei Artikelbestellungen handelt es sich um eine Unterformular mit der Auflistung der einzelnen bestellten Artikeln.
Ich danke Euch für die Hilfe.
Gruß
Hier der Code:
Private Sub cmdInputbox_Click()
Dim strNeueBestNr As String
strNeueBestNr = InputBox("Geben Sie bitte die neue Nummer ein.", _
"Änderung der Bestellnummer", , 6500, 9000)
If strNeueBestNr = "" Then
Exit Sub
End If
Me.BestNr = strNeueBestNr
DoCmd.GoToControl "Artikelbestellungen" 'hier Fehlermeldung
DoCmd.GoToControl "KdNr"
End Sub
Hallo,
ein Unterformular wird über seinen Namen referenziert.
Den Namen des Ufos erhältst Du in den Eigenschaften wenn der Rahmen des Ufos angeklickt wird.
Die Bezüge auf Steuerelemente können durchaus etwas aufwendig sein und für einen Anfänge sagen wir mal gewöhnungsbedürftig.
Siehe hierzu:
Bezug auf Ufo (https://www.donkarl.com/?FAQ4.2)
Hallo,
hinzufügen möchte ich noch, daß dafür nicht auf das DoCmd Objekt zurückgegriffen werden muß, sondern dafür gibt es die Setfocus-Methode der Steuerelemente, welche unbedingt den Vorzug erhalten sollte.
Auch kann es sein, daß du hier nicht unbedingt den Fokus aus einer Ereignisroutine weg in eine anderes Formular (Unterformular) bewegen kannst ( Fehler 2100 ).
Auch ist mir nicht ganz klar, warum eine BestNr zugewiesen wird und dann zum Feld KundenNr ins UF gewechselt werden soll. Direkte Feldzuweisungen sollte man eh vermeiden, sondern besser neue Werte an das gebundene Steuerelement (Textbox) zugeweisen.
Wenn die IF Abfrage etwas umgestaltet wird, kann auch auf das "Exit Sub" verzichtet werden.
Hi zusammen,
leider haben mir eure Tipps nicht helfen können, Danke Euch trotzdem.
Gruß
Hallo,
wenn du die Tipps richtig umsetzt, helfen die schon.
Du solltest daher mal genauer erklären was Du versucht hast.
Zitat von: kleindieter am November 28, 2024, 08:49:07leider haben mir eure Tipps nicht helfen können
Wenn du das genauer erläutern würdest, könnte man dir vielleicht zielgerichtete Hilfestellung geben.
Aus meiner Sicht ist die wahrscheinlichste Problemursache, dass der Datensatz im Haupformular in diesem Moment nicht gespeichert werden kann. Entweder weil du eine Gültigkeitsprüfung in Form_BeforeUpdate durchführst und dabei Cancel=True gesetzt wird, oder weil es Pflichtfelder oder Gültigkeitsregeln in der Tabelle gibt, die das Speichern verhindern.
Hallo,
DoCmd.GoToControl "Artikelbestellungen" 'hier Fehlermeldung
Wie Ulrich schon geschrieben hat, besser mit der den Controls eigenen Methode
"SetFocus" arbeiten. Und dann kommt es darauf an, wo die Controls liegen, -
HFo oder UFo.
Wenn sich alle beschriebenen Controls im UFo befinden, reicht ein
Me.KdNr.Setfocus
Befindet sich der Button auf dem HFo
Me.UFoControlName.Form.KdNr.SetFocus
Befindet sich das Feld "KdNR" im HFo und der Button im UFo
Me.Parent.KdNR.SetFocus
gruss ekkehard