[VB.NET] Tableau multi-dimensionnel

Résolu
platypus69 Messages postés 122 Statut Membre -  
NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

habituellement je réponds au question, aujourd'hui c'est moi qui vais en poser une. Je me suis mis récemment à développer sous Visual Studio, histoire de découvrir toujours de nouvelles choses.

Pour commencer je voulais créer une petite application de conversion avec des valeurs fixe. J'ai créé un form, jusque la tous va bien.


maintenant j'essaye d'intégrer au code VB, un tableau multi-dimension
Dim tbl_convert(81, 3) As Long
tbl_convert(1, 0) = 155
tbl_convert(1, 1) = 147
tbl_convert(1, 2) = 955
tbl_convert(1, 3) = 495


la liste est long, je ne mets pas tous.
en cliquant sur le bouton "Calculer", la fonction devrait m'afficher 955, ce qui correspond à tbl_convert(1,2)

Malheureusement, il ne m'affiche rien dans le champs concerné mais le 0 disparaît.

Question : y-a-t'il une façon particulière de déclarer les tableaux sous Visual Studio ?

Merci d'avance

6 réponses

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Bonjour,

    Déjà, ce n'est pas Visual Studio, mais VB.NET dont il est question.

    Ensuite, ta déclaration semble bonne, comment sélectionnes-tu tes données, comment les utilises-tu ?
    0
  2. platypus69 Messages postés 122 Statut Membre 7
     
    Bonjour,

    pour l'instant c'est un simple test.

    dans mon formulaire principal j'ai cela en code :

    Public Class Form1
    Public Sub btn_convert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_convert.Click
    Call ini_tbl_convert()
    Me.txt_result_HRC.Text = tbl_convert(0, 2)
    MsgBox(tbl_convert(1, 2))
    End Sub

    Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Call ini_tbl_convert()
    End Sub
    End Class


    et dans un module à coté :


    Module tableau_conversion
    Public Sub ini_tbl_convert()
    Dim tbl_convert(81, 3) As Long
    tbl_convert(1, 0) = 155
    tbl_convert(1, 1) = 147
    tbl_convert(1, 2) = 955
    tbl_convert(1, 3) = 495

    End Sub
    End Module


    Erreur sorti du compilateur : 'tbl_convert' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.

    Quand je fais exactement le même code sous ACCESS, je n'ai aucun problème
    0
  3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour
    je pense que tu as un souci de portée de ta variable. .
    La..tu la déclare dans une sub et essaye de l'utiliser dans une autre....

    0
    1. platypus69 Messages postés 122 Statut Membre 7
       
      Bonjour Jordane45,

      j'ai essayé aussi dans l'implanter dans le Form1 mais même résultat.

      C'est vrai que c'est assez étrange comme problème
      0
  4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Ce n'est pas étrange.. c'est normal...

    Dans ton Module.. AVANT toute SUB
    tu déclares ta variable
    public tbl_convert(81, 3) As Long
    


    Elle sera ensuite accessible partout dans ton code
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. platypus69 Messages postés 122 Statut Membre 7
     
    merci ça fonctionne. il y a quand même une grosse différence avec la progra sous ACCESS
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      en ce qui concerne la portée des variables ... non.
      En VBA aussi .. il faut les déclarer Au début du module pour qu'elles soient globales il me semble.
      Sinon.. en effet.. VB.net et VBA sont assez différents....
      Le VB.net est clairement plus orienté objet ..
      0
    2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Si la question est résolue..
      Merci de ne pas oublier de clôturer le sujet
      (en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

      Cordialement,
      Jordane
      0
  7. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Passage rapide, en activant"Option Explicit" et "Option Strict", tu aurais tout de suite vu ton erreur.
    0