[VB.NET] Tableau multi-dimensionnel [Résolu/Fermé]

Signaler
Messages postés
108
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
11 février 2015
-
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
-
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

Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
278
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 ?
Messages postés
108
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
11 février 2015
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
Messages postés
31519
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2021
3 288
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....

Messages postés
108
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
11 février 2015
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
Messages postés
31519
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2021
3 288
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
Messages postés
108
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
11 février 2015
7
merci ça fonctionne. il y a quand même une grosse différence avec la progra sous ACCESS
Messages postés
31519
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2021
3 288
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 ..
Messages postés
31519
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2021
3 288
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
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
278
Passage rapide, en activant"Option Explicit" et "Option Strict", tu aurais tout de suite vu ton erreur.