Auto-aanvullen records

Status
Niet open voor verdere reacties.

dollaarke

Gebruiker
Lid geworden
14 nov 2011
Berichten
11
Beste,

de vraag is hier waarschijnlijk al eerder gesteld maar omdat ik de juiste benaming niet ken kan ik het niet onmiddellijk terugvinden.

Hoe zorg ik ervoor dat de standaardwaarde bij het invullen van een formulier de waarde bevat van het zelfde veld uit het voorgaande record?

Het gaat hier om access 2003...

Groeten en bedankt!
 
Een standaardwaarde is een waarde die bij elk nieuw record wordt toegekend aan het veld. Op het moment dat je een nieuw record aanmaakt, en er is geen standaardwaarde ingesteld, dan is het vak dus leeg. Om wèl een standaardwaarde te kunnen toepassen, moet je dus een record hebben dat een waarde bevat i.e. het laatste record dat je invult. Het is dus niet logisch om een standaardwaarde op te halen uit een vorig record... wat je wel kunt doen, is de waarde die je in je formulier invult, weg laten zetten als standaardwaarde. Daarmee bereik je dan dat het volgende nieuwe record automatisch de standaardwaarde krijgt. Overigens, als je dit automatiseert, zal bij elke nieuwe waarde de standaardinstelling veranderen.
 
Beste,

dank voor het antwoord.

Het is gewoon de bedoeling om het invoeren van gegevens in het formulier sneller te laten verlopen. Het is zo dat we vaak voor bijvoorbeeld één bepaalde straat op verschillende huisnummers gegevens moeten ingetypt worden.

Momenteel voeren we dan bijvoorbeeld volgende gegevens in:
Postcode
Gemeente
Deelgemeente
Straat
Huisnummer
Gegevens eigen aan dat huis

Het zou dus handig zijn moest ik bijvoorbeeld voor één record alles invul. En als ik dan naar het volgende record ga dat bij postcode, gemeente, deelgemeente en straat al de waarde staat uit het vorige record. Op die manier kan ik daar snel door met de 'tab-toets' om zo gewoon het huisnummer en de gegevens in te vullen.

Het is dan ook geen enkel probleem als ik daarna een nieuwe waarde zou moeten invullen die dan ook weer aanzien wordt als de nieuwe standaardwaarde voor de volgende records.

Lukt dat? Is mijn intentie duidelijk genoeg omschreven?

Mvg,

tnx
 
Je kunt met een knop wel gegevens doorkopieëren naar een nieuw record. Of je dat doet via standaardwaarden, of op een andere manier maakt denk ik niet eens zoveel uit.
 
Dit is eigenlijk wat ik ook zoek maar weet niet hoe ik dit kan maken kan je een voorbeeld geven?

dus bij het opslaan wordt er bij mij meteen een ander form geopend waar dus het record van het oude form in mee moet worden genomen

Alvast bedankt!

P.S. of moet ik hiervoor een nieuw topic aan maken?
 
Laatst bewerkt:
Een simpel voorbeeldje is dit:

Code:
Private Sub DVDTitel_AfterUpdate()
    Me!DVDTitel.DefaultValue = cQuote & Me!DVDTitel.Value & cQuote
End Sub[/code

Hierin is DVDTitel een tekstveld op een formulier. Door een waarde in te vullen, wordt de gebeurtenis <Na bijwerken> getriggerd, waardoor de standaardwaarde voor het tekstveld wordt ingesteld op de ingevulde waarde. Bij het aanmaken van een nieuw record krijgt het veld dus automatisch de nieuwe waarde. Het mooie van deze constructie is, dat de tabeleigenschap er niet door wordt veranderd; de tabel blijft dus gewoon leeg. De standaardwaarde werkt alleen op het formulier door.
 
oke, maar de gegevens moet dus naar form 2 en niet in het zelfde form blijven.

IK van deze functie niet zoveel :(
 
Je stelt nu een hele andere vraag.... Mijn antwoord is gebaseerd op deze omschrijving:
Hoe zorg ik ervoor dat de standaardwaarde bij het invullen van een formulier de waarde bevat van het zelfde veld uit het voorgaande record?

Het helpt als je duidelijk omschrijft wat je eigenlijk wil, dus misschien moet je nog een keer van voren af aan beginnen met de vraag...
 
om nog even terug te keren op mijn vraag:

Ik heb de code dus toegepast in een veldje die bij mij "Deelgemeente" noemt.
De code is deze:
Code:
Private Sub Deelgemeente_AfterUpdate()
Me!Deelgemeente.DefaultValue = cQuote & Me!Deelgemeente.Value & cQuote
End Sub
Ik heb deze code ingevuld bij de veldeigenschap "NaBijwerken"

Als ik nu alles invul in een record (waaronder dus het veld deelgemeente) krijg ik
bij het nieuwe record als waarde '#Naam?' te zien. Iets moet dus fout gelopen zijn?

Een bijkomende vraag is: Het is echter wel de bedoeling dat de inhoud van het formulier opgenomen wordt in de tabel. Dus als de standaardwaarde door mij niet aangepast wordt (maar gewoon laten staan en verder tabben); moet die waarde ook in de tabel staan...
 
De code is een klein beetje anders; meer zoiets:

Code:
Private Sub Deelgemeente_AfterUpdate()
Dim cQuote As String
     cQuote = """"
     Forms!Jouw_Formulier_Naam!txtDeelgemeente.DefaultValue = cQuote & Me.Deelgemeente.Value & cQuote
End Sub

Ik vermoed dat je de variabele cQuote niet hebt. Die was ook weggevallen uit mijn voorbeeld.
 
Ik krijg nu volgende foutmelding 'Fout 2465'. Kan het veld txtDeelgemeente niet vinden...

Het tekstgedeelte is er wel degelijk dus ik vermoed dat er een foutje zit in de expressie zelf?

De code ziet er overigens zo uit nu:
Code:
Private Sub Deelgemeente_AfterUpdate()
Dim cQuote As String
     cQuote = """"
     Forms!Definitief!txtDeelgemeente.DefaultValue = cQuote & Me.Deelgemeente.Value & cQuote
End Sub
 
Ik denk dat je veld Deelgemeente heet, en niet txtDeelgemeente. Althans: dat haal ik uit de naam van je AfterUpdate
 
Beste,

dank voor de moeite. de code werkt nu prima. Ook worden gegevens opgeslaan in de tabel zoals gevraagd. Thank you!

Cheers
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan