1 membre
Connectés : ( personne )
- La Charte du Forum - Forum - Questions générale
Sujet n° 362 |
Champ Date sur modification enregistrement. |
le 21/04/2010 : 21:09 par Polux
visiteur |
Bonsoir Pierre,Voilà, je souhaite avoir sur une grande partie de mes tables un champ qui pourrait de manière automatique indiquer et renseigner la date de dernière modification d'un enregistrement et qui bien évidemment je pourrais répercuter dans mes formulaires ou Etats.Dans un seconds temps j'aimerais aussi si possible ajouter un champ supplémentaire qui renseignerait le dernier utilisateur qui aurait modifier l'un des enregistrement.Est-ce réalisable facilement ?Merci d'avance. |
|
|
Réponse n° 1 -------- le 21/04/2010 : 21:59 par marsouin_89
visiteur |
Bonjour Polux,
Peut-être que tu pourrais mettre une fonction sur "Touche appuyée" de ton formulaire.
Du genre : Me.ChampDate= Date()
Pour l'utilisateur, voici un code a mettre dans un module :
Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function fOSUserName() As String Dim lngLen As Long, lngX As Long Dim strUserName As String strUserName = String$(254, 0) lngLen = 255 lngX = apiGetUserName(strUserName, lngLen) If lngX <> 0 Then fOSUserName = Left$(strUserName, lngLen - 1) Else fOSUserName = "" End If End Function
Pour ton cas :
Me.ChampUtilisateur=fOSUserName
Mais peut-être que Pierre aura de meilleures solutions à te proposer.
Cordialement
Christophe |
|
|
Réponse n° 3 -------- le 22/04/2010 : 20:30 par marsouin_89
visiteur |
Bonjour Pierre,
Comme toujours, tu as réponse à tout et ta suggestion vient de me donner une idée sur un petit problème que j'avais.
Merci beaucoup
Cordialement
Christophe |
|
|
Réponse n° 4 -------- le 23/04/2010 : 11:00 par Polux
visiteur |
Bonjour et avant tout merci de votre aide !!!
Voilà j'ai dans ma table le nom de champ "datemaj" que j'ai également sur mon formulaire.
En propriétés du formulaire sur touche appuyée j'ai la procédure événementielle:
Code : xhtmlPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Me.datemaj = Date End Sub
J'avais encodé Me.datemaj = date() mais les parenthèses on été supprimées automatiquement et lorsque je modifie un enregistrement rien ne se passe ?
Pour l'utilisateur j'ai créer le module avec le code ci-dessous:
Code : xhtmlOption Compare Database Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Function fOSUserName() As String Dim lngLen As Long, lngX As Long Dim strUserName As String strUserName = String$(254, 0) lngLen = 255 lngX = apiGetUserName(strUserName, lngLen) If lngX <> 0 Then fOSUserName = Left$(strUserName, lngLen - 1) Else fOSUserName = "utilisateur" End If End Function
Dans ma table et sur mon formulaire j'ai le champ "utilisateur".
Dans les propriétés du formulaire APRES MAJ j'ai le code ci-dessous:
Code : xhtmlPrivate Sub Form_AfterUpdate() Me.utilisateur = fOSUserName End Sub
Lorsque je modifie mon formulaire après login "alain":
Le champ se complète bien avec "Alain" mais après le formulaire se fige et je ne parviens plus à passer à l'enregistrement suivant.
Si je me connect avec un autre utilisateur (Patrick) le problème reste le même mais au lieu de compléter "Patrick" il continue à compléter "Alain" ?....
Snifff.... Rien ne fonctionne....
Merci d'avance. |
|
|
Réponse n° 5 -------- le 23/04/2010 : 13:24 par marsouin_89
visiteur |
Bonjour,
Désolé de ne pas avoir fait de test auparavant. Je viens seulement de récupérer le code de l'utilisateur en cours et je n'ai pas encore fais de test sur un véritable rééseau.
Comme ton idée est de connaitre qui et quant a effectué des modifications, je te propose de mettre les 2 codes dans "Si modification" du formulaire.
Dès, et seulement dès, la première saisie de touche, ces informations seront intégrées dans tes champs.
Si tu souhaites laisser Me.DateMaj=Date dans "Sur touche appuyée", assure toi que l'option "Aperçu des touches" de l'onglet "Evènement" des propriétés du formulaire soit sur "Oui". C'est sans doute à cause de cela que çà coince.
Cordialement
Christophe |
|
|
Réponse n° 6 -------- le 24/04/2010 : 02:01 par 3Stone
Administrateur
|
Bonjour,
Citation : ChristopheSur touche appuyée
M'enfin ! Pourquoi utiliser une méthode si détournée pour faire cela ?
Polux, si tu utilises cette fonction, cela doit fonctionner sans problème !
Et cette fonction renvoie bien l'utilisateur vu par Windows. Si tu change d'utilisateur, elle te renvoie le nom du nouvel utilisateur. En fait, il faut tester cela sur deux PC différent pour réellement constater cela. Si tu l'utilises sur un seul PC, le fait de changer d'utilisateur t'obige également à réinstaller la base pour cet autre utilisateur (Windows Vista et Windows 7). Pour Windows Xp, tu obtiens le login du PC.
Les deux champs doivent exister dans la source du formulaire, mais inutile de placer ces champs sur le formulaire.
Mais, il y a juste une coquille Il faut placer le code dans la Sub de l'événement "Sur avant mise à jour"... désolé.
Cordialement, Pierre(3stone) |
|
|
Réponse n° 7 -------- le 24/04/2010 : 11:36 par Polux
visiteur |
Bonjour Pierre, Bonjour Christophe,
Je vous remercie beaucoup pour votre aide précieuse et confirme:
Citation : PierrePolux, si tu utilises cette fonction, cela doit fonctionner sans problème !
Seulement voilà....
Je me suis probablement une fois de plus mal exprimé sur ce que je souhaitais avoir....
Pour la date de mise à jour c'est exactement ce que je souhaitais, par-contre pour l'utilisateur je parlais des utilisateurs access et non pas des utilisateurs windows.... (double snifff)
En tous cas je suis déjà très content de ma date de mise à jour !!!
Encore merci à vous TOUS !!!
|
|
|
Réponse n° 8 -------- le 24/04/2010 : 13:10 par 3Stone
Administrateur
|
Bonjour,
Citation : Poluxpar-contre pour l'utilisateur je parlais des utilisateurs access et non pas des utilisateurs windows
Il n'y à pas d'utilisateur vu par Access... sauf à utiliser la "sécurité au niveau utilisateur" -uniquement pour le version avant Access 2007, ou à bricoler qque chose soit même.
Ce qui m'étonne alors est le :
Citation :Si je me connect avec un autre utilisateur (Patrick)
Comment fais tu pour te connecter en tant que "Patrick" ?
Cordialement, Pierre(3stone) |
|
|
sujet actif
sujet clos
Important!
Nouveau message -
Rectifier message
Clôturer sujet
Remonter
|