Hoe kan ik de tijd registreren in Access?

Status
Niet open voor verdere reacties.

san16

Gebruiker
Lid geworden
5 okt 2013
Berichten
34
Ik heb het geprobeert met deze code:

docmd.setwarnings false
docmd.runsql "INSERT INTO REGISTRATIE_TABEL(TIJD,PERSOON,ACTIE) values (NOW(),’" & naamveldgebruiker &" ‘,‘IN’)"
docmd.setwarnings true

De tijd vult hij wel in maar de naam van de persoon niet en het in hoeft ook niet perse.

Mijn situatie: Ik wil doormiddel van een keuzelijst op de naam kunnen klikken en dan moet hij automaties in een tabel de tijd en naam invullen.

Gr. San16
 
Ik heb even een testje nagebouwd, met deze code:
Code:
Sub test()
Dim NaamVeldGebruiker As String
    NaamVeldGebruiker = VBA.Environ("Username")
    DoCmd.SetWarnings False
    DoCmd.RunSQL "INSERT INTO REGISTRATIE_TABEL(TIJD,PERSOON,ACTIE) VALUES (NOW(),'" & NaamVeldGebruiker & " ','IN')"
    DoCmd.SetWarnings True
End Sub
En daarmee worden alle velden netjes gevuld. Dus ik denk dat je ofwel een verkeerd veld gebruikt (NaamVeldGebruiker) ofwel verkeerde quootjes (‘,‘ zijn foute quootjes).
 
Ik wil eigenlijk niet de naam van de Computergebruiker maar van het tabel dat ik gebruik.

Schermopname (72).png
 
Laatst bewerkt:
Ik heb je db niet, dus ik heb een vergelijkbaar voorbeeld gemaakt. Dat moet je dan uiteraard aanpassen aan je eigen situatie. Lukt dat niet, dan hebben we jouw db nodig.
 
Het probleem is dat hij nu mijn account naam van mijn pc pakt. maar hij moet eigenlijk de naam uit de tabel overnemen?
Hij moet eigenlijk de naam van voorgaande keuzelijst overnemen
 
Laatst bewerkt:
En dat kan, maar zonder je db kan ik niet zien hoe. Je eigen code doet het duidelijk niet, en ik kan zo niet zien wat je fout doet.
 
Ik snap niet waar [naamveldgebruiker] vandaan komt. Op je formulier zie ik geen enkel object dat zo heet.
 
Ik wil die code in me eigen omgeving implementeren alleen ik krijg het zelf niet voor mekaar, dus ik hoop dat jij mij verder kan helpen?
 
Ik kijk naar je initiele vraag, en daarin heb je het over een veld [naamveldgebruiker]. Hoe kun je de waarde daarvan gebruiken, als het niet bestaat in je formulier? Kortom: waar moet dat veld vandaan komen?
 
Dit gaat een lang draadje worden :). Je hebt een niet-afhankelijk formulier <Inschrijfformulier> waar dat veld niet in gebruikt wordt, en in het formulier <Werknemers> heb je geen knop nodig voor het opslaan (die je overigens wel hebt, maar die dus niks doet). Dus hoe denk je dat veld in je Insert query te krijgen? Ik zie het namelijk niet...
 
Ik weet het ook niet, maar ik wil als je op die naam in de keuzelijst klikt dat die naam word gekopieerd en de recente tijd en datum in de Inschrijflijst komt.
Hij haalt de gegevens van de keuzelijst uit de tabel werknemers
Alvast bedankt.
 
En dat snap ik dus niet, want ik zit te kijken naar een formulier <Inschrijven> met daarop één keuzelijst met als Recordbron SELECT Afdelingen FROM Afdelingen ORDER BY Afdelingen;. En een tekstveld <Achternaam>. Maar die komt niet uit de tabel Werknemers, en is ook geen keuzelijst. Heb je wel het goede voorbeeld gepost?
 
Hij haalt die afdelingen uit een apart tabel zodat je in de keuzelijst de medewerkers uit kan sorteren. en achternaam is gewoon een willekeurige titel.
 
Nou, na wat puzzelen is het toch simpel op te lossen. Om te beginnen: let eerst op de naamgeving die je gebruikt; in je oorspronkelijke code gebruik je een object dat niet bestaat (naamveldgebruiker) en een veld dat niet bestaat (PERSOON). Dan vraag je natuurlijk om problemen. Verder heb je in je keuzelijst een veld staan dat niet nodig is (afdeling) en dat wél het waardeveld is van de keuzelijst. Dat veld moet dus weg; Naam moet het eerste veld in je keuzelijst zijn. Of je moet eigenschap <Afhankelijke kolom> op 2 zetten.
Als je de aanpassingen hebt gedaan op de keuzelijst, dan kun je deze query gebruiken:

Code:
    DoCmd.RunSQL "INSERT INTO Inschrijflijst(Tijd, Naam, ACTIE) VALUES (NOW(),'" & Me.Inschrijven & " ','IN')"
 
Is het ook mogelijk om alle tijden achter elkaar op een rapport te plaatsen van 1 medewerker?
 
Wat bedoel je met 'achter elkaar'?
 
Maak een Kruistabel query en baseer daar een rapport op. Let er wel op dat dit rapport niet dynamisch is, omdat bij elke nieuwe toevoeging er een nieuwe tijdkolom wordt bijgemaakt in de kruistabel. En die bestaat dan niet in je rapport.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan