Hallo,
Post by Rüdiger GramPost by Michel Fouquet1. Dim PrevCtl As Control
3. If TypeOf PrevCtl Is TextBox Then ...
Set PrevCtl = Screen.PreviousControl
Ich glaube, das ist die richtige Spur. SetPrevCtl habe ich weiter
vorne, aber ich vermute, daß dieser Teil des Codes gar nicht
abgearbeitet wird (weil es 2 Zeilen davor einen Logikfehler zu geben
scheint).
1. Selbstverständlich ist das die richtige Spur. "Normale" Variablen
erhalten mit ihrer Deklaration einen Standardwert verpasst. Dim i As
Integer belegt i mit 0, Dim strText As String belegt strText mit einem
Leerstring, Dim x (also ein Variant) belegt x mit Null (N-u-l-l).
Objektvariablen hingegen benötigen eine (explizite) Zuweisung
(Instanziierung). Da diese in deinem Code nicht gegeben ist, wird die
selbsterklärende Fehlermeldung "Laufzeitfehler '91': Objektvariable oder
With-Blockvariable nicht festgelegt" ausgegeben.
Wenn man sich die minimale Mühe machen würde, in dem aufpoppenden
Fenster der Fehlermeldung mal auf den Hilfe-Button zu klicken, könnte
man lesen:
<zitat>
Objektvariablen werden in zwei Schritten erstellt. Zunächst müssen Sie
die Objektvariable deklarieren, und anschließend müssen Sie der
Objektvariablen mit der Set-Anweisung einen gültigen Verweis zuweisen.
[snip]
Dieser Fehler hat die folgenden Ursachen und Lösungen:
a) Sie wollten eine Objektvariable verwenden, die auf kein gültiges
Objekt verweist.
Geben Sie für die betreffende Objektvariable (ggf. erneut) einen Verweis
an. Wenn zum Beispiel im folgenden Code-Beispiel die Set-Anweisung nicht
verwendet würde, wäre ein Fehler beim Verweis auf TestObjekt die Folge:
Dim TestObjekt As Object ' Objektvariable erstellen.
Set TestObjekt = Sheets(1) ' Zulässigen Objektverweis erstellen.
Anzahl1 = TestObjekt.Count ' Anzahl1 den Wert von Count zuweisen.
b) Sie wollten eine Objektvariable verwenden, die auf Nothing gesetzt
wurde.
Set TestObjekt = Nothing ' Objekt freigeben.
Anzahl1 = TestObjekt.Anzahl1 ' Verweis auf
' freigegebenes Objekt erstellen.
Erstellen Sie einen neuen Verweis für die Objektvariable. Sie können
beispielsweise mit einer weiteren Set-Anweisung einen neuen Verweis auf
das betreffende Objekt festlegen.
c) Das Objekt ist gültig, aber der Verweis wurde nicht zugewiesen, weil
die Objektbibliothek, in der es beschrieben ist, noch nicht im
Dialogfeld Verweise aktiviert wurde.
Wählen Sie die Objektbibliothek im Dialogfeld Verweis hinzufügen aus.
</zitat>
2. Unter "weiter vorne" kann sich unsereins natürlich alles und nichts
vorstellen.
3. Die Abarbeitung von Code lässt sich durch Einstreuen von MsgBoxen
bzw. das Setzen von Haltepunkten und Durchgehen im Einzelschrittmodus
überprüfen.
mfg,
Michel
--
Informationen für Newbies (Neulinge) in den Access-Newsgroups
http://www.doerbandt.de/Access/Newbie.htm
FAQ: http://www.donkarl.com/AccessFAQ.htm
KnowHow.mdb: http://www.freeaccess.de/knowhow.asp