Zoeken vanuit subform voor juiste record in hoofdform

  • Onderwerp starter Onderwerp starter OBADE
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

OBADE

Gebruiker
Lid geworden
9 feb 2016
Berichten
95
Hallo,
Ik ben een ongelofelijke houtje-touwtje access-programmeur. Ik werk al sinds 1997 met MS Access en heb een inmiddels grote applicatie gemaakt met een nog grotere database ten behoeve van mijn werk. Maar ik heb me nooit structureel in Access verdiept. Ik ben gewoon begonnen en mijn applicatie steeds uitgebreid. kwam ik iets tegen wat niet werkte dan probeerde ik net zo lang van alles uit tot het wel werkte (zonder eigenlijk écht te weten waarom het dán wel werkte).
Dus; bepaald geen doorgronde kennis van zaken...

En nu loop ik tegen een probleem aan dat waarschijnlijk voor jullie appeltje eitje is, maar ik kom er niet uit.

Ik heb een hoofdformulier waarin een query is geopend. Eén van de velden van die query is een groot tekstvak die ik per record heb gevuld met allerlei tags. Deze tags zijn natuurlijk niet uniek in de betekenis van dat meerdere records eenzelfde tag of dezelfde tags kunnen hebben.

Om op tags te kunnen zoeken naar de records waar deze in voorkomen had ik dus gedacht aan een doorlopend subformulier met een eigen query. Uiteraard is de tabel voor deze query dezelfde als die van de query van het hoofdformulier. Alleen in deze (zoek-)query heb ik dan bij het tag-veld het criterium Like "*" & [Type een zoekterm in:] & "*" opgenomen.
In het subformulier werkt dit query prima om een lijstje van alle records te krijgen waar als tag die zoekterm in voor komt. En in dit subform had ik dan naast elk van die geselcteerde records een button geplaatst. Het was de bedoeling om met een druk op de knop náást het door mij bedoelde record in het hoofdformulier automatisch dit record te selecteren en het subformulier te sluiten. De focus komt dan automatisch weer op het hoofdformulier met het bedoelde record in beeld.

Alleen: ik weet ff niet hoe ik in de formulieren op de opdracht moet opgeven om "ID" van het bedoelde record ín de subformulier-query moet doorgeven aan de query van het hoofdformulier zodat deze in het hoofdformulier kan worden geselcteerd.

Ik hoop dat ik mijn vraag duidelijk heb gemaakt. Ik kom er niet uit maar ik heb het gevoel dat dit voor iemand die dit programma écht gestructureerd heeft geleerd vrij simpel moet zijn.

Ik hoor heel graag.


Met vriendelijke groet,
OBADE
 
Laatst bewerkt:
Ik snap je gebruik van het woord 'subformulier' niet helemaal, want een subformulier op een hoofdformulier kun je niet sluiten. Dus hoe zit dat?
Overigens zou ik voor het zoeken een filter gebruiken (keuzelijst, tekstvak) dat 'live' op
je formulier filtert.
 
Het is geen subformulier. Verkeerde woordkeuze. Vanuit het hoofdformulier open je nog een formulier van waaruit kan worden gezocht. Na het zoeken kan dit formulier dus ook weer worden gesloten want het is dan niet meer nodig. Dat is wat ik bedoel.
Volgens mij gaat werken met een keuzelijst of tekstvak niet bij het zoeken op tags omdat je dan wildcards moet gebruiken. En daarnaast wil ik graag eerst een soort overzichtje van alle records die aan het zoekcriterium voldoen en daaruit vervolgens een keuze maken.

Zie de onderstaande schermafbeelding. Rechts is het hoofdformulier met bovenin het zoekblok. Op een tweetal veelvoorkomende argumenten kan ik inderdaad zoeken met een keuzelijst. Maar voor zoeken op tags lijkt mij meer nodig dan dat. Bijvoorbeeld ik wil alle records op een rijtje die allemaal de tag "zeevaarder" hebben. Als je op het vergrootglas drukt opent zich het linker formulier. In de bijbehorende query is een inputbox opgenomen en daarin had ik al "zeevaarder' ingetoetst waarnaar het onderstaande scherm het resultaat is.

Access-scherm.jpg

Stel dat ik in het linkerscherm geïnteresseerd ben in een ander record dat diezelfde tag heeft zou ik graag op de naastgelegen button"( met de uitgestoken wijsvinger) liggen drukken zodat in het rechter formulier dit record opgezocht en aansluitend het linkerscherm wordt gesloten. Alleen weet ik niet hoe de ID van een record in de query van het linkerformulier doorgegeven kan worden naar de query van het rechterformulier.

Ik hoop dat ik het heb kunnen verduidelijken en hoor weer graag.
 
Je gebruikt inderdaad een pop-up formulier als zoekformulier, en dat kan best werken. Maar daarin gebruik je ook wildcards, dus dat maakt niet zoveel uit. Vandaar mijn voorkeur voor een tekstvak op het hoofdformulier omdat je code zoveel simpeler wordt. Zo te zien is de layout in een oudere versie gemaakt. Als je de db hebt omgezet naar 2007+ kun je TempVars gebruiken.
 
De reden dat ik heb gekozen voor een popup is dat ik dan een lijst krijg van alle records die aan het zoekcriterium voldoen, en dat ik dan daar een keuze uit kan maken. Dat kan naar mijn weten met een tekstvak niet.

Of toch wel?
 
Ik gebruik daarvoor een Keuzelijst (al dan niet met invoervak). Bij grote lijsten (lees: veel records) gebruik ik een tekstvak om de keuzelijst 'live' te filteren. dan typ je een aantal letters en wordt de keuze in de keuzelijst snel kleiner. Maar op een doorlopend formulier gebruik ik veel vaker een tekstvak om direct op het formulier te filteren. Een losse keuzelijst (eventueel met tekstvak) gebruik ik eigenlijk alleen op een enkelvoudig formulier.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan