OVH Cloud OVH Cloud

problème avec username

6 réponses
Avatar
phdu
Bonjour,

J'ai une base access 2000 sur un serveur et j'ai un poste sous win98 et 4
postes sous win 2000 pro qui accèdent à cette base.

Cette base contient une table avec le nom des utilisateurs ayant le droit
d'ouvrir la base.

J'ai créé une fonction qui récupère le nom de login réseau de la personne et
qui le compare avec ceux contenus dans la table pour savoir si la personne
est autorisée ou non à ouvrir la base.

Ca marche très bien avec le pc sous 98. Par contre sous 2000 pro ça
fonctionne très bien aussi sauf avec un pc. A l'appel de la fonction access
affiche un message d'erreur "Cette application a été arrêtée à cause d'une
erreur d'exécution. Elle ne peut pas continuer et va être arrêtée."

Ma fonction est la suivante :
Public Function GetLogin() As String
Set wshshell = CreateObject("Wscript.shell")

If (Environ("username") = "") Then
GetLogin =
wshshell.RegRead("HKEY_LOCAL_MACHINE\Network\logon\username")
Else
GetLogin = Environ("username")
End If
end function

Le poste a la même config que ceux qui fonctionnent : win2000 pro sp4.

Si quelqu'un a une idée elle sera la bienvenue.

Merci d'avance

Philippe

6 réponses

Avatar
Raymond [mvp]
Bonjour.

essaie d'utliser directement l'api GetuserName que tu trouveras sur la page:
http://officesystem.access.free.fr/apinomutilisateur.htm
y-a-t-il un changement ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"phdu" a écrit dans le message de news:

Bonjour,

J'ai une base access 2000 sur un serveur et j'ai un poste sous win98 et 4
postes sous win 2000 pro qui accèdent à cette base.

Cette base contient une table avec le nom des utilisateurs ayant le droit
d'ouvrir la base.

J'ai créé une fonction qui récupère le nom de login réseau de la personne
et
qui le compare avec ceux contenus dans la table pour savoir si la personne
est autorisée ou non à ouvrir la base.

Ca marche très bien avec le pc sous 98. Par contre sous 2000 pro ça
fonctionne très bien aussi sauf avec un pc. A l'appel de la fonction
access
affiche un message d'erreur "Cette application a été arrêtée à cause d'une
erreur d'exécution. Elle ne peut pas continuer et va être arrêtée."

Ma fonction est la suivante :
Public Function GetLogin() As String
Set wshshell = CreateObject("Wscript.shell")

If (Environ("username") = "") Then
GetLogin > wshshell.RegRead("HKEY_LOCAL_MACHINENetworklogonusername")
Else
GetLogin = Environ("username")
End If
end function

Le poste a la même config que ceux qui fonctionnent : win2000 pro sp4.

Si quelqu'un a une idée elle sera la bienvenue.

Merci d'avance

Philippe


Avatar
phdu
J'ai essayé l'api GetuserName ça ne change rien les postes qui fonctionnaient
fonctionnent toujours et celui qui posait problème affiche toujours le même
message.

Philippe


Bonjour.

essaie d'utliser directement l'api GetuserName que tu trouveras sur la page:
http://officesystem.access.free.fr/apinomutilisateur.htm
y-a-t-il un changement ?
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"phdu" a écrit dans le message de news:

Bonjour,

J'ai une base access 2000 sur un serveur et j'ai un poste sous win98 et 4
postes sous win 2000 pro qui accèdent à cette base.

Cette base contient une table avec le nom des utilisateurs ayant le droit
d'ouvrir la base.

J'ai créé une fonction qui récupère le nom de login réseau de la personne
et
qui le compare avec ceux contenus dans la table pour savoir si la personne
est autorisée ou non à ouvrir la base.

Ca marche très bien avec le pc sous 98. Par contre sous 2000 pro ça
fonctionne très bien aussi sauf avec un pc. A l'appel de la fonction
access
affiche un message d'erreur "Cette application a été arrêtée à cause d'une
erreur d'exécution. Elle ne peut pas continuer et va être arrêtée."

Ma fonction est la suivante :
Public Function GetLogin() As String
Set wshshell = CreateObject("Wscript.shell")

If (Environ("username") = "") Then
GetLogin > > wshshell.RegRead("HKEY_LOCAL_MACHINENetworklogonusername")
Else
GetLogin = Environ("username")
End If
end function

Le poste a la même config que ceux qui fonctionnent : win2000 pro sp4.

Si quelqu'un a une idée elle sera la bienvenue.

Merci d'avance

Philippe







Avatar
Raymond [mvp]
ça ne vient pas de la fonction.
remplace ta base frontale sur ce poste par une copie d'une autre base
frontale.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"phdu" a écrit dans le message de news:

J'ai essayé l'api GetuserName ça ne change rien les postes qui
fonctionnaient
fonctionnent toujours et celui qui posait problème affiche toujours le
même
message.

Philippe



Avatar
phdu
Bonjour Raymond,

J'ai installé access 2000 au lieu du runtime sur le poste en question pour
pouvoir avoir le debugger, et le problème vient de "Microsoft jet and
replication object 2.6 lybrary".

Il me met que cette librairie est manquante or le fichier msjro.dll est bien
présent sur le poste.

Comment puis je faire pour réinstaller cette librairie sur ce poste où la
trouver ?

PS J'ai copié le fichier msjro.dll de mon poste qui fonctionne bien sur ce
poste mais le problème persiste.

Merci d'avance

Philippe


ça ne vient pas de la fonction.
remplace ta base frontale sur ce poste par une copie d'une autre base
frontale.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"phdu" a écrit dans le message de news:

J'ai essayé l'api GetuserName ça ne change rien les postes qui
fonctionnaient
fonctionnent toujours et celui qui posait problème affiche toujours le
même
message.

Philippe








Avatar
Raymond [mvp]
essaie de la registrer par:
regsvr32 "c:.... chemin complet"
et ensuite la décocher des références, sortir de access
remonter ta base , recocher la référence.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"phdu" a écrit dans le message de news:

Bonjour Raymond,

J'ai installé access 2000 au lieu du runtime sur le poste en question pour
pouvoir avoir le debugger, et le problème vient de "Microsoft jet and
replication object 2.6 lybrary".

Il me met que cette librairie est manquante or le fichier msjro.dll est
bien
présent sur le poste.

Comment puis je faire pour réinstaller cette librairie sur ce poste où la
trouver ?

PS J'ai copié le fichier msjro.dll de mon poste qui fonctionne bien sur ce
poste mais le problème persiste.

Merci d'avance

Philippe



Avatar
phdu
J'ai installé MDAC 2.8 et maintenant ça marche très bien.

Je te remarcie pour ton aide

@+ Philippe


essaie de la registrer par:
regsvr32 "c:.... chemin complet"
et ensuite la décocher des références, sortir de access
remonter ta base , recocher la référence.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"phdu" a écrit dans le message de news:

Bonjour Raymond,

J'ai installé access 2000 au lieu du runtime sur le poste en question pour
pouvoir avoir le debugger, et le problème vient de "Microsoft jet and
replication object 2.6 lybrary".

Il me met que cette librairie est manquante or le fichier msjro.dll est
bien
présent sur le poste.

Comment puis je faire pour réinstaller cette librairie sur ce poste où la
trouver ?

PS J'ai copié le fichier msjro.dll de mon poste qui fonctionne bien sur ce
poste mais le problème persiste.

Merci d'avance

Philippe