Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Laufzeitfehler 2110

Begonnen von kleindieter, November 25, 2024, 14:19:38

⏪ vorheriges - nächstes ⏩

kleindieter

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

MzKlMu

#1
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
Gruß Klaus

Knobbi38

#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.


kleindieter

Hi zusammen,

leider haben mir eure Tipps nicht helfen können, Danke Euch trotzdem.

Gruß

MzKlMu

Hallo,
wenn du die Tipps richtig umsetzt, helfen die schon.
Du solltest daher mal genauer erklären was Du versucht hast.
Gruß Klaus

PhilS

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.

Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Beaker s.a.

Hallo,
DoCmd.GoToControl "Artikelbestellungen" 'hier FehlermeldungWie 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.SetfocusBefindet sich der Button auf dem HFo
Me.UFoControlName.Form.KdNr.SetFocusBefindet sich das Feld "KdNR" im HFo und der Button im UFo
Me.Parent.KdNR.SetFocus
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)