2012-05-07 25 views
7

Ich habe eine MS Access-Anwendung und habe Probleme, einen Rückgabetyp der Funktion zu finden. Gibt es eine Möglichkeit, den Rückgabetyp des Objekts zu finden? Ich habe einen Typenkonfliktfehler.So finden Sie den Rückgabetyp in VBA

Antwort

12

Wenn es sich um eine integrierte Funktion handelt, lesen Sie das Hilfethema Access.

Wenn es sich um eine benutzerdefinierte Funktion handelt, überprüfen Sie ihre Definition.

Wenn Sie beides nicht können, verwenden Sie die TypeName() Funktion, um Ihnen den von YourFunction() zurückgegebenen Datentyp mitzuteilen.

Debug.Print TypeName(YourFunction()) 

Wenn YourFunction() kehrt eine Variante, TypeName() erhalten Sie dieSubtyp Variante sagen.

Heinzi vorgeschlagen VarType() anstelle von TypeName(). Ich greife gewöhnlich zuerst nach TypeName(), einfach weil es schneller für mich ist, und ich bin selten mit seinen Beschränkungen beschäftigt. Ich stimme Heinzi jedoch zu; VarType() ist besser.

JP. bot zwei andere nützliche Vorschläge an. Zunächst können Sie eine einfache Prozedur erstellen, die eine Variable Variant deklariert und den Rückgabewert Ihrer Funktion der Variablen zuweist. Fügen Sie dann einen vorläufigen Unterbrechungspunkt (mit F9) auf der ersten Debug.Print Zeile hinzu, führen Sie die Prozedur aus, verwenden Sie F8, um Zeile für Zeile durchzulaufen, und überwachen Sie den Wert der Variablen im Fenster Lokal. (Öffnen Sie das Fenster aus dem Hauptmenü der VB-Editor-Ansicht. -> Lokalfenster)

Public Sub examine_YourFunction() 
    Dim varFoo As Variant 
    Debug.Print "start" 
    varFoo = YourFunction() 
    Debug.Print varFoo 
End Sub 

Und zweitens, für integrierte Funktionen, die einen Rückgabetyp haben, können Sie die Vorteile von Intellisense nehmen den Rückgabetyp zu sehen, wie Sie geben den Funktionsnamen und/oder die Parameter ein.

+3

+1, sehr guter Rat. Wenn Sie die Typprüfung zur Laufzeit durchführen müssen, würde ich stattdessen die [VarType-Funktion] (http://office.microsoft.com/en-us/access-help/vartype-function-HA001228932.aspx) vorschlagen (um magische Saiten zu vermeiden). – Heinzi

+0

+ 1 Ich stimme Heinzi hier zu :) –

+1

Sie können auch eine Variant-Variable deklarieren, die Funktion ausführen und ihren Rückgabewert der Variablen zuweisen und dann den Wert der Variablen mit dem Locals-Fenster überprüfen. Und für integrierte Funktionen, die einen Rückgabetyp haben, können Sie den Rückgabetyp sehen, während Sie den Funktionsnamen und/oder die Parameter eingeben. – JimmyPena

Verwandte Themen