ACCESS VBA Impossible d'attribuer une valeur.

crazybear Messages postés 9 Statut Membre -  
 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

  1. 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
  2. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    c'est possible de voir le code de ta macro?
    0
    1. crazybear Messages postés 9 Statut Membre
       
      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
  3. crazybear Messages postés 9 Statut Membre
     
    SVP, est ce que qqn peut m aider c URGENT! merci.
    0
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. crazybear Messages postés 9 Statut Membre
     
    Je suis désolé mais votre solution ne fonctionne pas, le resultat est le meme.
    0
  7. 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
  8. crazybear Messages postés 9 Statut Membre
     
    Solution trouvée! Merci à tous!

    Meilleures salutations

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