vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
SETFOCUS führt zum Fehler 0x80004005 
Autor: Rainer
Datum: 22.06.17 17:59

Hallo,
ich führe in einem Formular für mehrere Steuerelemente eine Datenkontrolle durch. Die Reihenfolge der Kontrolle wird durch ein Objektarray gesteuert, das alle zu überprüfende Steuerelemente enthält. Wird ein Fehler festgestellt, so soll das fehlerhafte Steuerelement mit der Methode SETFOCUS aktiviert werden. Bewege ich mich durch die Steuerelementefolge in der Reihenfolge des TABINDEX gibt es keine Probleme. Bei einer Rückwärtsbewegung in der Folge erscheint aus mir unverständlichen Gründen beim Aufruf der SETFOCUS-Methode in der Prüfroutine für das Zielsteuerelement eine Fehlermeldung mit dem Fehlercode 0x80004005.
Hat jemand eine Erklärung dafür und ev. auch eine Lösung?
Gruß, Rainer.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SETFOCUS führt zum Fehler 0x80004005 
Autor: Blackbox
Datum: 22.06.17 18:16

Hallo,

fehlt das Objekt, also das Steuerelement, so führt der Aufruf einer Methode auf ein nichtinstantiiertes Objekt natürlich zu dem Fehler.
Mir ist schleierhaft, wieso Du ein Objektarray angelegt hast, obwohl die Form doch selbst über die Controls-Auflistung das Gleiche! macht.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SETFOCUS führt zum Fehler 0x80004005 
Autor: ModeratorDieter (Moderator)
Datum: 23.06.17 13:04

Welcher Fehlertext erscheint genau?

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SETFOCUS führt zum Fehler 0x80004005 
Autor: Rainer
Datum: 26.06.17 08:34

Hallo Blackbox und Dieter,
das Array habe ich als günstigste Möglichkeit gesehen, um eine Steuerelementeauswahl (nicht alle sind für die Kontrolle erforderlich) und -reihenfolge (zur Gewährleistung von Abhängigkeiten) zu realisieren.
Die Fehlermeldung lautet:
"Laufzeitfehler '-2147467259 (800004005)':

Nicht näher bezeichneter Fehler."
Ergänzend sei noch hinzugefügt, daß es sich um eine VBA-Anwendung im Office 2010 handelt.
Gruß, Rainer.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SETFOCUS führt zum Fehler 0x80004005 
Autor: Manfred X
Datum: 26.06.17 09:30

Hallo!

Ich kann nur raten.
Hast Du für das betroffene Control eine Ereignisverarbeitung programmiert,
(Prüfroutine?) die auf das Setzen des Focus anspricht und im Code auf eine
nicht gegebene Voraussetzung trifft?
Prüfe: In welchem Zustand war das Control, als es den Fokus abgegeben hat?

Beitrag wurde zuletzt am 26.06.17 um 09:33:25 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SETFOCUS führt zum Fehler 0x80004005 
Autor: Rainer
Datum: 26.06.17 10:18

Hallo Dieter,
die genaue Fehlermeldung lautet:
"Laufzeitfehler '-2147467259 (800004005)':

Nicht näher bezeichneter Fehler."
Gruß, Rainer.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SETFOCUS führt zum Fehler 0x80004005 
Autor: Rainer
Datum: 27.06.17 16:38

Hallo Manfred X,
das Problem liegt nicht in einer eigenen Ereignisroutine.

Zur Erläuterung des zu lösenden Problems:
In dem fraglichen Formular gibt es eine Reihe von Steuerelementen, deren Inhalt in einer bestimmten Reihenfolge bearbeitet werden muß. Mit dem Verlassen jedes dieser Steuerelemente soll bisher erstellte Inhalt geprüft und bei Feststellung eines fehlerhaften Inhalts soll ein Fehlerhinweis ausgegeben werden und das betreffende Steuerelement mittels SETFOCUS-Methode die Steuerung erhalten. Die Überprüfung und Steuerungszuweisung erfolgt in einer zentralen Prozedur, die in der EXIT-Ereignisroutine jedes der betreffenden Steuerelemente aufgerufen wird.
Solange fehlerhafte Steuerelemente gefunden wurden bzw. bei Fehlerfreiheit das nächste Steuerelement in der Reihenfolge die Steuerung erhielt lief alles ordentlich. Nur bei einer Rückwärtsbewegung in der Reihenfolge mit der Maus oder SHIFT+TAB tritt dieser Focusfehler auf.

Ich habe nun auf der Grundlage Eurer Hinweise mit der Focus-Steuerung in der Prüfprozedur experimentiert. Diese Steuerung bestand darin, daß ich bei Fehlerfreiheit vor der Focus-Zuweisung das in der Reihenfolge nächste zu bearbeitende Steuerelement ermittelt habe. D.h., das Steuerelement +1. Hatte ich mit dem Mausklick dieser Zuordnung widersprochen also den Fortgang entgegen der Reihenfolge gefordert, trat der Fehler auf. Meine Vermutung ist, daß diese Erscheinung damit zusammenhängt, daß es im VBA nur die Ereignisse ENTER und EXIT, die zeitlich vor GOTFOCUS und nach LASTFOCUS liegen, gibt und damit der Fehler in der Focus-Steuerung im Zusammenhang steht.

Lange Rede, kurzer Sinn: nachdem ich diese zwangsweise Zuordnung des nächsten Steuerelementes vor dem
Aufruf der SETFOCUS-Methode aus der Procedur entfernt habe und mit den Ereignissen KEYDOWN und MOUSEDOWN/MOUSEMOVE die Rückwärtsbewegung steuere, läuft die Steuerelementearbeit im Formular einwandfrei.

Ich bedanke mich also für Eure Hilfe bzw. Eure Anregungen.
Bis zum nächsten Mal,
Rainer.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel