dinsdag 1 december 2009

Records zoeken via keuzelijst zonder macro's in ooBase

Soms kan het handig zijn, om dmv een keuzelijst de gegevens van je klanten terug te vinden.

Hoe gaan we te werk:

1. Maak een nieuwe database 'Klanten'.

2. Maak daarin volgende tabellen met volgende velden:

-tblKlanten:-ID: INTEGER(10),Autowaarde aan, (Primaire sleutel)
-Naam: VARCHAR(30)
-Voornaam: VARCHAR(30)
-Telefoon: NUMMERIC(9)

-Dummy:-ID: INTEGER(10), Autowaarde géén, (Primaire sleutel)
-Dummy: VARCHAR(30)


In tabel 'Dummy' maken we één record aan, dus voeg manueel in de velden 'ID' en 'Dummy' de volgende gegevens toe: 1, dummytekst.

De tabel 'Dummy' is eigenlijk een trukje, want deze heeft enkel de functie om het veld'Dummy.ID' in het hoofdformulier straks te verbinden met de 'tblKlanten.ID'.
Verder wordt er niets gedaan met de tabel 'Dummy'.

3.Voer nu enkele namen, voornamen en telefoonnrs. in de tabel 'tblKlanten'.



4.Nu gaan we een query maken van 'tblKlanten', die ervoor zal zorgen dat de velden 'Naam' en 'Voornaam' samen zullen weergegeven worden in de keuzelijst.
OPGELET: Zorg wel de het nieuw aangemaakte veld in de query vooraan staat, en dan pas de 'ID'.




Voor meer details om ivm deze handeling verwijs ik je naar een ander bericht.

5. Maak een formulier aan via de assistent.
Gebruik als tabel voor het hoofdformulier 'Dummy'. selekteer alle velden en voeg ze toe(nadat het formulier is aangemaakt worden deze velden manueel gewist, daar we toch geen gegevens zullen toevoegen aan het hoofdformulier).



6. Bij de volgende stap gaan we een subformulier toevoegen, met als optie 'Subformulier gebaseerd op handmatige selectie van velden.'

7. Bij de volgende stap selecteren we 'tblKlanten' en voegen we volgende velden toe:

-ID
-Naam
-Voornaam
-Telefoon



8. Selecteer de gebonden velden (ID) van beide tabellen, links vind je de velden van het subformulier (tblKlanten), en rechts vh hoofdformulier (Dummy).




9. Voor het schikken vd besturingselementen, zie afbeelding hieronder.



10. Bij de volgende stap kies je de optie 'Het formulier moet alle gegevens weergeven' bij de volgende stap ivm layout laat ik u de vrije keuze, klikdaarna op voltooien.
Je formulier zou er nu zo moeten uitzien ongeveer:



11. Open nu je formulier in de ontwerpweergave Verwijder nu de velden+labels 'ID' en 'Dummy'. Dit doe je door deze aan te klikken en op [Del] te drukken van je toetsenbord.

12.Klik op de optie keuzelijst.
Je kunt nu een keuzelijst 'tekenen' door met je muis-cursor in het formulier te slepen (dit ter grootte ve tekstvak ongeveer), en klik rechts op de keuzelijst, kies daaruit 'Besturingselement...'. Dit opent het eigenschappenvenster vd 'keuzelijst'.



13. Stel volgende gegevens in:

-gegevensveld: ID (dit is van tabel 'Dummy')
-Type lijstinhoud: Query
-Lijstinhoud: qryNaamKlant

14. Open nu de formnavigator.




15. Klik nu met de rechtermuisknop op het subformulier in de navigator om de eigenschappen op te vragen, en kontroleer of de hoofdvelden en slavevelden op 'ID' staan ingesteld. Dit koppelt de tabel 'tblKlanten' vh subformulier aan de tabel 'Dummy' vh hoofdformulier, waarbij in het hoofdformulier de tabel 'Dummy' gekoppeld is aan de 'qryNaamKlant' vd keuzelijst.




16. Vraag nu ook de eigenschappen op van het hoofdformulier via de navigator, en verander de instelling 'Toevoegen toestaan' op Nee.



17. Sla nu je formulier op en sluit deze.

17. Wanneer je formulier opnieuw opstart in het hoofdvenster van ooBase, zou je nu volgend resltaat moeten krijgen:




Wanneer je nu een naam selekteerd in de keuzelijst en het formulier herlaad, om de wijzigingen toe te passen, worden alle gegevens getoond vh betreffende record.
Uiteraard kan je wat aanpassingen doorvoeren, vb. een knop toevoegen om het formulier te herladen ofwel een Macro maken die dit automatisch het formulier herlaad wanneer je een naam selecteert in de keuzelijst.

Succes!

Geen opmerkingen:

Een reactie posten