Opgelost Docmd.gotorecord werkt niet

Dit topic is als opgelost gemarkeerd

HankMegens

Gebruiker
Lid geworden
1 sep 2015
Berichten
104
Hallo,

Ik wil middels een knop op mijn formulier naar een nieuw record gaan met:
Private Sub Knop18_Click()

DoCmd.GoToRecord , , acNewRec

End Sub
Ik krijg hier een foutrmelding (zie bijlage van foutmelding)
Als ik vanuit een ander formulier het betreffende formulier open op een nieuw reocrd werkt het wel:

Private Sub btnieuwlid_Click()

DoCmd.OpenForm "Flid", acNormal, , , acFormAdd

End Sub

Ook heb ikde database toegevoegd. (de namen in het bestand zijn fictief)foutmelding.jpg
 

Bijlagen

Zal er even naar kijken; het zou iets kunnen zijn in de richting dat het formulier geen nieuwe records toestaat, of dat je een query gebruikt die dat voorkomt.
 
Ik heb even naar de db gekeken, en het ligt niet aan je formulier, of je tabel. Maar aan de knop. Geen idee waarom, maar hij geeft een fouitmelding. Ook als ik de knop opnieuw aanmaak doet-ie het niet. Maar als ik een standaardknop aanmaak, met een ingebakken macro dus, dan doet-ie het wel. En als ik op het standaardknopje <Nieuw> in de knoppenbalk klik, dan doet-ie het ook.

Dus ik zou zeggen: accepteer het, en kies ofwel de knop in de menubalk (die werkt altijd, is altijd aanwezig en hoef je dus niet zelf aan te maken) of het knopje <Nieuw> in de navigatiebalk van het formulier.

Overigens zou ik één veld uit je tabel verwijderen: het veld [isactief]. Waarom zit dat er in? Het is a) behoorlijk dubbelop (je hebt ook al een veld [eindlid]; en waarom is dat een tekstveld en geen datumveld) en bovendien is het nogal verwarrend in de praktijk: als iemand opzegt met een bepaalde datum die in de toekomst ligt (zeg 1 september), dan is die persoon nog steeds lid (12 augustus tenslotte). Dus je zet het vinkje niet. Zet je dat dan aan op 1 september? 31 augustus om 23:59? Of laat je het op zijn beloop en denk je na drie weken: verdikkie, vergeten dat vinkje aan te zetten?
Allemaal gedoe om niks, want het systeem zegt je exact wanneer iemand niet actief meer is: gebaseerd op dus dat veld [eindlid]. Je kunt dus op elk moment van de dag zien wie er actief lid zijn (geen einddatum, of de einddatum ligt na vandaag) of niet actief: einddatum ingevuld en ligt vóór vandaag.
Kortom: maak het jezelf gemakkelijk, en gooi het nutteloze veld, dat ook nog eens verleidt om fouten te maken, weg!
 
Ik zat er ook mee te klooien en kom tot dezelfde conclusie. Als ik met de wizard een knop maak werkt het wel. Dan heb je weliswaar een macro, maar dat moet dan maar. Je kan op het formulier ook gebruikmaken van de ingebouwd navigatieknoppen (onderaan bij "1 van 50"). Daar zit ook een knop voor een nieuw record bij.

De opmerking over isactief snijdt ook hout.
 
Hoi,

Natuurlijk kan ik de wizard gebruiken en er een macro aan toevoegen.
Maar ik ben benieuwd naar waarom het niet werkt.
Isactief is idd overbodig.
 
Ik snap het ook niet; de macro knop doet exact hetzelfde. De foutmelding is ook een vreemde, want die heeft niets met de opdracht te maken. Sterker nog: ik heb even een nieuw formulier gemaakt op basis van dezelfde tabel, en daar dezelfde knop met dezelfde VBA code gemaakt. No problemo. Er zit dus een (technisch) foutje in dit specifieke formulier. En dan kun je doorgaans zoeken tot je pensioengeld op is, maar ga je vermoedelijk niets vinden.
 
Of je maakt het formulier opnieuw en gooit deze weg. Wat je handiger vindt :). Zelf zou ik 'm opnieuw maken, want ik vertrouw een formulier niet waar een busje in zit. Wie weet wanneer dat weer uitvliegt :).
 
En het werkt niet? Bij mij wel. Ben ik toch benieuwd wat jij dan doet.
 
Terug
Bovenaan Onderaan