Welkom op het forum van startpagina!

Dit forum staat op alleen-lezen. Je kan hier informatie zoeken en oude berichten terugvinden, maar geen nieuwe berichten plaatsen.

Naar overzicht van alle forums

Veld via code leeg maken

  • Willem

    Ik heb een formulier geopend en via code een veld ingevuld. Daarna word deze record gelijk opgeslagen.

    Ik heb een knop voor formulier sluiten. Kan ik dit veld via deze knop weer leeg maken?

    VELDNAAM = Null werkt niet. evenals VELDNAAM = “” en VELDNAAM = Empty ook niet.

    Terwijl ik een ander leeg veld onder dezelfde code wel kan invullen met een vaste tekst.

    Willem

  • Jaap Ton

    Willem,

    Je vult een veld en slaat het record meteen op.

    Wat heeft het dan voor zin om bij het sluiten van het form dat veld weer leeg te maken?

  • Willem

    Dit gaat over ordernummers. Zoals je wel zal weten mogen daar geen dubbele nummers in voor komen.

    Er zijn aan deze database enkele voorwaarden gesteld. 2 daarvan zijn dat bij openen orderformulier het ordernummer direkt zichtbaar moet zijn. Meerdere gebruikers moeten tegelijk een order kunnen aanmaken.

    Zodoende vul ik dat veld en sla het op. Maar er kan wel eens een reden zijn dat zo'n order niet door gaat (0,5% per jaar). Dan moet ik die order op incourant zetten. Daarbij wil ik dat veld leeg hebben.Die incourante order kan ik altijd weer via een aparte query oproepen en weer gebruiken. Dat is de reden.

    Klinkt mischien onlogisch maar is wel waterdicht.Het enigste probleem dat zich kan voordoen is een netwerkstoring of zoiets. Dat moet ik dan maar handmatig oplossen.

  • Jaap Ton

    Willem,

    Ik neem aan dat het ordernummer een (primaire) sleutel is en dan is het dus niet mogelijk dit veld leeg te maken.

  • Willem

    Het gaat niet over het veld ordernummer( ON is niet primaire sleutel). maar om een tekstveld waar de klantnaam in staat.

  • Jaap Ton

    Willem,

    Je kunt toch neerzetten:

    Me!Veldnaam = Null

    Maar kijk dan wel uit dat het record niet wordt bijgewerkt.

    In je openingspost gaf je aan dat je dit wilde bij het sluiten van het form, vandaar dat ik het een vreemde actie vind.

  • wimmie

    Als ik het goed begrijp (Inderdaad niet helemaal duidelijk) sla je het record meteen op. Een methode om achteraf (het is al opgeslagen) te wijzigen is een recordset openen en te wijzigen. Zoiets:

    set recset = CurrentDb.Openrecordset (“Select * from MyTable where ID ='” & ID & “'”)

    if not recset.eof then

    recset.edit

    recset.veldnaam=“”

    recset.update

    end if

  • demykromhof@live.nl

    hallo

  • willema

    Wellicht is het tekstveld op het formulier afhankelijk van een of ander veld in je tabel ? Zo worden Access-projecten het vaakst opgebouwd.

    Ik doe dat echter al een hele tijd niet meer. Op mijn formulieren staan uitsluitend niet-afhankelijke objecten die ik vervolgens bij een gebeurtenis (een knop klikken, tekstvak verlaten, enz…) een SQL-code laat uitvoeren (DoCmd.RunSQL “”). Dat geeft in VBA veel meer mogelijkheden naar de user interface.

    De moeite om uit te proberen.

    Groeten,

    Marnik