Hoi,
Ik snap niet direct de bedoeling van het toevoegen van code in je laatste post. We waren toch al veel
verder(!?)
Even terug naar je voorlaatste post.
Wat ik nu merk is dat ik nu de 3 zoekvelden moet invullen om de gegevens te zien.
Kan dit ook met 1 of meerdere zoekvelden
Het is duidelijk dat je met een standaard CommandText kan werken (al dan niet met variabelen) als je telkens hetzelfde type opvraging wil doen.
Voor elk
afwijkend type opvraging heb je vanzelfsprekend een andere opbouw nodig van die CommandText.
Dat wil nog niet zeggen dat je die daarom telkens in je code moet herschrijven.
Ik heb een voorbeeldje gemaakt met 3 mogelijke maar geen enkele verplichte keuze, en vervolgens wordt de CommandText door vba zelf opgebouwd, afhankelijk van de vraag voor welk veld al dan niet een waarde is ingevuld.
Commandtext is m.a.w. een variabele geworden die ik 'opdracht' heb genoemd, en meteen ook maar de database als variabele genomen.
Hierbij dus een Excel- en een Access-bestand. Om er mee te spelen dien je ze enkel in dezelfde map op te slaan, welke heeft geen belang.
Wees gerust, ik ben nog steeds niet op mijn hoofd gevallen: de fictieve gegevens in de tabel (500 records) zijn door de pc gemaakt!
Voor de lol laat ik de gebruiker ook kiezen waar de import heen moet.
In de vba-code staat nog enkel letterlijk welke velden je in het resultaat wil krijgen (select ...) Zowel de namen van de zoekvelden als de waarden (where ... = ...) zitten vervolgens in variabelen. Dat houdt in dat kolom A op "keuzes" de exacte veldnamen moet bevatten zoals in de database!
Dit Excel-voorbeeld zal je ook kunnen laten werken met je eigen database! Ongetwijfeld vind je zelf wel de paar zaken die je daarvoor in de code moet wijzigen. Zoniet: vergeet eventueel de variabelen db_bron en sql_bron, en vervang enkel de regel "With ActiveSheet...QueryTable" door degene waar je nu al mee werkt.
Succes!
pitufo