Datum wijziging

  • Onderwerp starter Onderwerp starter css
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

css

Gebruiker
Lid geworden
6 mrt 2005
Berichten
19
Ik wil graag een datum invoegen wanneer een record voor het laatst gewijzigd is, en het lieftst nog door wie...
iemand een idee waar ik dit kan vinden? ergens? op internet?
 
-de datum:
voeg in je tabel een veldje (datum/tijd) met als notatie "Standaard-datumnotatie" en plaats bij standaardwaarde "now()" . Dat geeft als resultaat de huidige datum en tijd.

Om te weten wie de aanpassing deed, word er in deze database gewerkt via een netwerk of met verschillende gebruikers op dezelfde pc?
 
Ok..thanx...die ga ik proberen.

...ik wil het laten draaien via een netwerk. Dus verschillenden computers. Maakt dat uit dan?
 
Tja, het maakt wel uit als je op een netwerk gaat met access.

Een voorbeeldje om niet in problemen te komen tijdens het aanpassen van records in de database.
- zet een database met de gegevens (enkel de tabellen dan) op de server of de gemeenschappelijke directory in het netwerk.
- zet op elke pc de eigenlijke access applicatie met een koppeling naar de tabellen op de server.(op elke pc een kopie dus).
- maak dagelijks lokale een backup van de tabellen op de server.
- bij het selecteren van een record om te bewerken kopieer je het record lokaal, bewerk het en plaats het terug. (dit alles met variabelen en een stukje code).
- zo voorkom je problemen als verschillende gebruikers terzelfdertijd dezelfde database willen gebruiken.

dit is natuurlijk niet zo heel eenvoudig om te doen. Anders zal elke gebruiker 'zijn beurt' moeten afwachten.

als er maar één gebruiker terzelfdertijd bezig mag zijn zet je de database geheel op de server of de gedeelde directory.

- om te weten wie de aanpassing deed kan je de logingegevens ophalen en opslaan in een veld bij het aangepasten of nieuwe record.
 
kun je het niet oplossen door een soort replicatie? repliceren van de gewijzigde records?


-------------"voeg in je tabel een veldje (datum/tijd) met als notatie "Standaard-datumnotatie" en plaats bij standaardwaarde "now()" . Dat geeft als resultaat de huidige datum en tijd. "-----------------

veld "WijzigingDoor"dit werkt niet met Currentuser()
:(
 
Laatst bewerkt:
Alles hangt natuurlijk af van in welke omgeving er gewerkt wordt. Netwerk? Standalone-pc's?

Dit is in ieder geval de functie :

Function userid() As String
userid = UCase(Environ("USERNAME"))
End Function

Hierbij is 'USERNAME' een systeemparameter. Als de pc's in een netwerk staan waar er ingelogd moet worden zal er wel ergens een parameter te vinden zijn die iedere user identificeert. 'k Weet niet of er ook zo'n unieke parameter is voor standalone pc's. Je zou eens moeten checken op verschillende pc's door het volgende te vergelijken :
START - RUN - "CMD" intypen + enter (naar DOS gaan dus) en dan het dos-commando "SET" ingeven.
Hiermee krijg je alle environment-parameters. Misschien dat er een parameter is die de pc uniek identificeert en op iedere pc voorkomt.
Indien er niets geschikt is hiervoor, kan je misschien zelf in de autoexec.bat een parameter definieren ( SET gebruikersID=Geert) ofzo.
Hierbij kan je dan userid = UCase(Environ("gebruikersID")) gebruiken in je functie.

't Word natuurlijk moeilijker als er verschillende users op dezelfde pc zijn.
Dan vrees ik dat de enige oplossing is dat je met een gebruikersnaam en een paswoord zal moeten werken bij de opstart van je programma. 'k Weet het, weer een gebruikersnaam en een paswoord, maar 't is een noodzakelijk kwaad. ('t Is zelfs trendy de dag van vandaag. 't Geeft ook een meerwaardegevoel voor de gebruikers van je programma hehehe) De voordelen zijn hiermee dan wel oneindig qua controle over het "wie of wat doen".
Dan moet je ook een tabel aanleggen met de toegangsniveaus voor iedere soort gebruiker. Die gebruikersnaam kan je laten controleren via dezelfde tabel.
vb. NAAM - PASWOORD - RECHTEN

De 'rechten' kan je opslaan in een public variable vb 'rechten' door in een module (onder modules, niet bij de code van een form) gewoon 'public rechten as string' toe te voegen bij het declareren van variabelen in de hoofding. Dit is enkel als je een duidelijke lijn kan trekken tussen wat ze mogen of niet mogen.

Zo kan je de 'ingelogde user' mee opslaan in de tabel waar de datum en de naam van de gebruiker die de wijzigingen aanbracht.

Zou deze uitleg je al een stuk verder kunnen helpen?
Ik denk van wel. Je zal natuurlijk niet alles in deze uitleg kunnen overnemen, maar zo weet je hoe eraan te beginnen.

De beste oplossing om de namen op te vragen is door alle gebruikers in een tabel te zetten en zelf een formpje te maken waar ze individueel moeten inloggen.
Dan heb je al de naam van de gebruikers als object en kan je dat in de tabel zetten. Indien ze een verkeerde of geen naam invullen moet Access afgesloten worden.
Dit kan via code na de controle van de naam.

groeten,
Geert B.
 
Function userid() As String
userid = UCase(Environ("USERNAME"))
End Function


Gaat toch niet helemaal goed...

Database moet op het netwerk gaan draaien en het maakt me niet zoveel uit of het de user van het netwerk is of de user van acces...als ik maar een username kan ophoesten.
 
Wel, met die functie ga je op elke pc het user id gaan ophalen. Dan kan je dat als string in een tabel plaatsen en bij het bewerken van een record erbij voegen. zo weet wie er aan gewerkt heeft. Of toch tenminste van op welke pc.

Er is nog andere oplossing. Die stond ook beschreven in het vorig bericht.

Geert.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan