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.NET Discussion :

Byref dans une SUB [Débutant]


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Technical Team Leader
    Inscrit en
    Avril 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technical Team Leader
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 235
    Par défaut Byref dans une SUB
    bonjour, voilà

    Ce n'est qu'un test, j'ai 3 tables variable:

    les tables sont déclarer en debut en Dim tb1(10, 11), tb2(10, 11), tb3(10, 11) As String

    la table tb2(10,11) est rempli, les tables tb1 et tb3 sont vides

    je veux remplir les deux tables quand je lance ma SUB la table tbX(,) se remplit bien (la valeur Val1 me l'indique + un espion sur les tables) et comme je l'ai mise en ByRef (ByRef tbX(,) As String) dans ma def de SUB, je devrais remplir un coup ma tb1 et la tb2 !!!

    quoi je pense mais la mais table ne se remplissent pas !!! pouvez-vous m'aider ?

    merci

    j'appel une de mes sub :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    test(tb1, tb2)
    test(tb3, tb2)
    voici ma def SUB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Private Sub test(ByRef tbX(,) As String, ByVal tbY(,) As String)
                   For aa = 0 To 10
                       For ii = 0 To 11
                       tbX(aa, ii) = tbY(aa, ii)
                    Dim val1 = tbX(aa, ii)
                Next
            Next
        End Sub

  2. #2
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9

  3. #3
    Membre éclairé
    Homme Profil pro
    Technical Team Leader
    Inscrit en
    Avril 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technical Team Leader
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 235
    Par défaut
    C'est-ce que je fais justement

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    J'ai pas bien compris ce que tu cherchais à faire, mais j'ai l'impression que tu as mal compris le sens de ByRef...

    Peux-tu indiquer plus clairement le résultat que tu cherches à obtenir, et montrer le code complet de ton test ?

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    passe par de la POO c'est plus simple à lire et c'est plus simple à coder
    (classes, collections)

    si tu nous dis ce que tu stockes dans tes tableaux on pourra t'indiquer comment coder ca
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre éclairé
    Homme Profil pro
    Technical Team Leader
    Inscrit en
    Avril 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technical Team Leader
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 235
    Par défaut
    Bonjour, merci pour votre aide,
    c'est mon espion qui déconne pour voir, je l'ai modifier et ca marche c'est moi qui déconnais le byref remplit bien ma table...

    merci

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par tijote Voir le message
    Bonjour, merci pour votre aide,
    c'est mon espion qui déconne pour voir, je l'ai modifier et ca marche c'est moi qui déconnais le byref remplit bien ma table...

    merci
    Le ByRef n'a rien à voir là-dedans; vu que tu n'affectes pas tbX dans la méthode, ça n'a aucun effet. Si tu mets ByVal à la place tu auras le même résultat...

  8. #8
    Membre éclairé
    Homme Profil pro
    Technical Team Leader
    Inscrit en
    Avril 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technical Team Leader
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 235
    Par défaut
    En fait je travail avec une base access, il y a 8 tables et elles ont toutes un nombre de champ différent. mon programme tourne avec le frameworks 2 pas plus.

    nous sommes plusieurs à travailler dessus mais pas en réseau !!!

    il y a une table en local et une table sur un serveur FTP.

    donc le principe, mon programme télécharge la table qui est sur le ftp, j'enregistre chaque table FTP/LOCAL dans une variableFTP(,) et une variableLOCAL(,)

    j'ai créé une sub qui fait un test pour vérifier si les éléments sont identique ou pas, et s'il y a un new élément il le rajoute...

    tout ça fonctionne bien pour une table car il me fau comme variable : la tableFTP, la tableLOCAL, le nombre de champs dans la table, le nb d'enregistrement max de la table LOCAL, le nb d'enregistrement max de la table FTP et je mettais directement les objets concerné dans la sub mais pour avoir qu'une SUB pour gérer les 8 tables j'ai mis des paramètres dans la sub et du coup au lieu d'appeler ma sub() j'ai sub(para1, para2, etc,) quoi voilà donc dans ma form:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    runBASEupdate(tbClientFTP, tbClientLocal, 11, cptcllocal, cptclftp)
    runBASEupdate(tbMachineFTP, tbMachineLocal, 16, cptMalocal, cptMaftp)
    et voisi ma 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    Private Sub runBASEupdate(ByRef tbFTP(,) As String, ByRef tbLocal(,) As String, ByVal ii As Integer, ByRef cptFALL As Integer, ByVal cptAall As Integer)
     
            'runBASEupdate(tbClientFTP, tbClientLocal, 11, cptcllocal, cptclftp)
     
            Dim resultat As Integer = 0
     
            Dim cptA, cptF As Integer
     
            For cptF = 0 To 999999
                resultat = 0
                If tbFTP(cptF, 1) <> Nothing Then
                    For cptA = 0 To cptAall
     
                        Dim val = tbFTP(cptF, 2)
                        Dim val1 = tbLocal(cptA, 2)
                        If tbFTP(cptF, 2) = tbLocal(cptA, 2) Then
                            resultat = 0
                            Exit For
                        Else
                            resultat = 1
                        End If
                    Next
                    If resultat = 0 Then
                        Dim result As Integer = DateTime.Compare(tbLocal(cptA, 1), tbFTP(cptF, 1))
                        If result < 0 Then
                            'inférieur
                            For iii = 0 To ii
                                tbLocal(cptA, iii) = tbFTP(cptF, iii)
                            Next
                        ElseIf result = 0 Then
                            'egal
                        Else
                            'supérieur
                        End If
                    ElseIf resultat = 1 Then
                        For iii = 0 To ii
                            tbLocal(cptFALL, iii) = tbFTP(cptF, iii)
                        Next
                        cptFALL += 1
                    End If
                Else
                    Exit For
                End If
            Next
        End Sub
    j'ai mi un espion sur tbLocal(cptAall, ii) et tbFTP(cptF, ii) => tout ce met a jour nickel

    voilà

    bon après je fais avec ce que je connais, la POO je connais pas mais je suis open

    merci

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

Discussions similaires

  1. Tableau en paramètre dans une sub
    Par beauseigne dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/10/2010, 20h40
  2. Déclaration de paramettre dans une Sub
    Par zooffy dans le forum ASP.NET
    Réponses: 10
    Dernier message: 11/05/2010, 16h49
  3. Réponses: 3
    Dernier message: 26/09/2009, 00h06
  4. passage de parametre incorrect dans une sub
    Par shinta dans le forum VBA Access
    Réponses: 4
    Dernier message: 15/12/2008, 19h23
  5. Réponses: 4
    Dernier message: 13/06/2007, 17h42

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