[VB.NET] Tableau multi-dimensionnel

Résolu
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. Modérateur
    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
    1. 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
      1. Modérateur
        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. 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
      2. Modérateur
        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
        1. merci ça fonctionne. il y a quand même une grosse différence avec la progra sous ACCESS
          0
          1. Modérateur
            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. Modérateur
            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
        2. Modérateur
          Passage rapide, en activant"Option Explicit" et "Option Strict", tu aurais tout de suite vu ton erreur.
          0