Bedrijfsnaam in forms/rpt in 1x achteraf wijzigen

Status
Niet open voor verdere reacties.

Sytse1

Gebruiker
Lid geworden
9 aug 2007
Berichten
584
Office versie
miDer
Wellicht kan iemand mij vertellen hoe ik een bedrijfsnaam in alle forms en rapporten in 1x kan aanpassen.
Wellicht staat de naam in een variabele die bij het starten of openen van een form/rapport wordt opgehaald.
Het is dan mogelijk om achteraf op een eenvoudige manier de naam te wijzigen. De de tekst in de variabele te wijzigen.
In de kop van het form/rapport staat (een label?) dan de verwijzing naar de variabele.
B.v.d. voor het meedenken.
Sytse
 
Je geeft zelf het antwoord :).

Wellicht staat de naam in een variabele
Zet de bedrijfsnaam in een TempVar variabele en koppel die bij het openen van de formulieren/rapporten aan een label of tekstvak. Je kunt overigens ook een tabel gebruiken met een tekstvak en een DLookup functie. Hangt een beetje van de db versie af; versies t/m 2003 kennen de TempVar niet.
Nog een alternatief: een Public Const variabele maken. Maar dat is minder stabiel als TempVar.
 
Ik werk met Access 2010. Een tabel met 1 record is dan wellicht de beste oplossing.
Bedankt voor je reactie
Sytse
 
Access 2010 kent de Tempvar juist wél, en dat lijkt mij dus de handigste optie :). Tempvars kun je namelijk ook in queries gebruiken, dus het gebruiksnut is net zo goed (eigenlijk veel beter) dan een tabel.
 
Opnieuw bedankt voor je reactie. Ik moet het mij weer opnieuw eigen maken.
Ik heb jaren geleden m.b.v. Access 2003 het e.e.a. in elkaar geknutseld.
Toen bedrijfsmatige applicaties. De kennis is toch behoorlijk weggezakt.
Nu nog even zoeken hoe ik TempVar kan gebruiken. Declaren oproepen enz.
Sytse
 
Octafish, een tempvars variable vullen doe je toch ergens vanuit een bepaald veld in een invulformulier (of automatisch uit een tabel) of de gebruiker moet zelf in de code gaan duiken.
En als dat veld niet-gebonden is moet je dan toch telkens nadat je de PC herstart hebt die tempvars opnieuw gaan invullen?
Ik gebruik die functie maar één keer om een gebruiker zijn naam en accesslevel mee te geven gedurende de ganse sessie van die gebruiker bij het inloggen en de vaste rapport headers laat ik via een Dlookup opzoeken uit een tabel
Die "documenten"tabel kan de gebruiker dan ook weer zelf benaderen via een apart formulier zodat ze de hoofd - en voetteksten als het ware zelf kunnen veranderen.
Deeltje van bv een mogelijke inlogprocedure:
Code:
strsql = "SELECT [personeelsnummer],[passwords],[access_level],[password_date],[sessie] FROM tbl_users " _
    & "WHERE personeelsnummer=" & Forms!Frm_main!personeelsnummer
Dim tmp

With CurrentDb.OpenRecordset(strsql)
    If .RecordCount = 1 Then
        ValidUser = 2
        If .Fields("passwords") = Forms!Frm_main!password Then
            AccessLevel = .Fields("Access_Level").Value
            TempVars.add "PDUser", .Fields("personeelsnummer").Value
            TempVars.add "PDUserlevel", .Fields("access_level").Value
            PasswordPeriod = CDate(.Fields("password_date").Value)
        Else
            ValidUser = 1
            AccessLevel = 3
        End If
    Else
        ValidUser = 0
    End If
    .Close
End With

Bij het uiloggen door de gebruiker laat ik wel de tempvars verwijderen door:
Code:
TempVars.Remove "PDUser"
          TempVars.Remove "PDUserlevel"
 
Octafish, een tempvars variable vullen doe je toch ergens vanuit een bepaald veld in een invulformulier (of automatisch uit een tabel) of de gebruiker moet zelf in de code gaan duiken.
Klopt; maar wat is daar op tegen?

In een willekeurige module zet je deze functie:
Code:
Function SetBedrijf()
    TempVars.Add "Bedrijf", "Dit is de naam van mijn bedrijf"
End Function

Die laadt je bij het starten van de db met de macro AutoExcec met de functie <ProcedureUitvoeren> met daarin de Functienaam: SetBedrijf()
De macro wordt altijd bij openen van de db uitgevoerd, dus de tempvar wordt standaard geladen. Die lees je dan als volgt uit op het formulier/rapport:

Code:
Private Sub Form_Open(Cancel As Integer)
    Me.txtBedrijf = TempVars("Bedrijf")
End Sub

En meer is het niet. Veel veiliger dan in een tabel, want die kan iemand per abuis wissen/muteren.
 
In het startform heb ik bij laden de volgende procedure gezet
Private Sub Form_Load()
On Error GoTo Autoexec_Err
TempVars.Add "Uwnaam", "Hier kan uw bedrijfsnaam staan"
Autoexec_Exit:
Exit Sub
Autoexec_Err:
MsgBox Error$
Resume Autoexec_Exit
End Sub

In de forms en waar dit verder nodig is een tekstvak met bij de bron =[TempVars]![UwNaam]
Wellicht eenvoudig maar het werkt.
Naderhand in de procedure alleen de gewenste naam invullen.
Bedankt voor het meedenken.
Sytse
 
Dat kan zo ook. Mijn oplossing werkt zonder startformulier, maar is in essentie dus dezelfde oplossing, want of je nu een startformulier laadt of altijd een startmacro uitvoert: Access moet toch iets doen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan