MS Access: Bestimmen Sie den Objekttyp

8

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

    
maxhugen 19.01.2010, 01:59
quelle

2 Antworten

11

Schauen Sie sich

an

typeOf und typeName

  

Generische 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
  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:

%Vor%      

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%
    
Gaby aka G. Petrioli 19.01.2010, 02:10
quelle
6

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

    
Tom Davidson 08.04.2011 15:16
quelle

Tags und Links