Recordset .addnew i.c.m. .edit

Status
Niet open voor verdere reacties.

Nico84

Gebruiker
Lid geworden
21 jul 2011
Berichten
187
De code die onder een knop hangt.
Code:
intVeldnr = 0

For x = 1 To 20
intVeldnr = intVeldnr + 1
    With CurrentDb.OpenRecordset("tbl_Regels")
        .AddNew
        .Fields("RegelID") = Me.txtOrdernr & Me("txtArtnr" & intVeldnr)
        .Fields("OrderID") = Me.txtOrdernr
        .Fields("ArtikelID") = Me("txtArtnr" & intVeldnr)
        .Fields("Aantal") = Me("txtAantal" & intVeldnr)
        .Update
        .Close
    End With
Next

1: Als er in txtAantal geen getal is ingevuld krijg ik de melding Fout bij gegevenstypeconversie
Hoe kan ik dit voorkomen?

2: Als de regel al bestaat in de tabel geeft .addnew een foutmelding over dubbele waarden.
Hoe kan je ervoor zorgen als het record bestaat, dat dan het record aangepast wordt met .edit?
 
Ad 1: ik weet niet of je dan een 0 wilt opslaan; je kunt dan Nz(Me("txtAantal" & intVeldnr),0) toewijzen aan het veld Aantal. Of: Me("txtAantal" & intVeldnr)+0, dan zou ook kunnen werken.

Ad 2: maak een query die controleert of de in te voeren waarden al bestaan; kun je ook met een recordset doen. Controleer met If .RecordCount = 0 of er een record is of niet. Zo ja: dan een tweede OpenRecordset met .Edit, zo Nee, dan .AddNew
 
Het heb even geduurd, maar ben er aardig uit gekomen.

Ben met de .recordcount aan de slag gegaan en werkend gekregen.
Alleen liep ik tegen het probleem aan als er een regel verwijderd moest worden.

Heb het nu als volgt opgelost:
-Order wordt opgehaald
-Als je de order wilt wijzigen druk je op de knop wijzigen.
-Knop opslaan krijg je de melding wijzigen opslaan? Bij ja, wordt de order verwijder uit de tabel en vervolgens opnieuw opgeslagen.



Wil iemand misschien kijken naar het voorbeeldje, voor de code? Heb nog niet echt ervaring met recordsets.


Hoe het er nu naar uit ziet werkt alles, maar misschien zie ik zaken over het hoofd of kan code beter/korter.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan