Selecteerde naam in tabel

Status
Niet open voor verdere reacties.

mbakker71

Gebruiker
Lid geworden
25 mei 2012
Berichten
163
Hallo

Ik heb een form gemaakt waar ze hun naam moeten selecteren en daarna pas verder kunnen. Nu wil ik dat hij die geselecteerde naam opslaat en dat iemand dan een record aanmaakt dat dan in een kolom komt de staan als voorbeeld "Martijn Bakker". Weet iemand hoe je dit doet. bestaat er misschien een macro voor of moet ik het in VBA maken?

bey Martijn
 
Macro's gaan je daar niet bij helpen; je zult de usernaam moeten opslaan in een globale variabele o.i.d. die je dan elders weer kunt oproepen. Deze werken alleen in formulieren en via VBA. Je kunt ook eens kijken naar de TempVar collectie; hier kun je ook globale variabelen in opslaan, met als verschil dat je een TempVar ook in queries kunt gebruiken.
 
Het is ook in een formulier met een listbox. en als je dan op een naam dubbelklikt of op de log in knop drukt dan ga je naar het volgende form. de box heeft 2 kolommen met de Namen: "Name" & "Email" nu wil ik dat hij de geselecteerde "Naam" opslaat en dat ik het dan later in een tabel als je een nieuwe record aanmaakt dat er dan bij de kolom "Gemaakt door" die naam komt te staan.

Ik weet al een paar dagen wat over tempvar maar begrijp er niks van. kan je me er iets over vertellen

bey martijn
 
Ik heb op het werk nog een versie die geen TempVars ondersteunt, dus voor nu een Engelstalige pagina. Het idee is, dat je de TempVar vult vanuit een VBA procedure, dus dat zou vanuit het inlogscherm kunnen. Je definieert de tempvar met een naam en een waarde. Waar je hem nodig hebt, roep je hem weer aan. Het verhaal is redelijk rechttoe-rechtaan; je kunt niet zo heel veel kanten op met TempVars.
 
Het is precies wat het zegt te zijn: een tijdelijke variabele, die je overal kunt gebruiken. Tijdelijk, omdat hij wordt geleegd als je de db afsluit.
Een alternatief is in een module een Public Variabele declareren, en die vullen.
 
ik heb dit net gemaakt:

Option Compare Database

Private Sub Knop28_Click()

If (Not IsNull(Keuzelijst23)) Then
TempVars.Add "CurrentuserID", "[keuzelijst 23]"
DoCmd.Close , ""
DoCmd.OpenForm "Rea Tracking", acNormal, "", "", acFormEdit, acWindowNormal
Exit Sub

End If
Beep
MsgBox "You must first select your name. If you can't find your name please click on new user", vbOKOnly, ""



End Sub
 
begrijp nog niet hoe je het in een kolom doet maar dat komt wel goed hoop ik.
 
Volgende keer (of, als je een wit voetje wilt halen: met terugwerkende kracht ;) ) graag code opmaken met de CODE knop; dat maakt 'm een stuk leesbaarder. Ik denk dat je een foutje maakt, omdat je de tempVar vult met tekst en niet met een waarde uit een keuzelijst.

Code:
Private Sub Knop28_Click()

If (Not IsNull(Keuzelijst23)) Then
    TempVars.Add "CurrentuserID", Me.keuzelijst 23.Value
    DoCmd.Close acForm, Me.Form.Name
    DoCmd.OpenForm "Rea Tracking", acNormal, "", "", acFormEdit, acWindowNormal
    Exit Sub
End If
MsgBox "You must first select your name. If you can't find your name please click on new user", vbOKOnly, ""
End Sub
En verder zou ik mijzelf heel snel aanleren om keuzelijsten, tekstvakken etc. een logische naam te geven; er komt een dag dat je op een formulier 20 keuzelijsten hebt staan, en dan moet je maar raden welke wat doet...
 
Laatst bewerkt:
ja ik weet dat ik dat moet aanleren. Ik heb in excel een lijst met wat wat is. Maar waarom is dat "me.xxxxx.value" voor?
en je hebt gelijk want '" geeft tekst aan. en niet een verwijzing.

bey Martijn
 
Je haalt een waarde van een formulier af. Dat is een Access object. Met Me. kun je verwijzen naar elementen die op dat formulier staan. Voordeel is, dat je na het typen van Me. een keuzelijst krijgt met de beschikbare elementen die je kunt kiezen zoals in een keuzelijst. En dat elimineert de kans op typfouten. Mar het belangrijkste is, dat je ermee verwijst naar elementen zoals keuzelijsten en tekstvakken etc. die op het formulier staan. Je mag Me. overigens ook weglaten, maar dan heb je weer kans op die typfouten.
 
Hoe zet ik trouwens wat ik geselecteerd heb in een kolom. Dat als ik "martijn Bakker" aan tik dat als ik dan een record aanmaak dat er dan Martijn Bakker komt te staan in de kolom gemaakt door?
 
Dat staat redelijk duidelijk in de pagina beschreven:

Once assigned you can now use the value in your queries and code using the following methods:
En dat gaat dan zo:
Code:
TempVars!CurrentuserID
TempVars.Item("CurrentuserID")
TempVars.Item(0)
 
hijz egt constant dat hij hem niet kan vinden. Ik doe bij standaardwaarde Tempvars!currentUserID Maar dat doet hij niet
 
Nergens staat dat je een TempVar in de standaarwaarde kan gebruiken :)
Overigens werkt het wel....
Vullen met:
Code:
TempVars.Add "User", VBA.Environ("UserName")
En terugplaatsen met:
Code:
=[TempVars]![User]
 
ik denk dat ik de bovenste code moet toevoegen bij de VBA in de form en de 2de bij de table
 
Ik heb het geprobeerd maar hij is leeg zegt die. Het lijkt wel of hij hem niet opslaat
 
ik denk dat ik de bovenste code moet toevoegen bij de VBA in de form en de 2de bij de tabel
Lezen blijft lastig...
"TempVars have no such limitation. They retain their values when your code encounters an error and can be used in Forms, Queries, Reports and code."
Nergens wordt gerept over tabellen.
 
het werkt nu in een tekstblok. maar er blijft maar Martijn staan. Hoe kan dit

Code:
rivate Sub btnlogin_click()

If (Not IsNull(username)) Then
    TempVars.Add "Useronline", VBA.Environ("UserName")
    DoCmd.Close , ""
    DoCmd.OpenForm "RTForm", acNormal, "", "", acFormEdit, acWindowNormal
    Exit Sub
      
    
    End If
    Beep
    MsgBox "Please select your name!", vbOKOnly, ""
      


End Sub

en ik heb bij de tekstblok dit gedaan

Code:
=[tempvars]![useronline]

beymartijn
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan