Global Variables

Status
Niet open voor verdere reacties.

Bandito

Gebruiker
Lid geworden
8 okt 2012
Berichten
199
Beste allemaal,

Ik heb een database met inlog scherm gemaakt. Na heel wat doorklikken kan diegene die inlogt bij een form komen waar ze nieuwe orders kunnen invoeren. Nu zou ik graag willen dat de naam van diegene die heeft ingelogged automatisch wordt ingevuld bij het order scherm.

Code van het inlog scherm:'

Code:
Option Compare Database
Dim Niveau As String
Dim TempNaam As String
Dim TempAfkorting As String

Code:
Private Sub cmdLogin_Click()
    If IsNull(Me.txtGebruikersnaam) Then
        MsgBox "Voer alstublieft uw gebruikersnaam in.", vbInformation, "Gebruikersnaam vereist"
        Me.txtGebruikersnaam.SetFocus
    ElseIf IsNull(Me.txtWachtwoord) Then
        MsgBox "Voer alstublieft uw wachtwoord in.", vbInformation, "Wachtwoord vereist"
        Me.txtWachtwoord.SetFocus
    Else
        If (IsNull(DLookup("[Gebruikersnaam]", "tblLoginGegevens", "[Gebruikersnaam] ='" & Me.txtGebruikersnaam.Value & "' And Wachtwoord = '" & Me.txtWachtwoord.Value & "'"))) Or _
           (IsNull(DLookup("Wachtwoord", "tblLoginGegevens", "Wachtwoord ='" & Me.txtWachtwoord.Value & "' And Wachtwoord = '" & Me.txtWachtwoord.Value & "'"))) Then
              MsgBox "Verkeerde gebruikersnaam of wachtwoord."
              Me.txtGebruikersnaam.SetFocus
                Else
                    TempNaam = DLookup("Naam", "tblLoginGegevens", "Gebruikersnaam = '" & Me.txtGebruikersnaam.Value & "'")
                    TempAfkorting = DLookup("Gebruikersnaam", "tblLoginGegevens", "Gebruikersnaam = '" & Me.txtGebruikersnaam.Value & "'")
                    Niveau = DLookup("Niveau", "tblLoginGegevens", "Gebruikersnaam = '" & Me.txtGebruikersnaam.Value & "'")
                    DoCmd.Close
        If Niveau = "Admin" Then
            DoCmd.OpenForm "Home_Administrators"
            Forms![Home_Administrators]![txtNaamAdmin] = TempNaam
        ElseIf Niveau = "Inpak" Then
            DoCmd.OpenForm "Home_Inpak"
            Forms![Home_Inpak]![txtNaamInpak] = TempNaam
    End If
        End If
        End If
End Sub

Zoals je ziet wordt hier al de variable TempNaam gebruikt. Deze laat de naam van de gebruiker zien in txtNaamAdmin (of txtNaamInpak) op het volgende form.

Nu wil ik deze naam ook meenemen naar een form Order wat 2 klikken verder zit. Ik weet niet hoe ik op dit form TempNaam weer kan aanroepen. Het lijkt me niet handig dat ik op alle pagina's een textbox moet zetten waar ik de naam in doorgeef.

Hoe zorg ik ervoor dat ik een variabele krijg die altijd onthouden blijft totdat de persoon uitlogt? Een variable die ik in alle forms zou kunnen aanroepen.

Bij voorbaat dank,
 
Laatst bewerkt:
Ik gebruik nog maar zelden Public variabelen, omdat ze behoorlijk onbetrouwbaar zijn en zomaar overschreven kunnen worden of ineens leeg zijn. Veel beter is het om een TempVar te gebruiken, die gedurende de hele Access sessie aan te roepen is. Op een inlogscherm krijg je dan bijvoorbeeld deze code die de TempVar aanmaakt:
Code:
            TempVars.Add "varMedewerkerID", !MedewerkerID.Value
            TempVars.Add "varMedewerkerNaam", !MedewerkerNaam.Value
En op het andere formulier krijg je dan:
Code:
            Me.txtMedewerkerID = TempVars("varMedewerkerID").Value
            Me.txtMedewerker = TempVars("varMedewerkerNaam").Value
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan