ACCESS VBA Impossible d'attribuer une valeur.

Fermé
crazybear Messages postés 9 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 24 mars 2005 - 24 mars 2005 à 09:38
 fkuchta - 29 juil. 2008 à 17:11
Bonjour,

Je veux attribuer le nom de l'utilisateur windows (API) par le bied d une fonction à un champs dans un formulaire puis l'enregsitrer dans la table mais le probleme c'est que à chaque fois VBA me met "Impossible d'attribuer une valeur à cet objet". pourquoi?

Merci d'avance

7 réponses

Utilisateur anonyme
24 mars 2005 à 10:32
Il manque quelque chose dans le code de ton module.
Tu déclares une fonction externe GetUserName. Tu l'appels par un Call ??? dans une fonction qui n'est pas déclarée.

Que veux tu faire au juste?

Quel environement utilises-tu? Access 2000, Excel... ?
1
Canard007 Messages postés 5929 Date d'inscription mercredi 26 mai 2004 Statut Contributeur Dernière intervention 18 septembre 2009 215
24 mars 2005 à 09:40
c'est possible de voir le code de ta macro?
0
crazybear Messages postés 9 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 09:46
Du module?


Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

On Error GoTo Err_yGetUserName

' Declare the variables
Dim strBuffer As String
Dim lngSize As Long

' Initialise the variables
strBuffer = Space$(255)
lngSize = Len(strBuffer)

' Load the user name with the Windows API function
Call GetUserName(strBuffer, lngSize)
If lngSize > 0 Then
yGetUserName = Left$(strBuffer, lngSize - 1)
Else
yGetUserName = vbNullString
End If

Exit_yGetUserName:
Exit Function

Err_yGetUserName:
MsgBox Err.Description
Resume Exit_yGetUserName

End Function
0
crazybear Messages postés 9 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 10:10
SVP, est ce que qqn peut m aider c URGENT! merci.
0
Utilisateur anonyme
24 mars 2005 à 10:35
Voici un exemple qui marche:

Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long


Public 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)
        fOSUserName = Left$(strUserName, lngLen - 1)
        
End Function


Tu remarqueras que "apiGetUserName " est une fonction et ne peut donc pas être appelées par un Call étant donné qu'elle renvois une valeur.

Dans ton code tu utilises une variable "yGetUserName" qui n'est pas déclarée???
Ta fonction n'a pas été déclarée non plus. Bref je comprends que ça ne marche pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crazybear Messages postés 9 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 10:53
Je suis désolé mais votre solution ne fonctionne pas, le resultat est le meme.
0
Utilisateur anonyme
24 mars 2005 à 10:57
Quel est le message d'erreur exact?
A quelle ligne se positionne l'erreur?

As tu bien specifier "Public" devant le nom de la fonction?
0
crazybear Messages postés 9 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 11:15
Solution trouvée! Merci à tous!

Meilleures salutations

Bonne journée
0
Surtout, ne partagez pas votre solution, cela pourrait servir !
;-)
0