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 :

Passage d un tableau 2D en paramètres d une procedure


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 8
    Points
    8
    Par défaut Passage d un tableau 2D en paramètres d une procedure
    Bonjour

    Comment faire pour faire passer un tableau 2D en paramètre d'une procédure
    J'ai tater un peu et il n'accepte que des tableaux à une dimension
    Comment faire??

    Il faut savoir aussi que je n'ai pa besoin de modifier les données du tableau

    Merci d'avance

    Cdt

    CaptJack

  2. #2
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Bonjour,


    Sans connaître la réelle solution à ton problème, même s'il me parais bizarre qu'on ne puisse passer paramètre comme paramètre un tableau à deux dimensions(très étrange je dirais...), tu n'a pas essayer la méthode bien bourrin qui consiste à stocker ton tableau à deux dimensions dans deux tableaux à une dimension ("Y'a de Papoux à poux et des Papoux pas à poux..." ) ???

    Ca devrait te rencarder le temps que tu trouve le moyen de passer ton tableau en paramètre...

    Pitite chose pour finir, histoire d'être sûr, tu ne voudrais pas poster l'ensemble de ton code s'il te plait, histoire qu'on puisse vérifier que ce ne soit pas une erreur bête comme on a tous passé des journées dessus...
    D'avance merci


    Cordialement...



    Edit: pense à corriger ta faute d'orthographe dans le titre...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    tres bien je vais essayer la methode bourrin

    autrement voici mon code

    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
     
    Option Explicit
    Dim nouvFen As frmRegister
    Dim nouvAppel As frmAppel
    Dim tablo(3, 5) As String
     
    'dans le sub
    'le tableau que j'utilise pour des affichage ultérieurs
    For a = 0 To 5
        'premiere colonne <--Register-->
        tablo(a, 0) = "Register" & Chr(17 + Asc(a))
        'deuxième colonne <--User-->
        tablo(a, 1) = User(a).Text
        'troisième colonne <--Phone-->
        tablo(a, 2) = Phone(a).Text
        'quatrième colonne <--Renvoi-->
        tablo(a, 3) = Renvoi(a).Text
    Next a
     
     
    Set nouvFen = New frmRegister
        name = "Register" & Chr(17 + Asc(iPnt))
        nouvFen.Chargement tablo(,),iPnt    'ligne avec erreur
        nouvFen.Move PosX, PosY
        PosX = PosX + 500
        PosY = PosY + 500
        nouvFen.Show
     
    'dans le module...
     
    Public Sub Chargement(tab(,) as String, indice As Integer) ' ligne avec erreur
    Caption = tab(0,indice)      'ligne avec erreur
    nomReg.Caption = nom 
    Register.Text = uti
    End Sub
    Merci

  4. #4
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Bha déjà tu déclare un tableau "tablo(3,5)" et dans la première boucle for que tu croises tu essais d'utiliser un tableau "tablo(5,3)" ...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    oui je me suis trompé je faisais un autre truc j'ai mal recopier j'ai modofoé et rien de change

    Dans l'execution avec compilation complete il n'accepte pas le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public Sub Chargement(tab(,)
    il me dis qu'il attend un identificateur
    pourquoi?
    peux tu m'eclairer?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    tab(,) ?

    C'est quoi cette virgule ?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    c pour dire qu'il s'agit d'un tableau à deux dimensions je ne sais pas comment faire autrement il ne compile pas du tout

  8. #8
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    bha la moindre des choses pour un paramètre c'est d'avoir un nom... isn't it ?

    Essai de lui donner un nom pour les dimensions histoire de voir...

    Genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Sub Chargement(tablo(X as Integer, Y as Integer))

  9. #9
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    lol
    La praline, CaptJack lui a bien donné un Nom, Tab est un nom de variable valide pour vb, quoique ce choix ne soit pas particulièrement judiceux( il y a des composants qui ont des objet Tab)

    Moi j'aurais bien vu la declaration comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub Chargement(tab as Variant, indice As Integer) ' ligne avec erreur
    Caption = tab(0,indice)      'ligne avec erreur
    nomReg.Caption = nom 
    Register.Text = uti
    End Sub
    Et l'appel comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nouvFen.Chargement tablo,iPnt

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    ouep...ca ne marche pas ta solution delbeke...quand j'appelle la fonction il me sort une erreur type d'argument byref incompatible
    j'ai donc essayé by val rien à faire

  11. #11
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par Delbeke
    lol
    La praline, CaptJack lui a bien donné un Nom, Tab est un nom de variable valide pour vb
    Ce n'était pas "Tab" qui me choquais, mais plutôt le fait qu'il déclarais sa fonction sans passer les dimmension de son tableau en paramètre...
    Relis ma réponse tu vas comprendre ^^

  12. #12
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Comment est dimensionné iPnt que tu passes en argument ?

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    comment est dimensionné??cad??
    c un entier..je sais pas si je repond a ta reponse

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    ta reponse ne marche pa la praline car apres la premiere parenthese situé apres tablo il en attend une autre donc un tableau a une dimension...

  15. #15
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Dans ton code , quel mot utilises-tu à la place des points d'interrogation ?


  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    comment est dimensionné??cad??
    c un entier..je sais pas si je repond a ta reponse
    integer pour te repondre en anglais..lol

    cela change-t-il qqch?

  17. #17
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Ben j'avoue que je ne comprends pas ton pb non plus car Delbeke a raison.

    Tu as ton tableau du style
    dim tablo(2,5)
    ton autre variable dimensionnée comme ceci :
    Dim Truc as integer

    Donc tu dois appeler ta procédure :
    Maprocédure Tablo, Truc

    La procédure en question étant délcarée comme suit :
    Sub MaProcédure (Tb as Variant, Machin as Integer)

    C'est bien ça que tu as ?

    Tu peux pour un double ou triple check nous copier/coller une fois de plus les lignes ou tu declares ton tableau, ton autre variable, ainsi que la ligne ou tu appelles la procédure et la première ligne de ta procédure?

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    c'est exactement ce que j'ai et en fait quand j'appelle la procédure il me sort une erreur au niveau du tablo le type d'argument byref est incompatible...

    Merci..

  19. #19
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Tu peux nous montrer tes lignes de code encore une fois stp ? Parce que vu que ça marche chez nous et pas chez toi, doit quand même y avoir une petite différence

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Ok ok

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
     
    Dim nouvFen As frmRegister
    Dim nouvAppel As frmAppel
    Dim tablo(5, 3) As String
    Dim titre As String
    Dim PosX As Long
    Dim PosY As Long
    Dim index, i, j, a, nindex, iPnt As Integer
    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
    Private Sub PageRegister_Click()
    'Pour afficher les fenetres register
     
    'le tableau que j'utilise pour des affichage ultérieurs
    For a = 0 To 5
        'premiere colonne <--Register-->
        tablo(a, 0) = "Register" & Chr(17 + Asc(a))
        'deuxième colonne <--User-->
        tablo(a, 1) = User(a).Text
        'troisième colonne <--Phone-->
        tablo(a, 2) = Phone(a).Text
        'quatrième colonne <--Renvoi-->
        tablo(a, 3) = Renvoi(a).Text
    Next a
     
     
      For iPnt = 0 To 5
      'Si le numero est renseigné
      If User(iPnt).Text <> "" Then
        'on ouvre une nouvelle form
        Set nouvFen = New frmRegister
        'avec le titre correspondant
        'titre = "Register" & Chr(17 + Asc(iPnt))
        nouvFen.Afficher tablo, iPnt
        nouvFen.Move PosX, PosY
        PosX = PosX + 500
        PosY = PosY + 500
        nouvFen.Show
        End If
      Next
     
    End Sub
    dans frmRegister
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub Afficher(tableau As Variant, indice As Integer)
    Caption = tableau(indice, 0)
    nomReg.Caption = tableau(indice, 0)
    Register.Text = tableau(indice, 1)
    End Sub
    Et la la compilation passe nikel mais quand je clik il ne veux pas m'ouvrir la page donc c'est que la procédure n'est pas réalisé

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Passage d'un type Query en paramètre d'une methode
    Par crixcrox dans le forum Général Java
    Réponses: 0
    Dernier message: 15/05/2014, 12h33
  2. Réponses: 15
    Dernier message: 06/02/2012, 00h45
  3. Réponses: 2
    Dernier message: 22/12/2009, 16h01
  4. [AJAX] AJAX : Passage d'un tableau 2D en paramètre
    Par niacinside dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/06/2008, 11h48
  5. Passage d'un tableau javascript en paramètres d'une URL
    Par seblo_scoqi dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 02/09/2005, 11h46

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