Opgelost Formulieren aanpassen

Dit topic is als opgelost gemarkeerd

jan-hendrik

Gebruiker
Lid geworden
23 jan 2024
Berichten
45
Ik wil heel graag dat ik een formulier heb, waar ik adressen en personen kan toevoegen en opzoeken. Ik stuur het accdb bestand mee. Wie kan dit doen en terug sturen. Ik wil zien waar ik de mist in ga. Het is om te leren hoe één en ander werkt. Zo moeilijk voor een beginneling zonder aanleg :)
 

Bijlagen

  • prive adressen 20241.zip
    84 KB · Weergaven: 7
Je keuze om een subformulier voor het gezin/adres op het personenformulier te maken is niet logisch. Een persoon hoort immers maar bij één gezin.

Ik heb een formulier gemaakt voor gezinnen/adressen waarop een subformulier voor de bijbehorende personen. De personen kan je toevoegen en wijzigen en eventueel ook verwijderen. Dat is wel een subformulier, want een gezin bevat één of meer personen.

Er is ook een formulier voor een persoon (toevoegen, wijzigen of verwijderen). Daarop een veld om de persoon te koppelen aan een (bestaand) gezin/adres.

Voornoemde (sub)formulieren heb ik met de wizard opgezet en daarna nog wat naar behoefte aangepast.

Het zoekformulier heb ik grondig onderhanden genomen. Het opent met een lijst van personen en vervolgens kan je filteren op één of meer velden of delen daarvan.

Tot slot heb ik een hoofdformulier gemaakt waarmee je alle andere formulieren kunt benaderen.
 

Bijlagen

  • prive adressen 20242.zip
    45,1 KB · Weergaven: 5
Ik heb nog wat aangevuld op het zoekformulier. Zoeken doe je niet voor niets, dus kan je nu direct naar een van de personen of gezinnen uit het zoekresultaat doorklikken.
 

Bijlagen

  • prive adressen 20243.zip
    47,1 KB · Weergaven: 6
Super, bedankt alvast. Ik was even elders druk, maar hoop vanmiddag dit moois allemaal te aanschouwen en te leren met je link en ook waar ik fout ben gegaan. Ik haal het door mekaar, denk ik. Ik wil het snappen. 😇
 
Ik was wel benieuwd naar dat fantastische zoekformulier, maar wat mij betreft mankeert er nogal wat aan.

Om te beginnen weigert Peter om de (nogal foutgevoelige) werkwijze van filteren met een apostrof (') af te zweren. Dat hij dat voor zichzelf geen probleem vind, is tot daar aan toe, maar leer op zijn minst de mensen die hier hulp vragen om het correct te doen.

Daarnaast snap ik niet waarom hij het zichzelf zo moeilijk heeft gemaakt door van je zoekformulier een formulier met subformulier te maken. In mijn ogen een volslagen overbodige handeling, alles kan perfect op één formulier.

Daarnaast vind ik het zelf veel handiger om het zoekresultaat direct op het scherm te zien verschijnen. Wat is het nut van een Zoek knop, als je waarden in verschillende tekstvelden kunt invoeren waarna het eindresultaat leeg is omdat de combinatie niet klopt?

Als ík een zoekformulier maak, wordt daar dus altijd 'live' op gefilterd: je tikt in één van de tekstvakken een of meer letters, en je ziet gelijk het resultaat. Je kunt dus nooit op tekst filteren die niet gefilterd kan worden. En doe je dat tóch, dan haal je met <Backspace>de verkeerde letter weg, en ga je verder met de vorige selectie.

Bekijk deze database maar eens, en vergelijk hem vooral met die van Peter. Ik zou het wel weten :).
 

Bijlagen

  • Filteren.zip
    48,3 KB · Weergaven: 4
Prachtig resultaat en mooi dat jullie dit doen, maar vooral ook die sport een beetje sparren met elkaar ;), ga vooral zo door. Hiermee kan ik mijn kennis als beginner een mooie start geven. Nogmaals dank!
 
Maar snap je waarom je geen apostrof (enkele quoot) moet gebruiken in zoekstrings met tekst? En waarom ik daar dus over val als helpers dat blijven gebruiken?
 
@OctaFish heeft een punt met de enkele aanhalingstekens. Ik blijf dat vergeten (zal de leeftijd zijn ☹️).

Hierbij de aangepaste database.
Ik heb ook wat knoppen gemaakt om gegevens netjes te verwijderen.
Je kan nu bovendien een persoon omhangen naar een nieuw te maken gezin. Bijvoorbeeld een kind gaat uit huis en besluit zelfstandig of met een partner bij de "club" te blijven.
 

Bijlagen

  • prive adressen 20244.zip
    54,9 KB · Weergaven: 6
@xps351: Niet om het een of het ander, maar het is toch hopelijk niet de bedoeling dat wij de complete database voor jan-hendrik bouwen? Ik dacht altijd dat het de bedoeling is dat mensen een vraag (één vraag dus) stellen, en dat wij daar antwoord op proberen te geven. En dat het dan mooi is voor ons en de TS. Ik lees nergens in de vraag dat hij knoppen nodig heeft om gegevens te verwijderen (gewoon een standaard knop overigens) of om personen 'omn te hangen' naar een nieuw gezin.
Bovendien leert j-h er bar weinig van als wij alles voor 'm maken....
 
Hoi Peter, toch waardeer ik het en ben ook aan het vergelijken gegaan tussen die van jou en OctaFish. Inderdaad heel moeilijk om de vba goed uit te lezen en te begrijpen. Ik doe mijn best. En als ik Octafish goed begrijp wordt mijn andere vraag dan ook niet behandeld. Ik geef het terug aan de gebruiker, dan kan ik dat afsluiten. Ik begin gewoon zelf bij de eerste stapjes.
Om toch het antwoord van OctaFish tussen jullie schrijfwijze te behandelen kreeg ik van ChatGPT4 het volgende antwoord:
De code die je hebt gedeeld is identiek aan de vorige versie en gebruikt geen apostrof (') in de context van de SQL-string constructie. In beide gevallen wordt de asterisk (*) gebruikt als een wildcard karakter voor de LIKE-operator in de filterstring. Dit is standaard voor Access SQL-query's die binnen een VBA-context worden uitgevoerd.

In Access VBA worden de wildcard karakters in de LIKE-operator als volgt gebruikt:

  • * vervangt een willekeurig aantal karakters.
  • ? vervangt een enkel karakter.
Dus als je de filterstrings bouwt, zoals "Voornaam Like '*" & Me.txtZoekenVoornaam & "*'", betekent dit dat je zoekt naar elke 'Voornaam' waar de tekst in Me.txtZoekenVoornaam overal binnen de waarde van het veld kan voorkomen.

Het belangrijkste verschil tussen de 'ouderwetse' manier van het gebruik van apostroffen en de meer moderne methoden zou kunnen liggen in hoe strings worden samengesteld, vooral als het gaat om het omgaan met input die apostroffen bevat of andere speciale karakters die geëscaped moeten worden om SQL-injectie te voorkomen.

In een meer moderne benadering of in andere databasesystemen dan Access, zou je parametergebonden query's gebruiken, die veiliger zijn. Echter, in Access VBA is het bouwen van filterstrings zoals je hebt gedaan met de LIKE-operator en de * wildcard nog steeds een geldige manier om dynamische, op gebruikersinput gebaseerde filters toe te passen. Als je een hoger niveau van veiligheid en onderhoud wilt, kun je kijken naar het gebruik van parameterquery's met ADO of DAO in VBA.

In jouw context, waar je filterstrings rechtstreeks toepast op de .Filter-eigenschap van een formulierobject, is het risico op SQL-injectie minimaal omdat je niet rechtstreeks met de database communiceert via SQL-commando's, maar de Access engine gebruikt om de filters toe te passen. Het is nog steeds goed om gebruikersinvoer te valideren en te ontsnappen om goede programmeerpraktijken te volgen.
 
Hoi OctaFish, het was echt niet mijn bedoeling om een compleet database te krijgen om in te vullen. Ik ga dit veel verder uitwerken, met ook geboortedata, mailadres, websites etc etc. Het is slechts een begin. De kerkdata is veel te hoog gegrepen en moet ik op dit moment dan ook opgeven, Ik dacht iets terug te ontvangen die verder daarvoor toegepast kan worden. Echter begrijp ik dat het zeker niet de bedoeling is van dit forum. Sorry daarvoor, ik kreeg er een andere intepretatie van. Namelijk dat het na het converteren van dat bestand klaar gezet kon worden in deze tijd. Ik had namelijk een windows 98 opgezet met de daarbehorende software en vervolgens na het converteren naar xp en twee stappen nieuwere software van Access etc. Het eindelijk werkt deze toch niet en zat ik hopeloos vast doordat mij hiervoor de kennis ontbreekt. Het is vrijwillig van mij om iemand te helpen het voor elkaar te krijgen. Sowieso voor de kerk werkt dat zo. Nietemin ontzettend bedankt en hoop in de toekomst nog een vraag te mogen stellen. Groet Jan
 
... het was echt niet mijn bedoeling om een compleet database te krijgen om in te vullen.
Dat snap ik, maar sommige helpers worden af en toe teveel meegesleept door hun enthousiasme :). Uiteraard krijg je, als je een vraag stelt, zo goed mogelijk antwoord van de helpers hier. Maar op een gegeven moment, als de vraag is beantwoord en/of opgelost (die twee gaan niet altijd samen) is het beter om de vraag af te sluiten en op <Opgelost> te zetten.
Heb je ándere vragen over die database, dan maak je weer een nieuwe vraag aan. Op die manier hou je het forum zuiver, de topics kort en overzichtelijk en is de gewenste informatie voor mensen die naar een specifiek probleem zoeken ook snel gevonden.

Er zijn op HelpMij al veel te veel topics waarin iemand een vraag stelt, en als dat stukje is opgelost, doorgaat met andere vragen, of dat er wordt uitgeweid over zaken die helemaal niets meer met de vraag van doen hebben. Waarvan jouw vraag dankzij Peter dus een goede voorbeeld is geworden :).

Kortom: ik ben benieuwd naar je volgende vraag :).

Overigens snap ik al niet eens meer waar je op doelt met
De kerkdata is veel te hoog gegrepen en moet ik op dit moment dan ook opgeven, Ik dacht iets terug te ontvangen die verder daarvoor toegepast kan worden. Echter begrijp ik dat het zeker niet de bedoeling is van dit forum. om in te vullen.
Want dat is dan inderdaad weer een ander probleem. Ik heb in jouw database overigens al een hoop tijd gestoken om te kijken wat er aan te verbeteren is (een hoop). Omdat we allemaal vrijwilliger zijn hier, kost dat meer tijd dan je kwijt zou zijn als je iemand zou inhuren. We doen dat omdat we a) het leuk vinden om te doen, en b) omdat we het leuk vinden om mensen te helpen. Maar dat sommige vragen wat meer tijd kosten, moet je maar voor lief nemen.
Soms lees je wel eens in een vraag (of PM) van iemand die iets dan de volgende dag nodig heeft, en of dat dan even geregeld kan worden. Maar zo werkt dat dus (helaas?) niet :).
 
als ik Octafish goed begrijp wordt mijn andere vraag dan ook niet behandeld. Ik geef het terug aan de gebruiker, dan kan ik dat afsluiten.
En dat zie je dus echt verkeerd, maar ik wil mij dus beperken tot de initiële vraag die is gesteld, en voor andere vragen: maak een nieuwe vraag aan als die al niet in een ander topic behandeld wordt.,
 
Dankjewel voor de duidelijkheid, dan hoop dat jullie/je het databestand van de kerk wil doen. Ik verleen je daar alle tijd voor, destijds wordt ie het volgend jaar ingezet. Er moeten toch denk ik ook handmatig nog een slordige 1500 leden aan worden toegevoegd. Vervelen hoeven we ons niet 🤣. En uit privacy overwegingen mag ik niet het totale ingevulde lijst mee sturen. Wie weet komt er nog iemand langs die weet om het makkelijk te vullen 😇, kan ook een vrijwilliger zijn binnen deze kerk. 🤔
 
Het andere draadje is al 5 pagina’s lang; veel te veel om nog overzichtelijk te zijn. Bovendien is je oorspronkelijke vraag (kan ik een oude database converteren?) dacht ik al wel behandeld. Wij kunnen eigenlijk niets daaraan toevoegen zonder de db zelf te zien. Bij jullie ontbreekt blijkbaar de technische kennis om e.e.a. uit te voeren, en zonder die database kan ik eigenlijk ook niets meer doen. Dat noemen wij een impasse :). Wat mij betreft mag je ‘m best mailen. Daar zit volgens mij ook geen probleem met de AVG.
 
Inderdaad, het converteren van de oude database is uitgevoerd, echter de formulieren en rapporten werken nog niet. Aangezien ik hier niet mag plaatsen ivm AVG heb ik het met mijn holle kennis proberen duidelijk te maken wat de wens is. Naar wie kan ik mailen, die de AVG keurig waarborgt en bereid is hier iets moois van te maken wat weer jaren mee kan. Mij lukt dat niet en de man achter de knoppen om te gebruiken helemaal niet. Graag uw reactie
 
Op zich mag je elke database hier posten, mits de gegevens geanonimiseerd zijn. Daarbij hoeven er in een project database helemaal niet zoveel gegevens in te zijn, zolang alle gewenste functionaliteit maar te ontwikkelen en testen is. Dus als je bepaalde resultaten uit een query wil zien, moeten er voldoende gegevens in de database zitten zodat het resultaat gecontroleerd kan worden.

Een database zonder gegevens is dus per definitie kansloos, omdat geen enkele query resultaat zal laten zien, ook niet gewenste of ongewenste. En we zijn hier op HelpMij helpers, geen datatypisten :).

Zelf ben ik gemeente ambtenaar, en als zodanig heb ik een eed afgelegd dat ik mij aan de (AVG) regels zal houden. En daar hou ik mij uiteraard ook aan. Dus wat mij betreft mag je hem wel naar mij mailen. Eventueel wil ik, voor toekomstig gebruik, de gegevens ook nog wel anonimiseren. Daar heb ik bepaalde procedures voor ontwikkeld op het werk (waar we ook niet mogen ontwikkelen met bestaande gegevens) om personen onherkenbaar te maken. Met simpele trucjes als muteren van BSN nummers (als je die hebt), geboortedatums, namen husselen en adressen kom je een heel eind.
 
Terug
Bovenaan Onderaan