[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
    Passage rapide, en activant"Option Explicit" et "Option Strict", tu aurais tout de suite vu ton erreur.
    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
      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. 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. 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,

          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