Documentregistratie

Status
Niet open voor verdere reacties.

robpunt

Gebruiker
Lid geworden
13 mei 2006
Berichten
23
In een database houden wij een documentregistratie bij.
Nu is de vraag als er een wijziging plaatsvindt, in de registratie,
is het dan mogelijk dat diegene die de wijziging maakt dat alleen
kan doen als hij de datum invoert en een paraaf plaatst.
Ps. In het bijgevoegde VB heb ik een aantal velden verwijderd.

Alvast bedankt voor jullie hulp.

Vriendelijke groet,
Rob
 

Bijlagen

Ik kan je DB helaas niet openen op mn werk omdat we niet kunnen un-RARren.

Maar wellicht kan ik je een beetje op weg helpen.
Als ik je goed begrijp krijg je een docment binnen (brief van een klant, zo stel ik me voor) en dit moet aangegeven worden in je systeem dat deze brief binnen is gekomen.

Je stelt dat als iemand de gegevens voor het binnenkomen van de brief gewijzigt heeft, je dit wilt zien.

Waar je het moet zoeken denk ik is de me.dirty functie.
Dit evalueert of de gegevens in je formulier veranderd zijn na het openen.
Als dit het geval was, kan je een functie instellen dat er een naam ingevuld moet worden, anders sluit het formulier zich niet. Maar dit kan gemanipuleert worden als de gebruiker weet dat je met Alt F4 of ctrl-alt-del de applicatie kan afsluiten. Dus wat ik zou doen is de windows login of netwerknaam genereren en opslaan in een tabel, samen met de datum en tijd.

Het werkt trouwens alleen als je formulier direct aan een tabel gelinked is. Niet als je een unbound form hebt.

Ik zal eens kijken of ik een stukje code kan schrijven wat ik zojuist heb beschreven.
Is dit trouwens wat je bedoelt ?

Groeten : Jeroen
 
Laatst bewerkt:
Nou ik hoop dat ik goed heb begrepen wat je bedoelde. Maar als dat zo is dan is de oplossing vrij eenvoudig.

Ik heb in een tabel met gegevens twee velden toegevoegd genaamd Gewijzigd en GewijzigdDoor
Het gewijzigd veld heeft als format Datum en tijd
Ik heb vervolgens op mn formulier een veld aangemaakt genaamd fldGewijzigdDoor. En dit veld in de eigenschappen verborgen, de user ziet het veld dus niet.

De volgende code zorgt er voor dat zodra het record "Dirty" (veranderd) is, de datum, tijd en username bij het record worden gevoegd.
Code:
Private Sub Form_Dirty(Cancel As Integer)
If Me.NaamDocument <> "" Then
Gewijzigd = Now()
fldGewijzigdDoor = Environ("Username")

End Sub

Hopelijk heb je er wat aan, zoniet horen we het wel ;)

Edit : Datum en username werden ook weggeschreven in de tabel als je een nieuw record aanmaakte, Met
Code:
If Me.NaamDocument <> "" Then
word eerst gekeken of er al gegevens in het record stonden voordat het ge-edit werd, Zo ja dan word de code uitgevoerd. zo niet, dan blijft de datum en username blanco.
In mijn voorbeeld is NaamDocument de naam van het document, Maar de check kan natuurlijk op elk ander veld gezet worden, zoals ID of datum (invoer) veld. of meerdere velden.
 
Laatst bewerkt:
Ik vraag mij af of je wel de juiste tabelstructuur hebt. Ik zie dat bijlage, wijziging en paraaf meerdere keren in je tabel voorkomen. Lijkt mij dat je deze in een andere tabel moet zetten, zodat je een één op veel relatie kunt realiseren.

Verder zie ik in je tabel geen unieke sleutel en die heb je wel nodig.
 
Laatst bewerkt:
Ben het helemaal met gast0224 eens; je database is opgezet als een Excel spreadsheet, en niet als een database. Ik heb het voorbeeldje een beetje aangepast, en de dubbele velden in een eigen tabel (Bijlagen) gezet die is gekoppeld aan je Documenten.
Bovendien is het heel vreemd dat je alles in de koptekst van het formulier hebt gezet, en niet in de detailsectie. Met die opzet is het weliswaar mogelijk om nieuwe records toe te voegen, alleen zie je ze dan niet. Records worden namelijk getoond in de detailsectie (daar is-ie ook voor :) ) Een koptekst is bedoeld voor titels etc, en keuzelijsten om te kunnen zoeken. Kortom: gegevens die je op elk record terug wilt zien.
Ik kan mij niet voorstellen dat je dat per ongeluk hebt gedaan, want een koptekst moet je eerst aanzetten voordat je er wat mee kunt doen. Dus ik ben benieuwd naar de reden hiervoor!
 

Bijlagen

Dank allemaal voor jullie reactie en ik ga vanmiddag als ik weer thuis zijn jullie
antwoorden aandachtig bekijken en uit proberen. En aan Octafish zou ik willen
zeggen ik heb geen bijzondere redenen waarom ik dat heb gedaan maar waarschijnlijk
gewoon uit gemakzucht.

Groet,
Rob
 
Het is me gelukt na de uitleg van JeoenMioch, gast0224 en OctaFish. Ik heb uiteindelijk de uitleg van OctaFish
gebruikt in mijn nieuwe database. Nogmaals dank hiervoor en tot een volgende vraag.

Vriendelijke groet,
Rob
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan