Gibt es eine Möglichkeit, den Objekttyp zu bestimmen, wenn ein Verweis auf eine Funktion übergeben wird?
Ich verwende eine Sicherheitsberechtigungsfunktion, die bestimmt, ob der Benutzer berechtigt ist, das Formular anzuzeigen, das ihm durch Referenz übergeben wurde. Ich möchte dies auch um Berichte erweitern.
Um die Funktion generisch zu halten, möchte ich eine Referenz für ein Formular oder einen Bericht als Objekt übergeben, zB:
function gfSecurity_Permission(obj as Object)
Allerdings müsste ich das type
des Objekts innerhalb der Funktion bestimmen.
Kennt jemand eine Möglichkeit, das zu tun?
MTIA
Schauen Sie sich
anGenerische Objektvariablen (dh Variablen, die Sie als Objekt deklarieren) kann Objekte aus jeder Klasse halten. Wenn Sie Variablen vom Typ Objekt verwenden, Sie müssen möglicherweise verschiedene Aktionen basierend auf der Klasse der verwenden Objekt; Beispielsweise unterstützen einige Objekte möglicherweise keine bestimmten Objekte Eigenschaft oder Methode. Visual Basic bietet zwei Möglichkeiten zur Bestimmung welcher Objekttyp in einer Objektvariablen gespeichert ist: der TypeName Funktion und der Operator TypeOf ... Is.
TypeName und TypeOf ... Is
%Vor%
Das TypeName-Funktion gibt eine Zeichenfolge zurück und ist die beste Wahl, wenn Sie Sie müssen den Klassennamen eines Objekts speichern oder anzeigen, wie in der folgendes Codefragment:Der Operator TypOf ... Is ist die beste Wahl zum Testen eines Objekts Typ, weil es viel schneller ist als ein äquivalenter String-Vergleich Verwenden von TypeName. Das folgende Codefragment verwendet TypeOf ... Is innerhalb eines Wenn ... Dann ... Else-Anweisung:
%Vor%
Die einfachste Art, den Zugriffstyp beim Zugriff zu ermitteln, besteht darin, eine Objektsuche in den Access-Systemtabellen durchzuführen.
Hier wäre die Suche:
%Vor% strObject
ist der Name des Objekts in Access
Das Ergebnis ist eine der folgenden Nummern unter OR NULL, wenn das Objekt in Access
nicht existiert %Vor%Das dlookup würde also "-32768" für ein Formular oder "-32764" für einen Bericht bereitstellen Hoffe das hilft
Tags und Links object ms-access access-vba