Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: I985 am August 24, 2015, 13:54:28

Titel: Benutzername als Variable speichern und mit Makrotool verwenden
Beitrag von: I985 am August 24, 2015, 13:54:28
Hallo und guten Tag,

leider muss ich mich noch einmal mit einem Problem an dieses Forum wenden.

Für meine Datenbank habe ich ein Login-Formular erstellt. Der dort eingegebene Benutzername soll zur weiteren Verwendung in einer Varbiablen gespreichert werden. Dazu habe ich ein Modul erstellt, dass wie folgt aussieht:
Option Compare Database
Option Explicit
Public Benutzername As String

Public Function DB_Benutzer()
DB_Benutzer = Benutzername
Debug.Print Benutzername
End Function


sowie als Makro an das Textfeld im Login-Formular:
Public Sub txtLoginID_BeforeUpdate(Cancel As Integer)
Benutzername = txtLoginID.Value
End Sub


Der eingebene Benutzername wird auch gespeichert und lässt sich über debug.Print ausgeben.

Sobald ich jetzt die Funktion in einem Makro über das Makrotool und die Funktion "FestlegenFeld" verwenden möchte, um z.B. in einer Tabelle den Namen des Benutzers zu hinterlegen, der eine Veränderung vorgenommen hat, bekomme ich die Fehlermeldung:

Die Funktion "DB_Benutzer" ist nicht für Ausdrücke zulässig, die in Datenmakros verwendet werden.

Kann mir jemand sagen, an welcher Stelle das Problem liegt und bestenfalls wie ich das Problem lösen kann?

Interessanter Weise hat diese Funktion anfänglich problemlos funktioniert - jedoch habe ich keine Ahnung was sich zwischenzeitlich geändert hat...
Titel: Re: Benutzername als Variable speichern und mit Makrotool verwenden
Beitrag von: el_gomero am August 24, 2015, 14:54:57
Hallo,

mit Makros arbeitet mW hier so gut wie niemand, dazu werden Antworten wohl die Ausnahme sein.

Was mir auffällt - du füllst korrekt eine globale Variable Benutzernamen. In der Sub txtLoginID_BeforeUpdate willst du Benutzername mit einem Wert füllen. Is Benutzername ein Feld im Form? Irgendwie passt das nicht. Ausserdem lässt sich per VBA die Variable direkt in gewünschte Felder, etc einfügen.