Hoe selectreer ik MedewID?

Status
Niet open voor verdere reacties.

DaFuzz

Gebruiker
Lid geworden
12 dec 2013
Berichten
27
Goedemiddag dames en heren

Ik ben momenteel bezig om een "dagrapport" te maken voor de teamleiders op het werk (neem het even aan).
1 van de modules waar ik nu mee aan het werk ben, omhelst een formulier "TeamindelingKeuze", welke weer bestaat uit subformulieren (TeamindelingCalc en TeamindelingAgents)

In het formulier TeamindelingKeuze kan een teamleider geselecteerd worden, die aan de hand van het MedewID informatie doorgeeft aan de onderliggende subformulieren.
Zo rekent TeamindelingCalc het aantal medewerkers uit die nog toegevoegd kunnen worden aan het betreffende team en toont TeamindelingAgents alle agents die onder deze teamleider horen.

Mijn probleem ligt momenteel bij het volgende:

Ik probeer een nieuw formulier te openen door middel van een agent te dubbelklikken in het subformulier TeamIndelingAgents.
Het formulier (AgentInfo) is gemaakt, en het dubbelklikken werkt ook, maar het formulier toont enkel de teamleider van deze medewerker in plaats van de medewerker zelf, of vraagt om een nieuw record (wat zeker niet de bedoeling is).
Het formulier TeamleiderAgents is gebaseerd op een Query die de volgende onderdelen bevat.

Twee dezelfde tabellen (medewerker), waarvan 1 genaamd teamleider en 1 genaamd medewerker (MedewID Teamleider s gekoppeld aan SuperID in Medewerker).
Query: Teamleider.MedewID/Uren/AantalvanMedewID/Medewerkernaam/uit dienst/Medewerker.MedewerkerID

Ik kan nog een boel meer informatie geven, maar om het concreet te maken, als ik nu in de gebeurtenisprocedure onderstaande regels probeer, krijg ik altijd de Teamleider.MedewID.

Private Sub Medewerkernaam_DblClick(Cancel As Integer)

Dim strFrmName As String, strWhere As String

strFrmName = "AgentInfo"
strWhere = "[Medewerker.MedewID]=" & Me.MedewID

Call DoCmd.OpenForm(FormName:=strFrmName, WhereCondition:=strWhere)

End Sub

Of in het kort:

DoCmd.OpenForm "AgentInfo", , ,"[Medewerker.MedewID] = " & Me.MedewID.

Wat doe ik verkeerd? (buiten erg moeilijk om na :p)
 
Erg moeilijk? Daar zou je wel eens gelijk in kunnen hebben. Edoch, zonder voorbeeldje kan ík er in ieder geval niks zinnigs van zeggen.
 
Alrighty, laat ik het in dat geval visueel proberen te maken.

Om te beginnen met de Query, deze heb ik nog even aangepast, om te kijken of dat het probleem zou kunnen oplossen (helaas).
Allereerst, de Query

Bekijk bijlage 335262

MedewID = Medewerker ID voor teamleiders
Uren = Aantal uren dat teamleider beschikbaar is
aamtal.MedewID = per medewerker 1 (voor een algemene optelling van aantal agents per team)
Medewerkernaam = naam medewerker
uit dienst = datum dat medewerker uit dienst is (behoort null te zijn voor weergave van actieve medewerkers)
MedewerkerID = Medewerker ID voor agents (hernoemd)

Dan de formulieren:

Bekijk bijlage 335263

Het betreft 1 formulier die gebaseerd is op de tabel medewerker.
Hier wordt de teamleider middels het pull down menu geselecteerd.
Naast het pull down menu zit een sub formulier die berekent hoeveel medewerkers een teamleider kan hebben, gebaseerd op zijn aantal uren. (niet belangrijk, het werkt :))
Daaronder een subformulier (gegevensblad) die alle agents toont die bij deze teamleider hoort.

Uiteraard draaien deze formulieren allen op de MedewID die geselecteerd is in het teamleider pull down menu.

Mijn probleem ligt bij het gegevensblad, wat ik graag wil is een naam dubbelklikken in dit formulier, zodat er een nieuw formulier geopend wordt die informatie toont van de Agent (dus niet van de teamleider).
De code die ik nu gebruik na het dubbelklikken evenement is als volgt:

DoCmd.OpenForm "AgentInfo", , , "MedewerkerID = " & Me.MedewID.

Ecter, als ik nu een naam dubbelklik, verschijnt er een pop up die vraagt om het MedewerkerID.

Ik hoop dat een en ander zo duidelijker is :)
 
Zojuist zelf even aan het prutsen geweest, en heb de oplossing gevonden :)
Ik heb een nieuwe Query gemaakt, specifiek voor het gegevensblad.
Hierin staat de medewerker tabel twee keer, waarvan de teamleider MedewID tabel gekoppeld is aan de medewerker SuperID, gevolgd door de namen van de medewerkers.
(superID, MedewID, Medewerkernaam).

Hierdoor kan de medewerkertabel zonder problemen het SuperID koppelen aan het MedewID van bovenliggende formulier en alsnog het MedewID gebruiken voor het openen van het AgentInfo formulier.
 
Ik ben blij voor je dat je er uit bent, want je bijlages zijn niet te openen. Dus enige help op basis daarvan was niet te verwachten :). Op basis van je beschrijving:
Zo rekent TeamindelingCalc het aantal medewerkers uit die nog toegevoegd kunnen worden aan het betreffende team en toont TeamindelingAgents alle agents die onder deze teamleider horen.
denk ik dat je niet heel handig bezig bent, want dit kan vele malen slimmer. Waarom zou je het aantal medewerkers dat je kan toevoegen uitrekenen? Die kun je toch zo laten zien in een keuzelijst? Hetzelfde geldt voor de agenten die zijn toegewezen: kun je zo in een keuzelijst laten zien. Dat gedoe met subformulieren.... als het niet nodig is, zul je het mij nooit zien doen :).
Het mooie van keuzelijsten: je kunt er twee knoppen tussen zetten die de vrije medewerkers toewijzen aan de teamleider, en omgekeerd. Gewoon, allemaal op hetzelfde scherm. En dat werkt super handig en snel.
 
Hehe, zoals ik al zei, ik doe erg moeilijk :)

De reden waarom ik het op deze mnier doe, is dat de teamleiders hier op de vloer nogal wat verloop in personeel hebben.
In dat geval moet het snel mogelijk zijn om agents in een ander team te plaatsen.
De berekening die ik heb losgelaten in Calc heb ik in een aparte tabel moeten opslaan genaamd FTE.
In de FTE tabel staan de uren van de teamleiders en daarachter het aantal personeel wat zij kunnen hebben in het team.

Als een TL bijvoorbeeld 36 uur werkt, heeft deze 21 man die in zijn team geplaatst kan worden.
Bij 32 uur 19 man, 28 uur 17 man, 24 uur 15 man.

De Calc kijkt dus naar het aantal uur wat een teamleider werkt en hoeveel man er ingepland kan staan in zijn team.
Dan kijkt hij hoeveel man er daadwerkelijk in zijn team zitten en trekt dan dit aantal van het ingeplande aantal af, waarop de teamleider in 1 oogopslag kan zien hoeveel man er nog toegeveogd kunen worden en hoeveel niet.

Ik begrijp dat dit makkelijker kan, maar ik werk helaas in een omgeving waar het oog graag gestreeld wordt en het vooral makkelijk moet kunen (behalve voor de bouwer :))
 
Ik begrijp dat dit makkelijker kan, maar ik werk helaas in een omgeving waar het oog graag gestreeld wordt en het vooral makkelijk moet kunen (behalve voor de bouwer :))
Ik lees zóveel foute uitgangspunten in je verhaal dat ik je hele bericht wel kan quoten, maar laat ik het bij de laatste houden, want die vat het wel zo’n beetje samen. Je snapt het al: bij mij zou de ‘opdrachtgever’ hier niet weg mee komen. Als jullie auto’s zouden bouwen, zouden ze er ongetwijfeld fantastisch uitzien, maar voor geen meter rijden. Dat idee.

Bij het maken van een database MOET de functionaliteit voorop staan. Het gaat er om dat je een betrouwbaar systeem maakt, dat snel en goed, en makkelijk werkt. Daarnaast probeer je de GUI mooi en gebruiksvriendelijk te maken. Zeker niet andersom. Een opdrachtgever die dat niet snapt, stuur ik naar huis.
Die aparte tabel snap ik dus totaal niet, want het is zegge en schrijve één veld dat je daarin opslaat. En dat is nota bene nog een eigenschap van de teamleider ook, dus dat veld kan je makkelijk in de Teamleiders tabel opslaan. De rest is, zoals je al aangaf, een berekening en loopt dus gewoon mee in de queries.
Alles wat je beschrijft, kan perfect op de manier die ik aangaf, zonder extra tabel, en zonder subformulieren. En ik geef je op een briefje dat het er nog beter uitziet ook :).
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan