Als je hier bedoeld in access dan zet je zoiets in module.
Dan roep je die op door call naam
Beste mensen,
Ik heb het volgende probleem:
Ik wil de wijzigingen die in een formulier worden gemaakt neerzetten in een mutatieregister.
Ik doe dat voor elk veld nu zo:
Private Sub AchterNaam_AfterUpdate()
'Zet de eerste letter om in een Hoofdletter.
Me.AchterNaam = Left(UCase(Me.AchterNaam), 1) & Right(Me.AchterNaam, Len(Me.AchterNaam) - 1)
'Zet de nieuwe waarde in het Mutatieregister.
Me.MutRegister = Me.MutRegister & " gewijzigd in: '" & Me.AchterNaam & "'" & vbCrLf & ""
End Sub
Private Sub AchterNaam_Dirty(Cancel As Integer)
If IsNull(AchterNaam) Then
Me.AchterNaam = "Leeg"
End If
Me.MutRegister = Me.MutRegister & Date & ": AchterNaam: '" & Me.AchterNaam & "'" 'Zet Datum, Veldnaam en inhoud van het veld in het Mutatieregister.
Me.MutDatum = Date 'Zet de mutatiedatum in het veld: MutDatum.
End Sub
Nu wil ik daar een functie voor maken die ik in elk formulier kan gebruiken.
Kan iemand me op weg helpen?
Alvast bedankt!
Kees Roffelsen
Laatst gewijzigd door C.C.Roffelsen; 9 februari 2010 om 00:22
Als je hier bedoeld in access dan zet je zoiets in module.
Dan roep je die op door call naam
Stegisoft,
Kan je iets uitvoeriger zijn. Want ik weet ook wel dat je zoiets in een module moet neerzetten. Maar ik heb wat moeite met het maken van de functie-format.
Waarom zet je het zo:
Me.MutRegister = Me.MutRegister & " gewijzigd in: '" & Me.AchterNaam & "'" & vbCrLf & ""
En niet zo
Me.MutRegister = Me.AchterNaam
Dan zou het in principe zo zijn
Me.MutRegister = call naam
Ik vind dat uw code nog veel eenvoudiger kan voor het zelfde doel.
Bedankt Stegisoft voor je reactie.
Zoals jij zegt dat ik het makkelijker kan doen werkt het vlgs mij niet zoals ik het mutatieregister wil gebruiken. Ik wil dat veld gebruiken om alle mutaties die er in het record wordt gedaan te noteren. Zoals jij zegt, nl.: Me.MutRegister = Me.AchterNaam
dan worden alle vorige mutaties overschreven met wat op dit moment de inhoud is van Achternaam. En dat is niet de bedoeling.
Met: Private Sub AchterNaam_Dirty(Cancel As Integer)
If IsNull(AchterNaam) Then
Me.AchterNaam = "Leeg"
End If
Me.MutRegister = Me.MutRegister & Date & ": AchterNaam: '" & Me.AchterNaam & "'" 'Zet Datum, Veldnaam en inhoud van het veld in het Mutatieregister.
Me.MutDatum = Date 'Zet de mutatiedatum in het veld: MutDatum.
End Sub
wordt in het eigenschapvenster; Bij gewijzigd: bovenstaande gebeurtenisprocedure uitgevoerd.
En bij; Na bijwerken:
Private Sub AchterNaam_AfterUpdate()
'Zet de eerste letter om in een Hoofdletter.
Me.AchterNaam = Left(UCase(Me.AchterNaam), 1) & Right(Me.AchterNaam, Len(Me.AchterNaam) - 1)
'Zet de nieuwe waarde in het Mutatieregister.
Me.MutRegister = Me.MutRegister & " gewijzigd in: '" & Me.AchterNaam & "'" & vbCrLf & ""
End Sub
Bijv.: Als ik de achternaam: Werkman wijzig in Werkmans komt er in het mutatieregister te staan:
8-2-2010: AchterNaam: 'Werkman' gewijzigd in: 'Werkmans'
Maar als ik daarna van dezelfde record het adres wijzig dan moet ook dat in het mutatieregister worden opgenomen onder de mutatie van de AchterNaam.
Nu is het probleem dat ik niet precies weet hoe ik dat in één functieprocedure of twee procedures moet neerzetten.
Let wel: het veld waarop de mutatie plaats vindt als ook de oude inhoud daarvan met daarachter eventueel in een volgende procedure: gewijzigd in: met de nieuwe inhoud van dat veld.
Het spijt me dat ik zo uitgebeid ben geweest maar ik hoop dat ik het probleem nu wel goed duidelijk heb gemaakt.
Het kan zijn dat ik het eenvoudiger kan doen, want zo bedreven ben ik niet hierin.
Maar zo eenvoudig als jij het voorstelt werkt het volgens mij niet.
Ik wacht op je reactie?
Laatst gewijzigd door C.C.Roffelsen; 9 februari 2010 om 10:38
Favorieten/bladwijzers