Hallo,
ich wollte eine Klasse "User" erstellen. Beim einloggen in meine Datenbankanwendung sollte eine SessionUser Klasse von User erstellt werden, welche Informationen wie Name, Vorname, UserId, RollenId usw. in sich vereint, da diese Infos an vielen Stellen in meinem Datenbankprojekt auftauchen. Damit wollte ich einzelne public Variablen umgehen und die schöne Intellisense Hilfe haben, welche ich z.B. auch nicht mit einem Collection Objekt habe.
Im Login-Formular habe ich im Kopf des Formulars also folgendes erstellt:
public SessionUser as New User
Die Initialisierung der Klasse klappt. Leider scheint die Klasse aber nur Formular weit Gültigkeit zu besitzen. Sind mit VBA keine öffentlichen Klassen möglich?
LG
datekk
Zitat von: datekk am Januar 13, 2019, 16:42:02
Die Initialisierung der Klasse klappt. Leider scheint die Klasse aber nur Formular weit Gültigkeit zu besitzen. Sind mit VBA keine öffentlichen Klassen möglich?
Doch klar, aber wie alle
Public-Variablen, müssen diese in einem Modul definiert werden, damit Sie überall verfügbar sind. Andernfalls sind sie nur eine Eigenschaft des Formulers, welches selbst ja eine Klasse(ninstanz) ist.
Ich würde auch gleich eine Public Property (Stichwort: Singleton) erstellen, die dir eine Instanz der Klasse liefert. Mit
Public xyz As New Klasse hast du zwar immer eine gültige Instanz, aber keine Garantie, dass diese auch korrekt initialisiert ist.
Top... Ja, ich hatte es in einer Formularklasse erstellt. Jetzt läuft das. :)