ACCESS VBA Impossible d'attribuer une valeur.

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

  1. 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
    1. Contributeur
      c'est possible de voir le code de ta macro?
      0
      1. 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
    2. SVP, est ce que qqn peut m aider c URGENT! merci.
      0
      1. 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
        1. Je suis désolé mais votre solution ne fonctionne pas, le resultat est le meme.
          0
          1. 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
            1. Solution trouvée! Merci à tous!

              Meilleures salutations

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