ACCESS VBA Impossible d'attribuer une valeur.

crazybear Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
 fkuchta -
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
 
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 5931 Date d'inscription   Statut Contributeur Dernière intervention   215
 
c'est possible de voir le code de ta macro?
0
crazybear Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
SVP, est ce que qqn peut m aider c URGENT! merci.
0
Utilisateur anonyme
 
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   Statut Membre Dernière intervention  
 
Je suis désolé mais votre solution ne fonctionne pas, le resultat est le meme.
0
Utilisateur anonyme
 
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   Statut Membre Dernière intervention  
 
Solution trouvée! Merci à tous!

Meilleures salutations

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