Forum - Questions générale - Sujet n°362

[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Questions générale - Questions générale


clos par  le // : :  Sujet n° 362  Champ Date sur modification enregistrement.

le 21/04/2010 : 21:09
par Polux

Anonyme

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.
Ecrire à Polux  sujet clos  Haut

[]   

DébutPrécédent [ 1 2 3 4 5 6 ] SuivantFin
Réponse n° 1
--------
le 21/04/2010 : 21:59
par marsouin_89

Anonyme

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

Ecrire à marsouin_89   clos par  le // : :  Haut
Réponse n° 2
--------
le 21/04/2010 : 22:39
par 3Stone

Anonyme

Administrateur

Bonjour,
 
Citation :

Peut-être que tu pourrais mettre une fonction sur "Touche appuyée" de ton formulaire.

 
Disons qu'il vaut mieux placer cela dans la Sub de l'événement Après mise à jour du formulaire.

Cordialement,
Pierre(3stone)
  clos par  le // : :  Haut
Réponse n° 3
--------
le 22/04/2010 : 20:30
par marsouin_89

Anonyme

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

Ecrire à marsouin_89   clos par  le // : :  Haut
Réponse n° 4
--------
le 23/04/2010 : 11:00
par Polux

Anonyme

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 : xhtml
Private 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 : xhtml
Option 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 : xhtml
Private 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" ?....

y Snifff.... Rien ne fonctionne....

Merci d'avance.

Ecrire à Polux   clos par  le // : :  Haut
Réponse n° 5
--------
le 23/04/2010 : 13:24
par marsouin_89

Anonyme

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

Ecrire à marsouin_89   clos par  le // : :  Haut
Réponse n° 6
--------
le 24/04/2010 : 02:01
par 3Stone

Anonyme

Administrateur

Bonjour,

 
Citation : Christophe

Sur 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 y
Il faut placer le code dans la Sub de l'événement "Sur avant mise à jour"... désolé.

Cordialement,
Pierre(3stone)
  clos par  le // : :  Haut
Réponse n° 7
--------
le 24/04/2010 : 11:36
par Polux

Anonyme

visiteur

Bonjour Pierre, Bonjour Christophe,

Je vous remercie beaucoup pour votre aide précieuse et confirme:

Citation : Pierre

Polux, 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....y

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 snifffy)

En tous cas je suis déjà très content de ma date de mise à jour !!!

Encore merci à vous TOUS !!! l

Ecrire à Polux   clos par  le // : :  Haut
Réponse n° 8
--------
le 24/04/2010 : 13:10
par 3Stone

Anonyme

Administrateur

Bonjour,

 
Citation : Polux

par-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)
  clos par  le // : :  Haut
DébutPrécédent [ 1 2 3 4 5 6 ] SuivantFin
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut