Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: datekk am Januar 13, 2019, 16:42:02

Titel: Klassen öffentlich verfügbar machen (public)
Beitrag von: datekk am Januar 13, 2019, 16:42:02
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
Titel: Re: Klassen öffentlich verfügbar machen (public)
Beitrag von: PhilS am Januar 13, 2019, 17:13:03
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.
Titel: Re: Klassen öffentlich verfügbar machen (public)
Beitrag von: datekk am Januar 13, 2019, 17:27:49
Top... Ja, ich hatte es in einer Formularklasse erstellt. Jetzt läuft das. :)