delete-probleem

Status
Niet open voor verdere reacties.

so10070

Gebruiker
Lid geworden
4 feb 2014
Berichten
424
Ik voeg een record toe in een subform dat ik nadien ongedaan wil maken. Indien enkel het eerste veld ingevuld is lukt dit wel. Voer ik opnieuw de handeling uit, nl. een nieuw record invoeren dat ik dan wil annuleren, dan wordt het voorlaatste record en niet het laatste record gewist. Hierbij de code

Code:
    If MsgBox("Huidig record wordt gewist!", vbYesNo, "Wissen record") = vbYes Then
            Me.SubSubFormulierWijzigenDataDivisiesTotScholen.Form.Recordset.Delete
    End If

Ook met .Undo geprobeerd, maar lukt ook niet. Heb ook met .Refresh en daarna met .Delete geprobeerd. Lukt ook niet. Docmd.Runcommand acCmdDelete/Undo geeft een foutmelding. Ik tracht gewoon de handeling ongedaan maken, maar ik slaag er niet in. :(
 
Laatst bewerkt door een moderator:
Recordset delete? Dat is drastisch! Da's niet één record, maar alle records in de onderliggende tabel. Maak een voorbeeldje, want dit gaat teveel tijd kosten om na te bootsen.
 
Ik snap je probleem niet; een knop <Annuleren> betekent dat je de huidige bewerking wilt afbreken. Het record is dan nog niet opgeslagen. Die knop kun je simpel maken met de wizard, die knop heeft ook geen enkele invloed op wat er verder op je formulier gebeurt. Maar je hebt het in je vraag ook over verwijderen. En dat is een andere tak van sport; dan is het nieuwe record echt opgeslagen. Ook die knop kun je met de wizard maken, en werkt vlekkeloos in een subformulier.
 
De knop <Record wissen> aangemaakt via de wizard en werkt perfect. Bovendien moeten er nog een aantal bewerkingen op het formulier uitgevoerd worden tegelijkertijd met het indrukken van de knop <Record wissen>. Dit doe ik via vba. Daarom wilde ik de actie "wissen" ook in vba opnemen, wat me niet lukt. Ik zou niet weten hoe ik die andere acties als extra in de macro <Record wissen> moet opnemen. Is er een mogelijkheid om een macro aangemaakt via een wizard te koppelen aan vba code of andersom?
 
Nee, die optie is er niet. Althans: niet met ingebouwde macro's. Een gewone macro kun je wel converteren naar VBA. De makkelijkste optie is overigens een db maken in 2003 format, dat kent namelijk geen ingebouwde macro's en Access (maakt dus niet uit welke versie) gebruikt dan automatisch VBA. De code die je dan genereert kun je natuurlijk kopiëren en plakken in je echte db.
 
Heb het als volgt opgelost en het werkt!
Code:
Me.SubSubFormulierWijzigenDataDivisiesTotScholen.SetFocus
    If IsNull(Me.SubSubFormulierWijzigenDataDivisiesTotScholen.Form.NummerInstelling) And _
        IsNull(Me.SubSubFormulierWijzigenDataDivisiesTotScholen.Form.Schoolnaam) And _
        IsNull(Me.SubSubFormulierWijzigenDataDivisiesTotScholen.Form.Straat) And _
        IsNull(Me.SubSubFormulierWijzigenDataDivisiesTotScholen.Form.Naam_directie) And _
        IsNull(Me.SubSubFormulierWijzigenDataDivisiesTotScholen.Form.Voornaam_directie) Then
        'doe hier niets en annuleer
    Else
        DoCmd.RunCommand acCmdDeleteRecord
    End If
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan