UserID opnemen in een tabel

Status
Niet open voor verdere reacties.

LucsBran

Gebruiker
Lid geworden
2 feb 2011
Berichten
17
Hallo,
ik heb er al wat over gelezen, maar kom er niet uit.
Ik zou graag automatisch de userID (uniek voor iedereen in ons bedrijf) automatisch laten invullen als een bepaald aantal op nul komt.
Deze userID moet dan wel ingevuld worden als de echte naam.
vb. userID = johnknae maar de naam die moet ingevuld moet worden is Johny Knaepen.

Alvast bedankt
 
Dan zul je een tabel moeten hebben waarin de UserID's kunnen worden opgezocht, of je moet vanuit de db een koppeling kunnen maken naar de Active Directory bijvoorbeeld.
 
Sorry, maar het lukt me niet. Het UserID veld wordt nu wel ingevuld maar het veranderd steeds in degene die is ingelogd.
Als het record is ingevuld, dan moet het de UserID blijven van wie het ingevuld heeft.
 
De vraagstelling verschuift langzaam naar een andere vraag.... Wat wil je eigenlijk doen? Je kunt dus nu wel een UserID uitlezen, maar wat wil je er verder mee doen?
 
Dag OctaFish,

als ik een nieuw record aanmaak dan wil ik automatisch een veld invullen met de naam van degene die ingelogd is (UserID). Dit mag uiteraard na de ingave van het record niet meer veranderen. Momenteel veranderd dit veld steeds opnieuw (dus ook bij bestaande records).
Met =Environ("Username") werkt het dus niet.
 
Het ligt denk ik niet aan de functie; ik vermoed dat je het tekstveld niet hebt gekoppeld aan een tabelveld. En dan wijzigt de inlognaam... Wat is de besturingselementbron van het tekstveld?
 
Ik heb deze functie in het veld geschreven (functie is dus mijn besturingselementbron van het tekstveld).
Dit veld is dan ook niet gekoppeld aan een tabel.
Sorry, ik lijk nogal dom over te komen, maar moet hier op het werk dan ook alles aanleren via forums en Google.
Geen geld om een cursus te laten volgen (dat gaat naar de hoge pieten) ;)
 
Ik vermoedde al zoiets.... Best kun je de functie naar het VBA stuk van je formulier verplaatsen, bijvoorbeeld bij de gebeurtenis <Bij aanwijzen> van het formulier. Je krijgt dan iets als:
Me.User=Environ("Username")
Op het formulier kun je het tekstveld dan koppelen aan je tabel. Bij het aanmaken van een nieuw record wordt nu de Userlogin ingevuld, en opgeslagen. Hij wordt niet meer overschreven als je 'm zo gebruikt:
Code:
Private Sub Form_Current()
If Nz(Me.User, "") = "" Then
    Me.User = Environ("Username")
End If
End Sub
 
Michel,

alvast bedankt.
Gedeeltelijk werkt het. Ik krijg nu alleen de juiste UserName en die wordt ook zo weggeschreven.
Ik heb dit weld nu gekoppeld aan de tabel met de namen en UserName in. Helaas krijg ik het niet op de wereld om de Naam te tonen. In de dropdown Menu zie ik nu wel alleen de user zijn echte naam staan, maar krijg die dus niet in het veld te zien. Enkel als ik de naam aanklick blijft hij op de echte naam staan.

Is het ook mogelijk dat de usernaam of echte naam direct zichtbaar wordt na het invullen van een veld. Nu moet ik eerst uit het record gaan en dan wordt die pas ingevuld.

(ben een beedje jaloers op jou, ik wou dat ik dit ook zo kon)

Groetjes,
 
Ik snap nog niet helemaal wat je aan het fabrieken bent, al heb ik wel een licht vermoeden.... En dat is, dat je de Usernaam automatisch laat invullen, maar hem weer overschrijft met de echte naam via de keuzelijst. Klopt dit? Zo ja: stoppen hiermee! In de keuzelijst (die je baseert op de tabel [Users], neem ik aan) gebruik je de velden UserID en Usernaam. UserID is dan de loginnaam. Wil je de echte naam zien, dan maak je de eerste kolom onzichtbaar, en stel je de breedte in op de kolom met echte namen. De <Kolombreedten> maak je dan bijvoorbeeld: 0cm;4cm, het <Aantal rijen> 20, en de <Lijstbreedte> 4,6 (4 cm voor de kolom, en 0,6 voor het knopje).
Je ziet dan de namen, maar je slaat de UserID's op, precies zoals het hoort.
 
:) ben de koning te rijk. HET WERKT.

Michel, alleen komt de naam pas te voorschijn als ik uit het record gegaan ben (of naar een ander). Is het niet mogelijk om de naam direct te laten zien?
Voor mij geldt dit als een bepaald getal op nul komt.


Alvast bedankt en vooral al bedankt voor de gedane hulp
 
Waarschijnlijk loop je nog tegen het feit aan dat je oudere records nog verkeerd zijn opgeslagen. Maar dat durf ik niet met zekerheid te zeggen. Check voor de zekerheid met een query of de UserID die je opslaat wel goed is, en vervang ze anders met een bijwerkquery waarbij je dan koppelt op de naam, niet op UserID.
 
Dag Michel,
dit heb ik al ondervonden en opgelost.

Het probleem wat zich blijft stellen is dat als een bepaald getal op nul komt te staan de naam pas wordt weergegeven nadat ik uit het record ben gegaan. Dus de naam wordt niet getoond op het moment dat ik in het record bezig ben.
Dit is nu op zich geen ramp omdat de naam er wel staat (zij het nog niet zichtbaar), maar het zou leuker en professioneler zijn als het er direct kwam te staan.
 
Laatst bewerkt:
Ik snap eigenlijk het probleem niet; blijkbaar doet de keuzelijst het wel, want hij toont de juiste waarden. Maar wanneer zie je iets nu niet? Als je net een waarde hebt gekozen in de keuzelijst?
 
Dag Michel,

alles werkt perfect. De user moet niet meer zijn naam kiezen. Deze wordt automatisch (zolang je in het record bezig bent onzichtbaar) gekozen als het aantal op nul komt. Het is echter zo dat de naam pas te voorschijn komt als er uit het record is gegaan.
Ik had deze graag tevoorschijn zien komen als de waarde van een bepaald getal op nul komt te staan, of als men naar een volgend veld springt.
 
Wat bedoel je met:Deze wordt automatisch (zolang je in het record bezig bent onzichtbaar) gekozen als het aantal op nul komt
Ik kreeg uit eerdere berichten de indruk dat je graag de username ziet als je een nieuw record aanmaakt... En dan is de keuzelijst uiteraard leeg, want er is nog geen waarde bekend, want die moet nog worden gekozen. Je kunt dat checken bij de gebeurtenis <Bij Aanwijzen>. Bij een nieuw record vul je dan alvast de UserID in, anders gebruik je het bestaande record. Je wilt uiteraard niet dat de keuzelijst bij het bladeren steeds opnieuw wordt ingesteld...

Code:
Private Sub Form_Current()
    If Me.NewRecord and Nz(me.cboUser,"")="" Then
        Me.cboUser = Environ("Username")
    Else
        Me.cboUser = Me!UserID
    End If
End Sub
 
Dag Michel,

ik heb het misschien niet zo goed uitgelegd. Dit is wat ik eigenlijk wil:

Het toekennen van de UserID (of de extra naam), als ik een veld op nul zet, werkt zoals het hoort. Dit gebeurd in een reeds aangemaakt record. De naam wordt dan in het veld Afgehandeld ingevuld. Het probleem is dat de user dit niet direct visueel ziet zolang hij in dit record bezig is al is het bewuste veld op nul gezet. Dus zolang hij in het record bezig is wordt het veld Behandeld niet ingevuld.
Gaat hij nu naar een ander record of sluit hij af, dan pas komt de naam te voorschijn.

Alvast bedankt.
 
Maakt denk ik voor de oplossing niet zoveel uit; je moet dan alleen een procedure hangen aan het OnDirty event bijvoorbeeld. Er moet dan wat meer gecontroleerd worden. Ik zou in dat geval een check zetten op het veld dat je leeg maakt. De geberutenis OnChange kun je daar prima voor gebruiken. Als het veld leeg is, dan nieuwe UserID bijvoorbeeld.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan