Zoekfunctie in formulier

Status
Niet open voor verdere reacties.

Snotsnot

Gebruiker
Lid geworden
6 mrt 2005
Berichten
20
Hallo iedereen,

Ik heb een vraag. Allereerst: ik gebruik Access '03 en ben niet al te ervaren hierin.

Ik heb een formulier gemaakt, waar in verschillende dingen kunnen worden ingevuld (naam, geslacht leeftijd etc). Ook zitten er tabbladen in het formulier die gelinked zijn aan verschillende tabellen.
Ik wil eigenlijk een functie invoegen die zorgt dat ingevoerde data op het formulier weer terug te halen is. Nu heb ik een "zoekknop" in het formulier gedaan, maar krijg ik de melding: "Zoeken of vervangen kan niet worden gebruikt".

Heeft iemand tips hoe ik deze melding kan verhelpen, of dat er een andere manier is waarop de data terug te halen is in een formulier? Een keuzelijst met invoervak lukt ook niet namelijk.

Alvast bedankt,

Gr. Sjors
 
Zet in de kop van het formulier een keuzelijst met invoervak en volg de instructie van de wizard. Dan wordt het automatish voor je aangemaakt.
 
Bedankt voor je reactie,

Ik heb als bijlage een printscreen gedaan hoe het er ongeveer uit ziet. Ik heb boven in de kop van het formulier zo'n keuzelijst gezet. Hierin kan ik inderdaad nummers selecteren, maar wanneer ik die selecteer, krijg ik in het midden van het formulier niet bijbehorend nummer, naam, geslacht, etc. Het werkt dus niet.

Misschien een andere tip?

voorbeeld.JPG
 
Dat kan wel kloppen denk ik. Ik heb er niet aan gedacht dat in je formulier Tabbladen staan waarop subformulieren staan. Kun je een voorbeeld plaatsen van je database zonder gevoelige informatie, maar wel met wat testinformatie?
 
Ik snap niet helemaal wat je bedoelt. Baseline, maand 1, maand 2 etc. zijn allemaal subformulieren met allemaal aparte, bijbehorende tabellen.Al de dingen die staan in tabblad algemeen (naam etc) die staan in een andere tabel; in totaal dus 7 tabellen. De bedoeling is dus dat ik wanneer ik de database bijvoorbeeld afsluit en weer opnieuw open, dat ik dan Piet precies (uit voorbeeld) weer kan opzoeken, en bijvoorbeeld maand 2 kan invullen die bij Piet is gemeten.






1.JPG2.JPG
 
Misschien dat een voorbeeldje van de db toch wel handig is. Want wat je wilt is toch afhankelijk van de structuur van de db en het formulier. Om een zoeklijst te kunnen gebruiken om één persoon op te zoeken kun je volgens mij de wizard wel gebruiken, als je als bron voor het hoofdformulier (de eerste tab vermoed ik) een opgeslagen query, of een tabel gebruikt. Als je als Recorbron voor het formulier een SQL string gebruikt (als de recordbron dus met de tekst SELECT begint) kun je geen opzoeklijst baseren op het formulier.
Nogmaals: om je beter te kunnen helpen, is een testbestandje meer dan welkom... En dan ook nog in mijn favoriete versie :)
 
Ik heb een blanco DB gemaakt... dat is alleen 1.6 mb en kan niet op de site.. Hoe gaan we dit doen? :)
 
Database eerst comprimeren en daarna zippen. Naar aanleiding van de opmerking van Michel:

En dan ook nog in mijn favoriete versie :)

gaarne in versie 2003 plaatsen.
 
@Charles: dat zit wel goed, als je de eerste post leest! Als je de db niet onder de 100 kb krijgt, kun je hem met Winrar opsplitsen in stukken van 100kb.
 
Eerst maar even je db als één bestandje. Geen magie, maar gewoon de db <Comprimeren en Herstellen> en vervolgens zippen. Blijft-ie ruim onder de 100 kb...
Ga nu naar je probleem kijken!
 
Ok, een eerst blik geworpen! En ik ben eigenlijk een beetje confuus over de db opzet. Ik vermoed, dat je bij wilt houden hoe de gewichtsontwikkeling/groei van een patiënt zich ontwikkelt. En daarvoor heb je een paar ijkmomenten: de eerste basismeting, na één maand, twee maanden etc. tot 12 maanden. Wat ik niet snap, is waarom je daarvoor aparte tabellen hebt gemaakt. Niet alleen beperk je jezelf tot de tabellen die je nu hebt, de db wordt er ook enorm complex en stug door.
Meestal probeer je een db zo flexibel te maken. In jouw geval zou dat inhouden dat je één tabel hebt voor de meetgegevens, waarin je bijvoorbeeld een extra veld Meting opneemt, waarin je (bijvoorbeeld met een nummering, of anders een tekstaanduiding) aangeeft op welke meting een record betrekking heeft. Je hebt dan één tabel met patiëntgegevens, en één tabel met meetgegevens die je op basis van PatiëntID aan elkaar knoopt. Eventueel kun je nog een aparte tabel maken waarin je de verschillende meetperiodes benoemt, die je dan koppelt aan het veld Meting. Dit hele proces heet Normaliseren van een database, en het is misschien wel handig als je je daar eens in verdiept, want het is essentieel voor een goed werkende database.

In je huidige opzet, mocht je die willen vasthouden, heb je een principiële fout gemaakt waardoor het formulier nooit goed gaat werken. De fout is, dat je alle tabellen in één query hebt gezet, die je vervolgens onder het formulier hebt gehangen. Omdat je met verschillende tabellen werkt, en elk tabblad alleen de gegevens van zijn eigen tabel laat zien, zou je voor al die tabellen eigen formulieren moeten maken, die je vervolgens op de verschillende tabbladen zet. Je werkt dan dus met een hoofdformulier (patiëntgegevens) en subformulieren voor alle verschillende meettabellen. Deze subformulieren zijn dan op basis van het PatiëntID gekoppeld.
Nogmaals: deze constructie moet ik ten zeerste afraden.... Het is veel beter voor de db, en de overzichtelijkheid, als je één tabel hebt voor de metingen. Voor deze ene tabel maak je dan uiteraard ook een formulier dat dan aan het patiëntenformulier wordt gehangen als subformulier. Je ziet dan ook per patiënt in één oogopslag welke metingen er zijn geweest. Je kunt het formulier dan nog verder automatiseren door bijvoorbeeld uit te rekenen wanneer de volgende meting moet worden uitgevoerd. Daar kun je dan weer een herinnering aan hangen, zodat je heel simpel kunt zien welke patiënten er die week verwacht worden, of een herinneringskaart moeten krijgen. Om maar eens wat te noemen.
Als je wilt, wil ik die (basis) opzet wel voor je maken en posten.
 
hoi michel, dank voor al je hulp. Ik denk als jij een basis opzet wilt maken het mij enorm zal helpen.
ben benieuwd hoe een pro het doet!
 
Was precies het antwoord dat ik verwachtte ;) Ik was dus al begonnen. Zal zo snel mogelijk het voorbeeldje posten!
 
As if.... Hij is bijna klaar, maar ik heb er gisteren geen tijd voor gehad. Zal er vanavond de laatste loodjes aan breien!
 
Je verdient een lintje voor de meest geduldige TS van de maand :)
Ik heb 'm eigenlijk een beetje uit het oog verloren, en 'm zelfs verplaatst naar de map <Opgelost>... Jammer genoeg was-ie dat nog niet helemaal. Ik heb 'm net nog weer eens bekeken, en hij doet nog niet niet helemaal wat-ie moet doen. Als ik 'm nu post, dan ga je gelijk tegen problemen aanlopen bij het testen die je niet wilt zien, en waarschijnlijk ook niet kan oplossen, dus ik ga 'm toch wel afmaken.
Mag je de volgende keer best wel wat eerder aan de bel trekken overigens ;)
 
oke vooruit, ik wilde niet opdringerig zijn;)

Ben blij dat je er nog eens naar wilt kijken!!:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan