Formulier filteren (Access 2007)

Status
Niet open voor verdere reacties.

wilcovi

Gebruiker
Lid geworden
13 jun 2012
Berichten
7
Ik probeer al een geruime tijd resultaten in formulier te rangschikken naar mijn wens. Helaas lukt me dit nog niet. Ik heb al diverse andere forumberichten gelezen en het internet afgespeurd maar ik kom er nog niet uit.

Wat is nu de situatie? ik heb de volgende databases: onderdelendatabase (hoofddatabase), voorraaddatabase en een leveranciersdatabase. Ik wil nu in mijn formulier op basis van de onderdelendatabase de voorraad en de leveranciers tonen. Nu lukt me dat wel met formulier en subformulieren. Maar nu wil ik deze lijst met onderdelen in een tabelvorm tonen zodat ik een overzicht heb van alle onderdelen en hier doorheen kan scrollen. Verder, en nu komt het belangrijkste, ben ik op zoek naar een zoekfunctie die in de tabel met onderdelen, de tabel filtert tot een gelimiteerde hoeveelheid onderdelen welke voldoet aan de opgegeven zoekcriteria. Deze zoekcriteria dient dan te worden ingevuld in een leeg tekstvak in de koptekst. Uiteraard moeten de subformulieren de vervolgens geselecteerde rij in de onderdelendatabase ook de juiste informatie bevatten.

Het verschil met wat ik op internet vind en wat ik graag zou willen is dat (1) ik alles in 1 formulier wil houden voor het houden van overzicht en (2) er op basis van een zoekcriteria meerdere onderdelen mogelijk zijn welke voldoen aan de opgegeven zoekcriteria.

Ik ben beperkt bekend met macro's/vba. Hopelijk zijn er mensen die mij uit de brand kunnen helpen want ik kom er echt niet uit.

Ik heb het access 2007 document toegevoegd.
Bekijk bijlage Onderdelendatabase.rar
 
Bedoel je zoiets?
 

Bijlagen

OctaFish, Hartelijk dank voor je snelle reactie en hulp.
De zoekfunctie is inderdaad iets waar ik naar op zoek ben. Daarvoor mijn dank. Het probleem wat ik nu nog wel ondervind is dat ik nu geen subformulier kan gebruiken omdat het een doorlopend formulier is. Hoe kan ik dit oplossen om toch in mijn situatie de verschillende leveranciers/voorraadlocaties zichtbaar te maken?
 
Ik snap je probleem niet helemaal; een subformulier is meestal een doorlopend formulier. Dus waar ligt dan het probleem? Ik kan je db overigens pas vanavond bekijken, i.v.m. de versie.
 
Ik zal het proberen uit te leggen, als je de database ziet dan snap je trouwens meteen wat ik bedoel.

Ik wil in een formulier 3 resultaten weergeven:
1 een lijst (afkomstig uit een tabel) met onderdelen met de daarbij diverse eigenschappen zoals type/merk
2 een lijst (afkomstig uit een tabel) met voorraadlocaties voor ieder specifiek onderdeel. Ieder onderdeel kan diverse voorraadlocaties hebben waar dit product is opgeslagen. Dus deze lijst is dus gekoppeld met een relatie aan de onderdelenlijst.
3 een lijst (afkomstig uit een tabel) met mogelijke leveranciers welke het onderdeel kunnen leveren.

De lijst met voorraadlocaties en leveranciers zijn bij mij subformulieren.

Nu wil ik dus zoeken in de lijst met onderdelen (Daar heb je me inmiddels al heel veel mee geholpen)
Hopelijk ben ik zo iets duidelijker
 
Het blijft mistig: dat wordt dus vanavond. Nu maar hopen dat de wedstrijd snel voorbij is :)
 
Er klopt iets niet in je tabellen; je hebt een Voorraad tabel met zo'n 100 artikelen, en een Onderdelen tabel met 29 artikelen. Dat klopt dus niet; in Voorraad mogen geen artikelen staan die niet in Onderdelen staan. Je kunt ook geen koppeling maken tussen die twee tabellen, want daarvoor moet toch gelden dat in je koppeltabel (Vooraad) geen artikelen staan die niet in je hoofdtabel (Onderdelen) aanwezig zijn.
 
Ik heb de tabellen behoorlijk ingekort (ivm grootte) en zijn in werkelijkheid erg groot (500-1000 rijen) en kloppen dan wel. Ik kan het mis hebben maar nu werkt toch het formulier zoals het hoort? de hoofdtabel (onderdelen) bepaalt welk product zichtbaar moet worden in de koppeltabel (voorraad). Dit probleem wordt overigens opgelost wanneer ik de complete tabellen gebruik.
 
Als je een voorbeeld post, helpt het als in ieder geval de structuur ervan klopt met je productie omgeving; relaties zijn daar bijvoorbeeld een onderdeel van, en kloppende gegevens ook. We hebben uiteraard niet de hele db nodig, maar kloppende tabellen scheelt ons een hoop werk. Misschien dat je het voorbeeld nog kan aanpassen?
 
Ik begrijp nu wat je bedoeld. Door het knippen/snijden in de orginele database zijn er een aantal dingen weggevallen, zo ook de relaties tussen de tabellen. in de bijlage zie je weer de database zoals deze hoort te zijn.

In het formulier 'onderdelen' zie je de button 'zoeken'. Deze werkt wel maar is niet zoals ik het wil. Ik zoek namelijk iets waarbij de gegevens over de onderdelen (omschrijving, merk, type, etc.) in een tabelvorm worden weergegeven (dus niet zoals nu maar echt in een tabel om overzicht te hebben tijdens het zoeken) met daarbij een zoekfunctie zoals je mij die al hebt gestuurd
+ dat de twee tabellen voorraad en leveranciers zichtbaar zijn in het formulier.
Dus eigenlijk zoek ik hetgeen wat je mij hebt gestuurd maar nu ook met de zichtbaarheid van de twee andere tabellen op 1 formulier. Selecteer ik dus op basis van mijn zoekcriteria een onderdeel dan wil ik zien wat de voorraad is en wat de leveranciers zijn. Bekijk bijlage Onderdelendatabase.rar
 
Als je het formulier Onderdelen probeert om te zetten naar een doorlopend formulier, dan geeft Access zelf al aan wat er aan de hand is: je kunt een doorlopend formulier niet op een doorlopend formulier zetten; het hoofdformulier moet dus een enkelvoudig formulier zijn. Daarmee is je hoofdvraag eigenlijk beantwoord: wat je wilt, kan niet. En je zult daar dus ook geen oplossing voor vinden, al zoek je tot Sint Juttemis door op het internet.
Maar er is een workaround ;)
 

Bijlagen

Ik zie dat je een stukje SQL code gebruikt om een tabel te laden. Het probleem is vervolgens dat ik de gegevens in de tabel niet meer kan wijzigen. Ik vraag me nu wel 1 ding af en dat is het volgende:
Is het mogelijk om vanuit een doorlopend formulier, waar ik dus een zoekfunctie in heb, een onderdeel te selecteren en wanneer ik dit onderdeel selecteer (dubbelklik) er een nieuw formulier wordt geopend waarin ik de informatie vindt over dit specifieke onderdeel (voorraad, leveranciers)? Hiermee kan ik dan toch mijn beoogde doel behalen (namelijk de lijst met onderdelen filteren en toch eenvoudig de gerelateerde informatie zoals de voorraad bekijken.
 
Je kunt, zoals ik al zei, op een subformulier geen ander subformulier zetten. wat je zou kunnen doen, is van alle formulieren een doorlopend formulier maken, en die vervolgens op een niet-gebonden formulier zetten. Het formulier Onderdelen (zoals je dat nu hebt) krijgt dus geen recordbron, en op het formulier zet je de drie subformulieren neer. Je kunt dan dus geen subformulier meer aan het hoofdformulier koppelen, want dat kan alleen met een enkelvoudig formulier en subformulieren. Je zult de filters op de andere subformulieren dan met vba moeten doen.
Of, veruit de makkelijkste oplossing (en waarom zou je die niet gebruiken als je de noodzakelijke technieken voor de andere methodes niet beheerst) is natuurlijk om het hoofdformulier op Onderdelen te baseren met een Enkelvoudig formulier, en de twee subformulieren doorlopend te maken.
 
De laatste manier blijft nog erg wazig voor mij. Kun je hiervoor een klein voorbeeld geven in access?
 
De laatstse methode zit in het voorbeeldje. Daar heb ik weliswaar een keuzelijst op gezet om te laten zien hoe je initiële idee kan werken, maar dat is dus ook niet wat je wilt. Het formulier zelf is nog steeds gebaseerd op een enkelvoudig formulier, alleen zijn de velden op het hoofdformulier onzichtbaar gemaakt. Kwestie van die dus weer zichtbaar maken, en de keuzelijst er uit halen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan