Als je queries gebruikt om tabellen te vullen, heb je wel een aantal regels. Die hebben allemaal met hetzelfde te maken: zorg er voor dat je recordset bewerkbaar blijft. Als je query is te bewerken, is je formulier dat ook. En het omgekeerde geldt dus ook. Als je query niet bewerkt kan worden, maakt het niet uit hoe je het formulier instelt, dan gaat het nooit werken.
Waar moet je dan op letten? Om te beginnen mag je nooit een totalen query gebruiken. Zelfs niet als je alle velden op Group By zet, en de query dus als een gewone query werkt.
Tweede, en veel belangrijkere regel: zet alle velden die ingevuld moeten worden in de tabel ook in de query. Dit is minimaal verplicht voor de verplichte velden. Bedenk dat je de query gebruikt om één tabel te vullen, niet twee.
Derde regel, en één waar veel mensen (ik denk jij nu ook) tegen zondigen: gebruik uit de aanvullende velden géén sleutelvelden. Dit is vaak de bottleneck en de reden dat de query niet bewerkt kan worden. De oorzaak is vaak doordat mensen ofwel het * gebruiken om alle velden te selecteren (makkelijk, niet waar?) ofwel niet nadenken over welk koppelveld. Stel je wilt een behandeling toevoegen voor een persoon en je wilt persoonsgegevens zien in de query. Als je een PatiëntID hebt in je patiëntentabel, en een PatiëntID in je behandeltabel, welke gebruik je dan? Nou, niet die uit de patiëntentabel want die is uniek. Bovendien: als je een behandeling toevoegt, is het PatiëntID een verplicht veld in de behandeltabel dus je moet dat daar invullen.
Lang verhaal, maar de oplossing is dus: zorg dat je query klopt, dan werkt je formulier ook weer.