ACCESS VBA: Zoeken op trefwoord in document(en)

Status
Niet open voor verdere reacties.

fde

Gebruiker
Lid geworden
31 aug 2017
Berichten
110
Ik heb een zoekformulier (frm_zoeken - enkelvoudig) gemaakt.
zoeken.PNG
Als je daar een trefwoord op invult zou deze dienen te zoeken in 2 vastgestelde mappen waarin alle documenten zijn opgeslagen.
Mapnamen: \\CV VDAB (6.152 documenten) en \\CV Eigen (7306 documenten).
Merk op dat je op 1 à 2 trefwoorden kan zoeken (EN/OF). De zoekfunctie mag niet hoofdletter gevoelig zijn.

Het resultaat wordt weergegeven op een ander formulier: frm_zoeken_resultaat (doorlopend formulier) zoeken_resultaat.PNG.
Dit gesorteerd op datum (het jongste document bovenaan) - Als je op de recordselector drukt gaat het desbetreffende document open.
Het resultaat dient niet opgeslagen te worden in een tabel

Ik heb her en der al aan het zoeken geweest achter vba-code, doch heb niets afdoend kunnen vinden.

Kan iemand me hiermee op weg helpen aub?
 
Laatst bewerkt:
Lijkt mij allemaal niet zo moeilijk, maar ik zou zeggen: doe er vooral een voorbeeldje met de formulieren bij, want ik sta niet te popelen om daar ook nog tijd in te moeten steken.
De oplossing ligt trouwens in een loop op basis van het DIR commando waarmee je een string vult. Zelf zou ik daar trouwens geen extra formulier bij gebruiken, maar de zoekvelden in de koptekst zetten en het resultaat in een keuzelijst. Die je dan weer met een klik actie kan uitrusten om het gewenste document te openen.
 
Ik heb naar je bestandje gekeken, maar ik snap iets niet helemaal. Of eigenlijk: helemaal niet.
Het resultaat dient niet opgeslagen te worden in een tabel
Dat kán wel, maar is een beetje lastig omdat je dan met een virtuele recordset moet gaan werken. En die ben je uiteraard kwijt zodra je het formulier afsluit. Je hebt dan in ieder geval een verwijzing naar de ADO bibliotheek nodig, anders werkt dat niet.
Je zult de lijst ook elke keer opnieuw moeten inlezen, en dat kost tijd. Mij lijkt het beter om met een (tijdelijke) tabel te werken die je dan vult vanuit het formulier. In dat geval is het formulier altijd gekoppeld aan die tijdelijke tabel en kun je de lijst dus sneller openen als het inlezen niet elke keer opnieuw noodzakelijk is. En dat is een stuk sneller.
Alternatief voor een virtuele tabel is dus geen doorlopend formulier gebruiken, maar een keuzelijst. die kun je (ongeveer op dezelfde manier) vullen en die werkt dus prima zonder ADO. En dat maakt het formulier wat sneller en netter. Ook het openen van de documenten is makkelijker te realiseren omdat een keuzelijst van zichzelf een Click event heeft, en een formulier niet. Daarvoor moet je dus óók al iets extras maken.
 
OK met die tijdelijke tabel, dat begrijp ik.
Doch dagdagelijks komen er documenten bij. Stel dat je na 14d toevallig eenzelfde trefwoord(en)-zoekopdracht ingeeft. Zover ik het begrepen heb wordt de data opgehaald uit de tijdelijke tabel. Wat met nieuwe documenten die er ondertussen zijn bijgekomen en waar er enkelen kunnen tussen zitten met dezelfde trefwoord(en)-zoekopdracht? Of wordt deze tijdelijke tabel telkens geleegd?

Jou andere mogelijkheid: Het mag eveneens een keuzelijst zijn. Wat het eenvoudigst lijkt en toch werkbaar is. Nader bekeken geen slecht idee.
 
Laatst bewerkt:
Een tijdelijke tabel maak je het beste eerst leeg als je een nieuwe opdracht geeft, o.a. vanwege het door jou aangedragen probleem dat je dubbelingen gaat krijgen. En dat wil je uiteraard niet. Een virtuele tabel heeft dat probleem uiteraard niet, want die bestaat na afloop niet meer.
Ik was al begonnen met het aanpassen van jouw voorbeeldje, met een virtuele tabel, maar dat kost uiteraard enige tijd, dus ik heb af en toe het werk voor de baas ook enige voorrang moeten geven. Ik zal kijken of ik het voorbeeldje vanavond verder af kan krijgen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan