kan niet record updaten

Status
Niet open voor verdere reacties.

nelleh

Gebruiker
Lid geworden
17 mei 2005
Berichten
18
Hallo,

Ik roep vanuit de ene form via een knop een andere form aan, daar wordt een nieuw record aangemaakt in een tabel 'handleiding'. Als ik terugkeer vanuit deze form(via een terugknop) open ik een andere tabel (een koppelingstabel die heet 'koppel') waarin ik een nieuw record wil inserten met o.a. de sleutel van het nieuwe handleidingrecord.

Zodra ik een update doe, krijg ik deze foutmelding:
"Kan geen record toevoegen of wijzigen omdat een gerelateerde record is vereist in de tabel handleiding."
(nummer =3201)

de code die ik in de terugknop gebruik is:

Set rsc = CurrentDb.OpenRecordset("koppel").Clone
rsc.AddNew
rsc![handid] = Me![handid]
rsc![Productid] = form_handleidingenMenu.Productid
rsc.Update <---- dit gaat dus fout

ik snap het niet!!

:confused:
 
Kijk eens met de debugger wat de waarden zijn van Me![handid] en form_handleidingenMenu.Productid.
Waarschijnlijk is één van de twee of allebei niet correct gevuld.
Als je de terugknop gebruikt wordt het betreffende formulier gesloten ---> weg inhoud van je velden.
Je zult dus op de één of andere manier moeten zorgen dat je de juiste id's beschikbaar hebt als je je update doet.
 
hallo
de id's zijn gewoon ingevuld. Ze worden ook in rsc gezet. Zodra de methode update wordt aangeroepen verschijnt de fout.
 
Post je mdb eens. Dat geeft vaak een hoop duidelijkheid.
 
ok, bij deze.
Formulier handleidingmenu openen. dan een produkt kiezen en dan de knop 'nieuw' (dit gaat ook nog niet helemaal goed, soms komt ie wel met een nieuw record en soms ook niet :().

Oke, als er een nieuw record komt, dan gewoon wat invullen (dit gebeurt in formulier handleidingbeheer). dan op de knop 'terug' (rechtsonderaan) en dan gaat het fout.

Relaties zijn eenvoudig : produkten kunnen meerdere handleidingen hebben en handleidingen kunnen bij meerdere producten horen, vandaar een tabel 'koppel' die een product aan een handleiding koppelt.

Dit zijn de belangrijkste 3 tabellen.
 

Bijlagen

Posten van je probleem database helpt echt!

Access slaat de gegevens van een record pas op als het formulier waar de gegevens op ingevoerd worden gesloten wordt.
Jij wilt een nieuw record aanmaken in tabel Handleiding. Dat record zal echter pas aangemaakt worden als het formulier handleidingenbeheer gesloten wordt!

Als je dus op de terug knop drukt dan is er nog geen record in tabel Handleidingen met als gevolg de foutmelding die je krijgt.

Je kunt het simpel oplossen door in je code even de gegevens op het formulier op te slaan voordat je de koppeltabel vult:

If Me.Dirty Then
DoCmd.RunCommand acCmdSaveRecord
If Me.OpenArgs = "nieuw" Then
Set rsc = CurrentDb.OpenRecordset("koppel", dbOpenDynaset)
rsc.AddNew
rsc![handid] = Me![handid]
rsc![Productid] = Form_handleidingenMenu.Productid
rsc.Update
End If
End If
 
Hallo Bartels,

Hij doet het inderdaad en ik snap ook het probleem! hardstikke bedankt! :D

(Toch heb ik ergens het gevoel dat het mooier kan, dat als je een handleiding toevoegt dat dan ook 'automatisch' de koppeling wordt toegevoegd en niet zoals ik het nu doe....)

groetjes
Hellen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan