IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB]Erreur: Function must return variant


Sujet :

VB 6 et antérieur

  1. #1
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut [VB]Erreur: Function must return variant
    Salut,
    J'aimerais créer une fonction qui retourne un entier long pour calculer la taille du profile d'un utilisateur. Je pensais que ce code fonctionnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Function SizeOfProfile(myuser As String) As Long
    Dim fso, MonProfile, LocalSettings
    Dim dossier As String
    dossier = "C:\Documents and Settings\"
    Set MonProfile = fso.GetFolder(dossier & myuser)
    Set LocalSettings = fso.GetFolder(dossier & myuser & "\Local Settings")
    SizeOfProfile(myuser) = MonProfile.Size - LocalSettings.Size
    End Function
    Mais ça me sort le message d'erreur suivant :
    Compile error : Function on left-hand side of assignment must return variant or object
    La ligne en cause semble être la ligne SizeOfProfile(myuser) = MonProfile.Size - LocalSettings
    Quelqu'un sait me dire pourquoi??? Et comment régler le problème... Merci...

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    SizeOfProfile(myuser)
    renvoie une valeur et n'en reçoit pas ainsi

  3. #3
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Je vais sans doute te paraître un peu boulet sur les bords mais je débute... Comment puis-je régler le problème???

  4. #4
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    J'ai essayé comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SizeOfProfile = MonProfile.Size - LocalSettings.Size
    J'ai plus d'erreur à la compilation... Mais lors de l'exécution, ça plante...

  5. #5
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Et tu as quoi, cette fois, comme message d'erreur?
    Si tu fais les deux ".Size" séparément, ça marche?
    Et est-ce que tu récupères bien les deux tailles des répertoires?

  6. #6
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    C'est un fait, c'est au niveau de la récupération des répertoires que ça part en vrille... Merci...

  7. #7
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Points : 166
    Points
    166
    Par défaut
    Salut Empty_body

    Je viens de tester ce code et c'est ok

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
    resultat = SizeOfProfile("xxxx")
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Public Function SizeOfProfile(myuser As String) As Long
    Dim fso As FileSystemObject
    Dim MonProfile, LocalSettings As Folder
    Dim dossier As String
     
    Set fso = New FileSystemObject
    dossier = "C:\Documents and Settings\"
    Set MonProfile = fso.GetFolder(dossier & myuser)
    Set LocalSettings = fso.GetFolder(dossier & myuser & "\Local Settings")
     
    SizeOfProfile = LocalSettings.Size - MonProfile.Size
     
    Set MonProfile = Nothing
    Set LocalSettings = Nothing
    Set fso = Nothing
     
    End Function
    @+

  8. #8
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    J'ai trouvé mon erreur, un oubli stupide... Voici le code corrigé pour le cas où il pourrait servir à qqn d'autre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function SizeOfProfile(myuser As String) As Long
    Dim fso, MonProfile, LocalSettings
    Dim dossier As String
    Set fso = CreateObject("Scripting.FileSystemObject")
    dossier = "C:\Documents and Settings\" & myuser
    Set MonProfile = fso.GetFolder(dossier)
    dossier = dossier & "\Local Settings"
    Set LocalSettings = fso.GetFolder(dossier)
    SizeOfProfile = MonProfile.Size - LocalSettings.Size
    End Function

  9. #9
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Arg! Je n'avais pas vu qu'il manquait le "CreateObject"
    Cependant, si tu veux faire du code bien propre, rajoute les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set GnaGnaGna = Nothing
    comme l'a dit Bouley, pour libérer la mémoire.

  10. #10
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    ok... merci encore...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème function must return type "trigger"
    Par pony99 dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/01/2012, 15h58
  2. Erreur "function ' ' n'est pas définie dans l'expression"
    Par wanou_le_fou dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 02/07/2007, 16h13
  3. Réponses: 3
    Dernier message: 19/10/2006, 21h51
  4. erreur function not defined
    Par reventlov dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/04/2006, 01h07
  5. Erreur function suite à un dump
    Par MaitrePylos dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/01/2006, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo