Heb ik een dergelijk record in mijn database

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.680
Hallo,
Voor iedereen een prettige kerst toegewenst..
Tussen de kerststronken een de kroketten door, een access vraag...

Dit is zoals ik het nu doe... het werkt, maar het kan zeker veel eenvoudiger... alleen weet ik niet hoe

Ik heb een entry-field waarin ik een naam schrijf
Deze zoek ik via een sql op in een tabel
Ik tel hoeveel records dit oplevert
Heb ik er 0 dan open ik een form en maak er een aan
Heb ik er dan toon ik de eerste... stel de vraag of dit het record is van de persoon die ik in het entry-field stak
Is dit niet zo, dan toon ik een volgend formulier met de gegevens van een nieuwe persoon (met dezelfde naam) en stel opnieuw de vraag
enz
tot ik geen match vind en dan maak ik een nieuw record aan

Ik denk dat dit veel eenvoudiger kan... maar hoe?

Graag een handje

Bedankt

JP
 
Ik gebruik een zoekformulier met een aantal zoekvelden (naam, voornaam, nummer etc) waarmee een keuzelijst met persoonsgegevens wordt bijgewerkt als je 3 tekens hebt ingevoerd. Dus zodra je 3 (willekeurig geplaatste) letters van een naam invult, wordt de lijst gevuld met de personen die in de database voorkomen. Vervolgens kun je de lijst dan verder filteren door meer letters te typen (de db waarvoor ik dit gemaakt heb is best groot) of je kiest een persoon uit de lijst. Als je dan op een naam klikt in de lijst, wordt het klantenformulier geopend. Zit de persoon die je zoekt er niet tussen, dan is de logische conclusie dat de persoon nog niet bestaat, en kun je met en knop een nieuwe persoon aanmaken.
De afdeling waar ik dat voor gemaakt heb, is er heel enthousiast over.
 
Dan beperk je je wel tot de naam en kan je geen straat of telefoonnummer of wat dan ook ingeven.. toch
 
Zet eens een test database van jou neer, das handiger.
 
Jepedewe,

de zoek functie beperkt zich tot de kolommen die je mee hebt opgenomen in de onder het formulier liggende query waarop je (per kolom) dan filtert. Ik doe iets gelijkaardigs maar dan met een lijst
 
Dan beperk je je wel tot de naam en kan je geen straat of telefoonnummer of wat dan ook ingeven.. toch
Heb je mijn eerste regel wel gelezen? Ik had het over meerdere zoekingangen (naam, voornaam, adres etc).
 
Dus, je zet op (bvb) je hoofdmenu 3 verschillende keuzelijsten:
Naam
Straat
Telefoonnummer

Het zou toch handiger zijn dat je een entryfield maakt waar je om het even wat invult en laat zoeken op ALLE velden..
Dat kan toch ook als je rechtstreeks in een access tabel gaat zoeken...

JP
 
Het zou toch handiger zijn dat je een entryfield maakt waar je om het even wat invult en laat zoeken op ALLE velden...
Dat is een idiote werkwijze, want je wilt doorgaans maar in een paar velden zoeken. Bovendien: heb je dat wel eens geprobeerd in een echt grote database? Niet vooruit te branden!
Bovendien heb je nog steeds niet goed gelezen, want ik gebruik maar één keuzelijst die het resultaat van de actie laat zien. Ik gebruik, naast de tekstvakken, meestal ook wel keuzelijsten met invoervak overigens, maar die had ik nog buiten het antwoord gelaten.

Maar even terug naar logisch denken, zodat je je dwaalweg wat makkelijker inziet. Als je iets wilt vinden in een tabel, en je gaat zoeken, dan doe je dat op basis van een bekend zoekweg. Als je een klant zoekt, en je weet de naam niet precies, dan wil je zoeken in de naamvelden en niet in het adres. Als je de naam niet weet, maar wel ongeveer de straat,dan wil je kunnen zoeken in de straatnaam. Als de naam de letters ‘ade’ bevat, wil je die combinatie toch niet zoeken in plaatsnamen of straatnamen?
Kortom: zoeken in alle velden is onzin. En werkt alleen maar vertragend. Moet je niet willen.
 
Ik snap er niets van... iets concreets zou wonderen (kunnen) doen... denk ik..;)
 
Gewoon zo eens een voorbeeldje aanmaken op de manier waarop jullie dat zie zou mij al heel wat vooruit helpen.. kan ik dat eens bestuderen en ben ik (hopelijk) weer een stapje verder in het logischer opbouwen van een programma...
 
Daar kunnen we idd niks mee...dat klopt iig wel: zeer rudimentair.:eek:
Met dit voorbeeldje kunnen we best een zoekformulier maken dat werkt volgens mijn aanwijzingen. Al staan er wel wat weinig voorbeelden in, dus de zoekresultaten zijn inderdaad erg simpel. Maar het voorbeeldje zelf werkt nog wel. Maar als JP nog wat meer records zou kunnen aanleveren, zodat er daadwerkelijk wat te filteren is, dan zou dat wel helpen :).
 
Het voorbeeldje van Johan gaat ongeveer de richting in die ik zelf toepas, maar dan niet helemaal op de wijze waarop ik het zou doen. Dat zit meer in deze richting. Ik hou het liever simpeler :).
 

Bijlagen

  • Pedicure_octa.zip
    112,4 KB · Weergaven: 44
Heel erg bedankt beide..
Waar ik wel blij mee ben is de manier waarop jullie beide een zoekopdracht benaderen...
Maar wat ik mis... wat als ik een naam ingeef die niet in de lijst voor komt... dan moet je automatisch een record aanmaken... hoe benader je dat dan?
Ik dacht ergens te registreren dat jullie lijst bij een nieuwe naam leeg was, dus, als je dan op enter klikt kom je automatisch in het aanmaken van een record
Dikke merci beide, dit wordt even studeren
JP
 
Laatst bewerkt:
Ik gebruik op mijn zoekformulieren verschillende technieken. Zoals ik al zei. Eén daarvan is dat je dus een naam typt (overigens wat mij betreft om de verschillende zoekvelden apart te benaderen en niet in één veld, zoals jij wilt) in een tekstveld dat het filter baseert op de naam. Typ je een paar letters in, dan filtert de lijst (zoals nu ook gebeurt). Typ je dermate veel letters in, dat er geen treffer meer is, dan zegt dat dus één ding: de persoon bestaat niet. En dat betekent, dat de zoektekst dus gebruikt mag worden in een leeg formulier als basis voor de achternaam, voornaam, of welk veld dan ook. Met een knop dus, die een nieuwe record aanmaakt op je formulier en de waarde alvast invult. Maar dat laatste is gemak, en hoeft niet. Je kunt ook op basis van de lege lijst een leeg formulier openen. Wat jij wilt. Maar zoekvelden combineren is in mijn ogen onzinnig, want een combinatie van letters die níet in een achternaam zit, kan nog wel in een voornaam zitten of in een straatnaam. En dat zijn onvergelijkbare gegevens.

Je wilt niet, althans: ik zou dat nooit willen, dat er namen in een lijst staan omdat ik, zoals nu in het voorbeeld, filter op een aantal velden. Wat boeit het mij dat de letters "jans" treffers opleveren als Dirk Houtman en Joke Driebus, omdat die toevallig op de Karel Jansen straat wonen? Mij dus helemaal niks. Ik wil, als Piet Jansen níet in de klantenlijst staat, dat de lijst leeg is als ik 'Jansen' typ. Maar weljot, ik ben maar een domme 'ollander :)
 
Ik zou sowieso een simpele aparte knop "nieuw" toevoegen waarbij dat je zelf dus kunt kiezen wanneer je een nieuwe record toevoegd aan je tabel "fiche" en dat dus niet laten afhangen dat je in je zoekfunctie geen record vindt.
Normaal zal de gebruiker wel weten als de client die zich aanbiedt een nieuwe client is en dus die zoekfunctie een omweg (overbodig klikken) vindt en liever direct nieuw drukt. En verder wil je niet geconfronteerd worden met ongewild een nieuwe record maken telkens je een bepaalde record niet vindt.
Maar er zijn veel verschillende manieren van werken of nog zoveel dingen die je kan toevoegen aan een formulier om 't werken aangenamer te maken (Google is je beste vriend).
Probeer 't eens zo
 

Bijlagen

  • Pedicure2.rar
    110,2 KB · Weergaven: 31
Normaal zal de gebruiker wel weten als de client die zich aanbiedt een nieuwe client is en dus die zoekfunctie een omweg (overbodig klikken) vindt en liever direct nieuw drukt. En verder wil je niet geconfronteerd worden met ongewild een nieuwe record maken telkens je een bepaalde record niet vindt.
Kijk, hier zit dus een verschil van opvatting. Ik heb teveel databases gezien met foute, dan wel dubbele records omdat er juist niet eerst een verplichte controle is op bestaande records. Veruit het belangrijkste en lastigste aspect van het bouwen van databases is het bewaken van de integriteit van gegevens. Één van de middelen die je daarbij hebt is het afdwingen van het controleren of een persoon al bestaat of niet. Die controle overlaten aan de gebruikers van het systeem zul je in mijn databases dus nooit vinden.
De zoekverplichting is in mijn database ook niet zozeer een overbodige klik, maar een snellere manier van werken: als de persoon bestaat, en dus in de lijst staat, is hij/zij snel gevonden (paar letters intypen) en kun je met éėn klik het juiste record openen. Vind je de persoon niet, pas dán mag je een nieuw record maken. Maar de controle op het zoeken is dus in mijn ogen en absolute noodzakelijkheid! En dan nóg zijn gebruikers, die doorgaans weinig op hebben met data-integriteit, best bereid om een persoon dubbel op te voeren...
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan