Hulp gevraagd met keuzelijst en filteren

Status
Niet open voor verdere reacties.

Phil56

Gebruiker
Lid geworden
29 jan 2013
Berichten
25
Beste Forumleden,

Ben niet alleen nieuw op dit forum maar ook acces is nieuw voor mij. heb intussen veel geleerd dankzij de cursus die ook op deze site staat.
Ik ben met acces begonnen omdat ik een simpele munten database wilde hebben maar helaas access is niet zo simpel voor mij.
Het probleem waar ik nu mee zit is: heb een zoekformulier gemaakt met daarop 3 keuzelijsten; land, sets en waarde. wil nu graag dat ik een land kies en dat ik in de keuzelijst alleen de waarde zie, en kan selecteren, die bij dat land horen. Ondanks dat ik pagina 8 en 9 diverse keren heb overgelezen en geprobeerd, en diverse forum artikelen heb door gespit wil het mij niet lukken. Vandaar dat ik nu toch jullie hulp wil inschakelen.
De complete d.base: http://www.mijnbestand.nl/Bestand-HCE8QB4FK7AE.zip
 
Allereerst welkom op het forum! Om welk formulier gaat het? De db crasht als je hem opent vanuit het startformulier, dus ik moet 'm een beetje voorzichtig bekijken...
 
Het zal wel om het formulier frmZoeken gaan. Probleem is: ik kan geen enkel formulier sluiten (openen gaat nog nèt) zonder dat Access crasht. Ik kan er dus niet zoveel mee.
 
Je database crasht nog steeds, dus daar ligt het niet aan. Ik vermoed dat je hem in een hogere versie hebt gemaakt, en dan opslaat als 2003 bestand. Dat gaat wel eens fout. Maakt niet uit, je vraag is nog niet helemaal duidelijk, dus dat eerst maar eens ophelderen!
heb een zoekformulier gemaakt met daarop 3 keuzelijsten; land, sets en waarde. wil nu graag dat ik een land kies en dat ik in de keuzelijst alleen de waarde zie, en kan selecteren, die bij dat land horen.
Ik zie inderdaad 3 keuzelijsten, Land, Sets en Waarde. In hoeverre heeft Sets hiermee te maken? En wat wil je precies zien in Waarde?
Verander in ieder geval de Rijbron van je keuzelijsten; die moet je niet baseren op dezelfde query als in het formulier. En die zou ik ook aanpassen, want de sleutelvelden die je met de keuzelijsten zou moeten ophalen (doe je nu niet) moeten ook in de query van het formulier zitten. Ik heb het dan over velden als [EurolandID].
De keuzelijst <ZoekOpLand> zou deze query moeten hebben:
Code:
SELECT EurolandID, Euroland FROM tblEuroLanden ORDER BY Euroland
Dat zijn 2 kolommen, waarvan de eerste kolom onzichtbaar is (breedte 0cm)
De keuzelijst <ZoekopWaarde> krijgt dan deze query:
Code:
SELECT RecID, Nominalewaarde FROM tblEuro WHERE (EurolandID=[Forms]![frmZoeken]![Zoekopland]);
Ook twee velden dus, waarvan de eerste onzichtbaar.
Om de tweede keuzelijst te verversen a.d.h.v. de eerste krijgt <ZoekOpLand> een extra opdracht:
Code:
Private Sub ZoekopLand_Click()
    Me.Zoekopwaarde.Requery
    ' De records filteren die overeenkomt met het besturingselement Euroland
    Me.Filter = "[Euroland] = '" & Me.Zoekopland.Column(1) & "'"
    Me.FilterOn = True
End Sub
Als je het veld [Euroland] aan de query van het formulier hebt toegevoegd, kun je de filtering als volgt aanpassen:
Code:
    Me.Filter = "[EurolandID] = " & Me.Zoekopland
Gebruik zowiezo als het even kan sleutelveldverwijzingen i./p.v. tekstverwijzingen naar velden die dubbele waarden kunnen bevatten.
Omdat ik e.e.a. niet kan testen vanwege het crashgevaar, hoop ik dat het werkt ;)
 
Hallo Michel,
Werk met office 2010 en acces slaat op in de standaard waarde. Heb verder geen keuze.
De keuzelijst sets heeft (voorlopig) niets met die andere twee te maken.

De bedoeling is: dat ik een land kan kiezen en in de keuzelijst waarde kan zien welke waarden bij dat land horen, en ook op deze kan kiezen. Bv. Kies Nederland en de waarden die er bij horen zijn 10, 5 en 2. Als ik dan 2 kies krijg ik alle records met de waarde 2 enz. Heb ik nu Duitsland en de waarden die daarbij horen zijn 0,50, 0,10 en 1 dan wil ik dus niet die van 10, 5 en 2 zien.

Alvast bedankt voor de uitleg, ga er mee aan de slag.

Heb nog wel een vraagje, hoe kan ik de database opslaan zodat het ook werkt op een andere pc
 
Goeie vraag.... Een db in Access 2010 gemaakt zou je zonder meer moeten kunnen exporteren naar 2003. Ik zie wel dat er allerlei plaatjes in zitten; die zou ik er in ieder geval zolang je nog aan het bouwen bent uitgooien. Wellicht dat je daarmee ook de crashes omzeilt.
Overigens kun je een 2010 beter op laten slaan in zijn eigen format (kun je in <Opties> regelen). En dan moet hij zeker (in ieder geval in 2010) in te lezen zijn.
 
Hoi Michel,

Heb de veranderingen doorgevoerd en het begint er op te lijken:) maar stuit nu op de volgende problemen.
De keuzelijst waarde geeft nu alle waarden bv. 10 x 2 euro dit zou 1 x moeten zijn zodat je 9 x kan bladeren
En als je een land hebt geselecteerd krijg inderdaad alle waarden te zien die bij dat land horen maar als ik dan een
waarde kies springt hij naar een ander land waar ook de waarde in voor komt en zet die in het formulier.

http://www.mijnbestand.nl/Bestand-PBCLSDNSVTHU.mdb deze zou goed moeten zijn:o
 
Ik snap niet helemaal wat je wilt; als ik in de tabel [tblEuro] kijk, zie ik voor Nederland 12 records, waaronder inderdaad 2 keer de waarde € 3,88 om maar een voorbeeldje te geven. Met de keuzelijst selecteer je dan ofwel record 19, ofwel record 30.
De db crasht nog steeds, dus ik kan niks opslaan verder. Wellicht dat hij in mijn 2010 wel wil draaien :)
 
Dat klopt met de tabel tblEuro. Ga je nu naar het formulier frmZoeken en je kiest voor nederland dan zie je bij de keuzelijst waarde ook twee keer die 3,88 staan.
En dat is nu net niet de bedoeling, stel je voor je hebt 100 x 3,88 en 100 x 2,00 dan wordt de keuzelijstwaarde wel heel erg lang.
Nu is het nog zo; Als ik op Belgie klik dan wordt netjes het formulier met de gegevens gevuld. Belgie heeft nog maar 1 waarde namelijk 3,88. dat geeft de keuzelijst waarde ook aan. Klik ik nu op die waarde van 3,88 wordt het formulier gevuld met gegevens van een ander land en ook dat is niet de bedoeling.
Hoop dat het zo wat duidelijk is maar ja zonder voorbeeld is het vaak abracadabra. Dus hoop ik maar dat ie wel onder jou 2010 normaal wil draaien:cool:
 
De vraag is: wat wil je met die waarde?
 
Neem Nederland als voorbeeld. Je hebt 10 x 10 euro, 15 x 5 euro en 50 x 2 euro. Nu wil ik graag dat je op 5 euro klikt dat alle 15 euro's gefilterd worden en dat je hier door heen kan bladeren zo ook met de 10 en 2 euro's, zonder dat je Nederland weer moet kiezen en dan een waarde. En dit geld natuurlijk voor elk land.
Tevens zou ik graag willen dat je zonder een land te kiezen kan zoeken op elke waarde, zodat je op 5 euro klikt niet de 15 die bij Nederland hoort maar van elk land, maar dit was voor mij de tweede fase. Omdat het allemaal in één keer gaat snap ik er helemaal niets meer van
 
Ik ging er vanuit dat je met drie keuzelijsten wilt kunnen filteren op één of meer van de keuzelijsten; dat één keuzelijst de andere filtert, ongeacht welke je als eerste kiest. Maar het veld Waarde is een beetje vreemde eend in de bijt, omdat het geen unieke bron heeft, zoals als de keuzelijst Landen. Ik vroeg me af wat je dan wilt zien in je formulier. Blijkt dan vermoedelijk toch alle records te zijn die voldoen aan Waarde?
 
Denk dat ik fase 2 dan maar moet vergeten, wilde ook een simpele database
 
Heb inmiddels een tabel gemaakt 'tblNominalewaarde' en gelinkt met de tabel tblEuro. Alles werkt weer naar behoren behalve het zoek formulier doet het niet meer.
Of ik krijg niets in de keuzelijst te zien of alleen het IDnr maar geen waarden. Al met al is het toch veel ingewikelder dan ik dacht:evil: Zou je mij nog een keer uit de brand willen helpen.
 
Beste,

Heb de db gestript en ik hoop natuurlijk dat hij nu wel te openen is.

Krijg het gewoon niet voorelkaar om de keuzelijsten op het zoekfrm goed te laten werken.
Wie wil er eens naar kijken en mij op de goede weg helpen
Oplossing van Michel werkte goed maar had toch beperkingen, heb dus een nieuwe tabel gemaakt met waarden, en zodoende werkt het allemaal niet meer.

Bekijk bijlage munten database1.zip
 
Na veel lezen op dit forum en puzzelen is het mij eindelijk gelukt om weer zover te komen als voorheen met de oplossingen van Michel.
Op naar het volgende probleem
 
Mag je 'm nog op <Opgelost> zetten. En wat was de oplossing die je hebt gebruikt?
 
SELECT RecID, Nominalewaarde FROM tblEuro WHERE (EurolandID=[Forms]![frmZoeken]![Zoekopland]); hier heb ik van gemaakt

SELECT DISTINCT tblNominalewaarde.NominalewaardeID, tblNominalewaarde.Waarde
FROM tblNominalewaarde INNER JOIN tblEuro ON tblNominalewaarde.NominalewaardeID = tblEuro.NominalewaardeID;

Na een tabel tblNominalewaarde te hebben gemaakt, werkte de vorige oplossing niet meer.
De rest is bijna het zelfde gebleven.
Nog bedankt voor je mee denken.

even een klein vraagje, hoe zet ik hier een slotje op??
 
In de blauwe balk bovenin heb je een knop waarmee je de status op Opgelost kunt zetten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan