na opslaan worden eerder ingevulde gegevens niet verwijderd

Status
Niet open voor verdere reacties.

anor

Gebruiker
Lid geworden
11 okt 2011
Berichten
9
kan iemand mij vertellen wat ik fout doe?
ik heb een formulier om gegevens in te vullen, na invullen en naar het volgende formulier gaan worden de gegevens in de gegevenstabel gezet. echter aan het eind van alle formulieren invullen wordt alles netjes opgeslagen en de map afgesloten, maar bij het opnieuw openen van de map op een ander moment staan alle ingevulde gegevens er nog en zijn te records niet leeg. hoe krijg ik bij het opstarten weer een nieuw leeg formulier en zijn de gegevens die eerder zijn ingevuld nog steeds in de gegevenstabel te vinden?
het volgende formulier wordt geopend met een volgende record knop en heeft de volgende opdracht
Private Sub volgende_Click()
On Error GoTo Err_volgende_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "2"
DoCmd.OpenForm stDocName, , , stLinkCriteria

stDocName = "1"
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.Close acForm, Me.Name

Exit_volgende_Click:
Exit Sub

Err_volgende_Click:
MsgBox Err.Description
Resume Exit_volgende_Click

End Sub

dank je voor het meedenken
 
De code zegt niks; maak er een voorbeeldje van, zodat we er meer van kunnen zeggen. Nu zie ik alleen dat je een formulier opent (vermoedelijk vanuit een ander formulier gezien de code, maar welk?) en voer je een code uit om een record te bewaren, maar welk formulier? Niet formulier 1, tenzij dat het formulier is van waaruit je het tweede formulier opstart, maar ook weer niet, want de code loopt gewoon door omdat je formulier 2 niet modaal opent, zodat de code niet stopt bij formulier 2.... Kortom: ik zie een hoop beren op de weg, maar sta niet te popelen om in het wilde weg te gaan schieten ;)
 
Hoi OctaFish
ik zal proberen het duidelijker uit te leggen.
ik heb een vragenlijst gemaakt bestaande uit 33 verschillende formulieren. om van het ene naar het volgende formulier te komen klik je onder aan het formulier op "volgende".
(of "vorige" als dit nodig is).
het is mijn bedoeling dat als er op "volgende" wordt geklikt de ingevulde gegevens van het te sluiten formulier worden opgeslagen. het mag (tijdelijk) blijven staan zodat je het weer ziet als je bijvoorbeeld op "vorige" klikt om het eventueel te veranderen. maar als je aan het laatste formulier komt en de vragenlijst afsluit dan moet de hele vragenlijst opgeslagen worden en afgesloten. als er dan een nieuw persoon dezelfde vragenlijst gaat invullen moet deze weer een lege vragenlijst zien, en niet de antwoorden van een vorige invuller.
mijn probleem is dat als ik de vragenlijst open ik de antwoorden van de vorige invuller zie staan. (maar alleen op het eerste formulier, de formulieren erna zijn wel leeg).deze antwoorden zijn ook opgeslagen in het gegevensblad en op het gegevensblad zie je wel dat bij invullen er nieuwe records ingevuld gaan worden.
ik weet niet wat ik fout doe. de onderstaande code uit mijn oorspronkelijke vraag is aan het einde van elk formulier om naar het volgende formulier te komen. aan het eind van de vragenlijst, dus het laatste formulier sluit ik als volgt af:
Code:
Private Sub save_Click()
On Error GoTo Err_save_Click


    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

Exit_save_Click:
    Exit Sub

Err_save_Click:
    MsgBox Err.Description
    Resume Exit_save_Click
    
End Sub

bij elke knop naar vorige, volgende of sluiten gebruik ik:
Code:
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
ik vraag mij nu af is het wel nodig om het commando saverecord te geven na elke formulierwisseling?

is het nu iets duidelijker waar mijn probleem ligt en zou je mij nu wel advies kunnen geven?
 
Ik denk dat je het formulier duidelijk moet maken dat je een nieuwe gebruiker bent en dat er een nieuw record moet komen.
Dus je eerste formulier moet deze code krijgen :

Code:
Private Sub form_load()
DoCmd.GoToRecord , , acNewRec

Zodra dit formulier geladen word, word er een nieuw record aangemaakt en kan elke gebruiker met een schone lei beginnen.

Verder zie ik net als Octafish ook nog een hoop beren op de weg maar ik wacht tot hij begint te schieten alvorens ik weg loop ;)

Ps : mocht je er nou helemaal niet uitkomen heb ik nog ergens een quiz liggen waarbij de structuur die je voor ogen hebt al min of meer klaar is.
 
Ik snap het nog steeds niet helemaal; één vragenlijst die zo te lezen op één tabel is gebaseerd, maar met 33 formulieren? In mijn ogen is dat gekkenwerk, maak één formulier met desnoods 33 tabbladen in een tabbladen object, dan wordt alles goed opgeslagen als je het formulier afsluit.
 
Jeroen, dank voor je tip. deze werkt inderdaad.
ik ben zeer geinteresseerd in het toesturen van je quiz, ik denk dat ik hier vast veel tips uit zou kunnen opdoen.

OctoFish, mijn vragenlijst bestaat uit 32 formulieren gebaseerd op 13 tabellen. sommige formulieren moeten alleen ingevuld te worden afhankelijk van de antwoorden die in een voorafgaand formulier gegeven worden en zijn ter verduidelijking van een ja of nee antwoord. ook bestaan sommige formulieren maar uit 2 of 3 vragen.

zouden jullie ook een idee kunnen geven wat jullie als grote beren in mijn vragenlijst zien?
 
Om te beginnen: die 33 formulieren. Een vragenlijst zou in beginsel gewoon één formulier moeten kunnen zijn met één vraag op het scherm. Al kan je uiteraard bij elkaar horende vragen ook tegelijk laten zien. Bij het beantwoorden ervan laat je, afhankelijk van het antwoord, de volgende vraag of vragengroep zien. Opslaan doe je alles uiteraard in één tabel...
 
Ik kan me in tegenstelling tot Octafish wel voorstellen waarom iemand veel formulieren gebruikt. Maar toegegeven is Octa veel meer gevorderd in Access dan ik, Dus misschien heeft hij methodes om op 1 formulier te doen waar ik er meerdere voor gebruik.

Op mijn formulieren staan quiz vragen, soms met illustraties en dus kan ik me niet voorstellen hoe ik dat op 1 formulier doe.
Als het alleen vragen zijn (zonder illustraties) dan kan ik me een constructie voorstellen waarbij het formulier vragen ophaald uit een tabel en je dus inderdaad maar 1 formulier nodig hebt.

Over tabellen gesproken, Ook mijn quiz heeft maar 1 tabel dus wat dat betreft zitten Octa en ik op 1 lijn.

Ik zou zeggen post je vragenlijst hier even als bijlage dan kunnen Octa en of ik even kijken wat je opzet is. Ik zal morgen even kijken of ik het quizje kan uploaden.
 
Laatst bewerkt:
helaas lukt het mij niet om de vragenlijst te uploaden, het zipbestand blijkt te groot.
 
Mail 'm maar naar octafish@live.nl; dan kijk ik wel of ik 'm kan uploaden. Als redacteur kan ik wat grotere bestanden versturen.
Overigens is een oplossing voor afbeeldingen volgens mij wel makkelijk: maak er een popup formulier van die tegelijk met de vraag opent en bij de volgende vraag weer sluit. Je hebt dan inderdaad wel twee formulieren, maar het afbeeldingenformulier is redelijk generiek inzetbaar. Zelf gebruik ik een popup voor afbeeldingen om een thumbnail uit te vergroten bijvoorbeeld.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan