Tekst die CurrentRecord overneemt en nog kan opslaan. Hoe?

Status
Niet open voor verdere reacties.

tintilla

Gebruiker
Lid geworden
23 nov 2009
Berichten
217
Verhaaltje wat het idee is.
Ik heb Tekst62 die gelinkt is in een tabel. In deze tabel heet deze Tekst62.
Nu wil ik dat Tekst62 het getal currentrecord overneemt en wanneer er een nieuw record komt weer overneemt.

Als ik bij Tekst62 de besturingselementbron in =([CurrentRecord]) verander dan komt er mooi de current record te staan.
Maar dan is deze niet meer gelink met de tabel, en word het getal niet ingevuld in de database.

Hoe los ik dit op?


Wat ik nog meer geprobeerd had:
een vba code onder de form.

Option Compare Database

Private Sub Form_Current()
[Tekst62] = ([CurrentRecord])
End Sub
 
Mag ik vragen wat je met dat nummer wilt doen? Het probleem is dat de volgorde van records niet vast ligt. Als je uitgaat van een simpele tabel met velden Voornaam en Achternaam en je zou ze sorteren op Voornaam, dan is CurrentRecord=1 een heel ander record dan wanneer je ze sorteert op Achternaam.
 
Ik heb een knop die een formulier opent in toevoegmodus. En elke keer wanneer je op die knop klikt begint deze record weer met 1 te tellen.
Nu is er op dat formulier een blad moet ingevuld moet worden. Een zet positie. En deze moet beginnen met 1. (Wat ook het geval nu steeds is.) Wanneer ik de volgende zet positie wil aanmaken klik ik onder op nieuw record, en dan komt er 2 te staan. Het getal (2) moet weer overgenomen worden.
 
Met een beetje programmeren kun je de defaultwaarde van het tekstvak met 1 verhogen.
Zet deze code in je formulier. Eventuele dubbele regels uiteraard verwijderen, en de veldnaam aanpassen..
Code:
Option Compare Database
Option Explicit
Dim Counter As Integer
Maakt een variabele die alleen op het formulier werkt.
Code:
Public Sub Form_Load()
    If Counter = 0 Then
        Me.Losnummer.DefaultValue = Counter
    End If
End Sub
Waarschijnlijk niet nodig (counter wordt gedefinieerd bij het openen van het formulier) als het formulier wordt geopend, maar het kan ook geen kwaad om de variabele op 0 te zetten.
Code:
Private Sub Form_Current()
    If Me.NewRecord Then
        Counter = Counter + 1
        Me.Losnummer.DefaultValue = Counter
    End If
End Sub
De code waar het om gaat. Hij controleert of het formulier op een nieuw record staat, en verhoogt de counter dan met 1. Sluit je het formulier af, dan gaat de teller weer naar 0, en begint het feest dus opnieuw. Zolang je blijft toevoegen, wordt de waarde van het veld (in dit geval Losnummer) verhoogd.
Overigens heeft jouw vraag weinig tot niks met CurrentRecord te maken...
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan