Meerdere tabelkolommen met zoekwaarde tonen op formulier

Status
Niet open voor verdere reacties.

Littlefarmer

Gebruiker
Lid geworden
20 mei 2020
Berichten
32
Goedemiddag,

Als eerste excuses voor de ietwat onduidelijke titel. Ik weet niet precies hoe
ik het beknopt kan uitleggen in één zin. Daarom heb ik ook moeite met het
zoeken naar een oplossing (wat vraag je aan bv. Google?)...

Sinds kort ben ik overgestapt van Excel naar Access en ik moet zeggen dat het
heel goed werkt. Echter loop ik nu tegen een probleem aan die ik wel met Excel
op zou kunnen lossen, maar met Access is het voor mij iets lastiger:

Mijn DB omvat een planning van werkzaamheden aan orders. Per order kunnen
medewerkers op meerdere werkzaamheden ingepland zijn. Het zou mooi zijn om
een medewerker te kunnen selecteren via een dropdown, waarna je vervolgens
al zijn/haar werkzaamheden ziet, inclusief begin- en einddatum.

Ter verduidelijking:

probleem.jpg

Ik weet dat er veel te doen valt met queries en VBA, maar kom er niet echt uit.

Iemand een oplossing?
 
Per order kunnen medewerkers op meerdere werkzaamheden ingepland zijn.
De oplossing is niet zo moeilijk, maar vereist dat je de database een beetje gaat verbouwen :). Om te beginnen: als het eerste deel van je plaatje de werkelijke velden uit je tabel laat zien, dan heb je een tabel met dataredundantie. Je herhaalt, kort gezegd, gegevens(paren). En dat moet je nooit willen in een database. Ik snap dat je dat gewend was in Excel, maar dat is dan ook geen relationele database :). Zo is het in je huidige tabel onmogelijk om drie werknemers op een order te zetten, terwijl dat in de praktijk best mogelijk zou kunnen zijn. Omgekeerd heb je hetzelfde probleem: je kunt niet zien welke medewerker aan welke orders werkt.

De oplossing daarvoor is heel simpel: een aparte tabel voor je orders, en een aparte tabel voor de medewerkers die aan een order werken. In die tweede tabel neem je dan een veld OrderID op (heet nu ID vermoed ik bij jou), en voor elke medewerker die aan een order werkt, maak je dus een nieuw record aan. Heb je 3 medewerkers, dan krijg je dus ook 3 records.

Die medewerkers_orders tabel zet je als subformulier op je hoofdformulier, en dan zie je dus altijd per order welke medewerkers daaraan zijn gekoppeld. Omgekeerd werken kan ook: op het formulier Medewerkers zet je de tabel Orders als subformulier, en dan zie je dus in één oogopslag welke medewerkers welke orders doet. Het resultaat dus dat jij nu niet kan maken.

Kortom: pas eerst je database aan, daar ligt de sleutel van de oplossing. En dan heb je dus geen VBA of andere trucendozen nodig :).
 
Bedankt voor de snelle reactie!

Zeer goed uitgelegd. Ik heb het idee dat ik in één keer weet wat ik moet doen.
Ik zal even kijken of ik er uit kom en mocht dat zo zijn, laat ik het weten.

:thumb::thumb::thumb:
 
Helemal goed :). Ik gebruik meestal toevoegqueries om een redundante tabel om te zetten naar een niet-redundante. In dat geval maak je een kopie van je huidige tabel en verwijder je uit de oorspronkelijke tabel alle herhalende velden. Vervolgens voeg je vanuit de kopie de herhalende velden toe aan je aangepaste tabel. In jouw geval zou dat er zo uit zien:

Stap 1: kopie van de tabel.
Stap 2: verwijder de velden Naam2, Start2, Start3 (en wellicht ook Naam3, Start3 etc). Voeg eventueel een veld ProjectID toe (die zie ik niet in je plaatje, maar is wel nodig. Het veld ID is vermoed ik een Autonummerveld, en wordt automatisch gevuld in de volgende stappen)
Stap 3: hernoem de overgebleven velden naar Naam, Start, Eind
Stap 4: maak een toevoegquery, en voeg uit de kopietabel het veld Naam2 toe aan Naam, Start2 aan Start en Eind2 aan Eind. Let op: het ProjectID moet je óók vullen!
Stap 5: (optioneel) Herhaal stap 4 voor de velden Naam3, Start3 en Eind3

Heb je nog meer kopievelden, dan herhaal je stap 5 nog een paar keer, tot je alles gehad hebt. Op basis van het ProjectID kun je dan later de projecten aan de medewerkers koppelen, en omgekeerd weer uitlezen.
 
Ik vrees dat mijn vraagstuk toch wat uitgebreider is. Ik kom er niet uit...
Ik denk dat ik mijn vraag iets te beknopt heb gesteld, en weet ook niet zeker
of ik nu te veel vraag van Access.

Hierbij het formulier van het projectoverzicht (Projectnummer kan de sleutel zijn).

probleem2.png

In het overzicht staan alleen gegevens uit 1 tabel, genaamd Projecten...
Graag wil ik een ander formulier maken waar ik een medewerker kan selecteren,
en dan alleen de werkzaamheden, start- en einddata wil weergeven van de
geselecteerde medewerker. Van elk project.

Probleem is nu dus ook, dat ik in 1 tekstvak gegevens uit verschillende kolommen
wil halen. Dat ik de werknemers apart in een query moet zetten begrijp ik, maar dat
zou ik dat ook moeten doen voor elk van de werkzaamheden? En hun begin- en einddata?

Ik zou graag zoiets genereren:

Wens.png

Zoeken op naam lukt al wel via de knop zoeken rechtsboven, maar geniet niet mijn voorkeur.
Bij gebrek aan beter zou dit wel een oplossing kunnen zijn.

Is het überhaupt mogelijk, of maak ik het mezelf te moeilijk?
 
Ik denk dat ik mijn vraag iets te beknopt heb gesteld, en weet ook niet zeker of ik nu te veel vraag van Access.
Ik ben nog niet veel situaties tegengekomen die je niet in Access kan maken, en jouw situatie valt daar, op basis van jouw informatie, zeker niet onder :).

Je uitgangspositie is niet geweldig; als ik een database maak, is de laatste stap het maken van formulieren. Jij bent er zo te zien mee begonnen :). Niet handig. Waarschijnlijk kan dat formulier dus de prullenbak in, want je tabellenstructuur is m.i. inderdaad verkeerd. Een project bestaat uit een aantal vaste gegevens (die de hoofdtabel vormen) en een aantal variabele gegevens, die je in gekoppelde tabellen moet opslaan. De activiteiten vallen daar bijvoorbeeld onder. Ik durf er wel wat onder te verwedden dat geen enkel project alle activiteiten vraagt, en op zeker dat niet alleprojecten aan alle activiteiten hangen. Die gekoppelde gegevens moeten dus niet in één tabel worden ondergebracht, maar in een aparte tabel die je koppelt met een relatie aan de hoofdtabel. Als voor een activiteit één persoon verantwoordelijk is (en ook nooit meer, maar ook nooit minder dan één persoon), dan kan in die activiteitentabel een medewerker worden opgevoerd, maar als meerdere medewerkers aan dezelfde activiteit moeten kunnen werken, dan heb je ook dáár weer een gekoppelde tabel nodig.

Dit:
Probleem is nu dus ook, dat ik in 1 tekstvak gegevens uit verschillende kolommen wil halen.
is een heel slecht idee. Ik weet niet precies wat je daar mee bedoelt, maar dat gaat doorgaans niet lekker werken. Als je de db goed hebt opgezet, zou het ook niet hoeven. Volgens mij wordt het tijd voor een voorbeeldje met wat dummydata :).
Heb je trouwens een Enter toets die na een x-aantal tekens automatisch in werking treedt? Er is ruimte zat in de tekstvakken om door te typen :D.
 
Laatst bewerkt:
Ik ben nog niet veel situaties tegengekomen die je niet in Access kan maken, en jouw situatie valt daar, op basis van jouw informatie, zeker niet onder :).
Je uitgangspositie is niet geweldig; als ik een database maak, is de laatste stap het maken van formulieren. Jij bent er zo te zien mee begonnen :). Niet handig.

Ik ben inderdaad gewoon experimenteel begonnen en gaan kijken wat de mogelijkheden zijn en tegen welke "problemen" ik aan zou lopen. Heb een soortgelijk document in Excel (met VBA en formulieren) gemaakt, en vanuit die ervaring ben ik in Access begonnen. Got off on the wrong foot :shocked:. Gelukkig heb ik nog niet echt een enorm gevulde database, dus dat deze de prullenbak in gaat vind ik niet zo'n groot probleem.

Ik durf er wel wat onder te verwedden dat geen enkel project alle activiteiten vraagt, en op zeker dat niet alleprojecten aan alle activiteiten hangen.

Deze weddenschap ga ik inderdaad keihard verliezen :D

Dit:

is een heel slecht idee. Ik weet niet precies wat je daar mee bedoelt, maar dat gaat doorgaans niet lekker werken. Als je de db goed hebt opgezet, zou het ook niet hoeven.

Ik begrijp je. Dit komt nog uit mijn ervaring met Excel, waarmee ik met een formule de inhoud van een cel (en dus een label/tekstvak) in een formulier) wel kan laten afhangen van meerdere gegevens (ALS is een door mij veel gebruikte formule).

Ik heb nog steeds plezier in het vinden van een oplossing en het zien van resultaten in Access, en denk dat ik met een beetje hulp echt een leuke vooruitgang zal gaan boeken!

Ik wilde een bijlage van een gestripte versie van mijn document toevoegen, maar dit krijg ik niet voor elkaar. Deze vast zal aantonen dat er nog enkele opdelingen plaats zullen moeten vinden in de hoofdtabel (Projecten). Hierin staan namelijk de werkzaamheden, medewerkers en data die ik in een aparte tabel zou moeten plaatsen. De relaties er aan hangen is voor mij nog wel een lastig dingetje...
 
In Access heb je ook een IF functie (die heet dan IIF) dus samenvoegen van gegevens in een tekstvak kan best. Ik gebruik dat bijvoorbeeld om in rapporten een brief aanhef te maken. Daarbij wil je de gegevens netjes laten aansluiten, en niet drie losse tekstvakken (voornaam, tussenvoegsel en achternaam) naast elkaar zetten, want dan krijg je hele rare gaten. Dus dan gebruik je een IIF om de gegevens te combineren. Als je dát bedoelde, dan is het dus géén slecht idee :).

Een database kun je wel posten, maar je moet hem eerst zippen. Het Accdb bestand kun je namelijk niet uploaden.
 
Bij deze mijn document in de bijlage.

Het samenvoegen is een heel goed idee! Ik heb nu namelijk wel 3 tekstvakken voor namen e.d.
Dit ga ik sowieso toepassen :)

Ben benieuwd Hoe ik er uit ga komen als ik alle gegevens afzonderlijk in tabellen ga stoppen...
 

Bijlagen

  • Access.zip
    523,7 KB · Weergaven: 36
Heb er nog geen tijd voor gehad, maar zal er dit weekend naar kijken!
 
Ben nog druk aan het prutsen, maar dit lukt me nog niet.

Alle data waarvan ik weet dat het goed gaat klop ik er gewoon in :)
 
Heb nog niet gekeken, maar vanavond heb ik wel even tijd.
 
Dien ik nu de medewerkers in de tabel "projecten" te zetten en aan deze medewerkers de werkzaamheden (en data) te koppelen?

Verschillende dingen geprobeerd, maar een goed query krijg ik nog niet. D.w.z:

Hoofdformulier "Medewerker"
- Alleen de naam is voldoende

Sub formulier "Werkzaamheden"
- Projectnummer
- Werkzaamheden
- Begin- en einddatum
- Gereedmelding

In het subformulier dan dus ook alleen maar de orders en werkzaamheden waar de medewerker op gepland staat.

Het lijkt zo eenvoudig en dat zal het ook vast zijn, maar ik zal wel te moeilijk denken...
 
Tuurlijk, ik zit weer in een iets rustiger vaarwater. Kun je een nieuwe db posten met de huidige stand van zaken?
 
Uiteraard kan ik even de stand van zaken sturen. Als ik vanavond thuis ben, zal ik dit even doen. Bedankt alvast!
 
Bij deze het bestand.

Ik kan de werkzaamheden nog niet koppelen aan de orders :( Ik heb een koppeltabel aangemaakt waar ik de één-op-veel relaties mee creëer, maar ik denk dat daar iets mis gaat. Heb een versie gehad waar ik dacht dat het werkte, maar toen nam hij de klantnamen niet mee in de tabellen.

Randzaken ben ik in aparte documentjes aan het maken en testen en dat gaat allemaal prima. Dit is het enige waar ik niet uitkom...

Ik hoop dat je me een duwtje in de goede richting kan geven...
 

Bijlagen

  • Planning3000.zip
    101,5 KB · Weergaven: 37
Ik ben een stuk verder gekomen, maar loop nog tegen enkele fouten aan. Ik denk dat de relaties niet goed staan in het document. De problemen waar ik nu nog tegen aan loop hebben volgens mij ook met elkaar te maken:

- Tabel werkzaamheden: In plaats van het projectnummer, wordt het projectID weergegeven (volgens mij relatie wel gekoppeld aan projectnummer)
- Tabel projecten: In plaats van het projectnummer, wordt het projectID weergegeven (volgens mij relatie wel gekoppeld aan projectnummer)
- Query openstaande werkzaamheden: In plaats van het projectnummer, wordt het projectID weergegeven (volgens mij relatie wel gekoppeld aan projectnummer)
- Query openstaande werkzaamheden: Klantnaam wordt niet weergegeven, maar waarde is 0

Vanzelfsprekend hebben de overige queries m.b.t. werkzaamheden hetzelfde "probleem".

Volgens mij ben ik dicht bij de oplossing, maar ik weet het even niet meer... HELP :eek:
 

Bijlagen

  • Planning_TEST.zip
    1,1 MB · Weergaven: 34
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan