Gegevens halen uit tabel

Status
Niet open voor verdere reacties.

JeroenMioch

Gebruiker
Lid geworden
1 dec 2007
Berichten
215
Hallo allemaal,

Ik zit met een practisch probleemje;
Ik heb een formulier gemaakt voor de invoer van (parkeer)gegevens van werknemers.
Op het moment dat ik iemand zijn personeelsnummer invoer in het daarvoor bestemde vak toont een subformulier eerder aangevraagde parkeervergunningen. Tot zover gaat het goed.
Als ik alle velden heb ingevoerd en ik click op een knop dan worden de nieuwe gegevens automatisch ingevoerd in de database.

Wat ik nu eigenlijk wil is dat als ik dat personeelsnummer invoer, de overige relevante gegevens in de overige textvakken worden gezet, Immers deze staan (indien bekent) al in de database

Dus ik vul het personeelsnummer in, dan moet naam, voorletters, firma etc al automatisch opgezocht worden en weergegeven in de daarvoor bestemde velden.
Ik krijg dat maar niet voor elkaar...
 
Hallo Jeroen,

Dat kan vrij eenvoudig, door de gegevens op te nemen in de keuzelijst die je hebt gemaakt. Ik neeem aan, dat je het personeelsnummer ophaalt, en in de keuzelijst ook andere gegevens laat zien om het zoeken makkelijk te maken?
Deze gegevens kun je gebruiken om de tekstvakken te vullen.
Gaat als volgt:

Op het <Na bijwerken> event van de keuzelijst zet je de volgende (uiteraard door jou aan te passen) codes:

Me.Tekstvak1.Value=Me.cboPersoneelsnummer.Column(1)
Me.Tekstvak2.Value=Me.cboPersoneelsnummer.Column(2)

En zo verder.

Wat hierbij gebeurt, is het volgende: de keuzelijst is opgebouwd uit een aantal velden. Hierbij is waarschijnlijk het Personeelsnummer het eerste veld. Dit is de standaardwaarde die je gebruikt als je de waarde voor de keuzelijst opvraagt. In Access heeft deze kolom de waarde 0. Als je vier velden in de keuzelijst hebt zitten, kun je die opvragen met de opties Column(1) tot Column(3).

Veel succes ermee!

Michel
 
Hoi Octafish,

Ik snap niet wat je met keuzelijst bedoelt.
Ik zal even duidelijk proberen te maken wat de structuur is van wat ik tot nu toe heb.

Ik heb een tabel:

ID-Datum-Vergunningnummer-Parkeerzone-kenteken-merk-naam-Personeelsnummer etc etc Kortom alle gegevens van de parkeerder staan hierin (in verschillende kolommen uiteraard)

Formulier :

Als bovenstaand, in elk tekstvak kan ik de waardes invullen en worden corresponderend weggeschreven in de tabel in een nieuw record veld.

Subformulier :

Als ik in het textvak van personeelsnummer een al voor de database bekent personeelsnummer invoer dan genereerd het subform alle relevante informatie die ik wil zien. Dit werkt goed, hoef ik niks mee te doen dus.

Hetzelfde moet eigenlijk gebeuren in de Textvakken op het formulier zelf, Ik vul mijn personeelsnummer in in Textvak1 dan moet de database automatisch in Textvak2 mijn naam zetten, Textvak3 mijn voorletters etc etc.

Wat het veld personeelsnummer wel doet met het subformulier, lukt mij dus niet met de textvakken in het hoofdformulier.

Alvast bedankt voor het meedenken :)

groet : Jeroen
 
OK, was al weer een paar stapjes verder ;) Ik ging er namelijk van uit, dat je voor het selecteren van de Personeelsnummers al een keuzelijst met invoervak gebruikt. Blijkbaar doe je dat niet, en vul je de nummers handmatig in?

Dan is stap 1 dus om i.p.v. een tekstvak een keuzelijst met invoervak te maken, waarmee je de personeelsnummers ophaalt. Deze keuzelijst komt op het hoofdformulier te staan.
Maak de keuzelijst gerust met de Wizard, dat werkt over het algemeen prima! Neem, als je de keuzelijst aan het maken bent, alle velden mee die je wilt gebruiken om straks op het formulier weer te geven. Normaal gesproken gebruik je de tabel met Personeelsnummers om zo'n keuzelijst te maken.

Stap 2 is vervolgens om de extra gegevens die je ophaalt met de keuzelijst te koppelen aan de tekstvelden op je formulier. Dat doe je dus door de procedure die ik eerder heb beschreven.
Dit vereist dus wel, dat je iets doet in Visual Basic, want dit moet geprogrammeerd worden. Als je een voorbeeldje hebt, kan ik wel een opzetje maken. Ik kijk ondertussen of ik hier nog een begrijpelijk voorbeeld heb liggen.

Michel
 
Hierbij een voorbeeldje, waarin de keuzelijst zonder VBA wordt gekoppeld aan de tekstvelden op het formulier.

Michel
 

Bijlagen

Yep ik vul het personeelsnummer handmatig in. Werknemer komt bij mij een vergunning aanvragen en dan vraag ik eerst zijn personeelsnummer. Het subform rolt er dan al zijn eerdere vergunningen uit, waarop ik gelijk kan vragen of deze vergunningen kunnen vervallen.
In het subform verwijder ik de vergunningen (records) die niet meer van toepassing zijn.
Aangezien werknemer zich meldt voor een nieuwe vergunning en wij weinig tijd hebben om veel gegevens in te vullen zou het dus mooi meegenomen zijn als ik na het invoeren van het personeelsnummer, gelijk zijn overige gegevens zoals naam, firma, afdeling in mijn scherm heb staan.
Ik hoef dan alleen te vragen "Uw naam is XXXX" ? "Is uw afdeling nog steeds XXXX" ?
Na alle persoonsgegevens mondeling te verifieren vul ik het nieuwe kenteken en vergunningnummer in en dan kan ik de gegevens via een rapport afdrukken.

Ik kan je rar bestand helaas niet openen op mijn werk dus zal ik er thuis even naar kijken.

Groeten : Jeroen
 
Waar je dus veel tijd mee kunt winnen, is het tekstveld Personeelsnummer vervangen door de combobox, zoals ik eerder heb uitgelegd. Aangezien je tabel toch al is gebaseerd op een tabel of query waar dat gegeven inzit, anders kan het subformulier de bijbehorende records niet ophalen, zou ik dat dus eerst maken. Als je daarbij het veld Personeelsnummer verbergt, kun je bij het aanvragen gelijk op naam zoeken, door de eerste letters van de naam in te typen.
Als je de eerste kolom verbergt, zie je in de keuzelijst het personeelsnummer niet. Dat los je dan weer op door een extra tekstveld, waarin je Column(0) opvraagt van de keuzelijst. Dan heb je alles op je scherm staan.

Michel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan