Invoeren via meerdere-items-formulier

Status
Niet open voor verdere reacties.

Sonnetje85

Gebruiker
Lid geworden
28 nov 2012
Berichten
102
Met het zoeken binnen een meerdere-items-formulier ben ik bekend.
maar kun je deze ook gebruiken voor het invoeren van gegevens?

Als ik een meerdere-items-formulier maak en ik zet 3 velden in de Koptekst en 2 velden in de Details
wil ik graag dat ik 1-malig de 3 eerste in moet vullen, en dan een aantal keer de andere 2 velden

Wanneer ik een dergelijk formulier maak en ik heb alles 1-malig ingevuld, kan ik netjes naar een volgend record van de andere 2 velden, alleen "wist" hij dan ook de gegevens uit de bovenste 3.
 
Met 'meerdere-items-formulier' bedoel je vermoedelijk een Doorlopend formulier, of een formulier in Gegevensweergave. Elk formulier, maakt niet uit welk type, kun je gebruiken om gegevens in te voeren. Mits de onderliggende Recordbron daarvoor geschikt is.
Een (doorlopend) formulier (wat ik nu schrijf geldt voor alle formulieren) dat is gekoppeld aan een Recordbron bevat tekstvakken die zijn gekoppeld aan een veld uit die recordbron. Enige verschil tussen een doorlopend formulier en een enkelvoudig formulier is dat je in een doorlopend formulier een veld een aantal malen herhaald ziet, net zo vaak als de detailsectie groot is. Aan de Aanwijzer kun je zien welk record actief is. Er is, ook in een doorlopend formulier, maar één record actief.
Zet je nu velden in de koptekst, dan verandert de situatie eigenlijk niet: je hebt nog steeds maar één actief record, en dat record vult de tekstvakken. In de kop en voettekst heb je geen herhalende velden, dus zie je daar maar één veld, en wel het veld van het actieve record. Ga je naar een ander record, dan zie je de koptekst dus een andere waarde krijgen. Je kunt dus niet in de koptekst één veld koppelen aan meerdere records; dat is onmogelijk. Hij wist ook niks, hij laat gewoon de inhoud van een volgend record zien. Bij een nieuw record is dat uiteraard leeg.
 
Daarom stond "wist" ook tussen aanhalingstekens ;)
Is er een andere manier waarop het wel kan? Via een subformulier en dan een toevoegquery o.i.d.?
 
Er is een simpele truc: gebruik de eigenschap DefaultValue van de tekstvakken. Je vult dus in een tekstvak iets in, en je gebruikt de gebeurtenis <AfterUpdate> om de DefaultValue van het tekstvak in te stellen op de zojuist ingetypte waarde. Bij elk nieuw record dat je nu aanmaakt, krijgt het veld de vorige waarde. En dat kun je dus onbeperkt veranderen, want je slaat gewoon een andere waarde op als je de ingevulde tekst verandert. Niks in de koptekst zetten dus; velden van het record horen gewoon in het doorlopende formulier vertoond te worden.
 
Dus ik kies het tekstvak, ga naar het tabblad Gebeurtenissen en vul daar iets in bij Na bijwerken?
Wat vul ik daar in?
 
Simpel voorbeeldje:
Code:
Private Sub Country_AfterUpdate()
    Me.Country.DefaultValue = Me.Country.Value
End Sub
 
De vorige code werkt alleen bij getallen (en datums, wat dat natuurlijk ook getallen). Voor tekst moet je een kleine aanpassing gebruiken:
Code:
Private Sub tekst_AfterUpdate()
    Me.tekst.DefaultValue = "'" & Me.tekst.Value & "'"
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan