Tableau Sur tableau ou Base de donnée ?

Résolu
Messages postés
438
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
23 janvier 2011
-
Messages postés
438
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
23 janvier 2011
-
Bonjours à tous voici ma méthode pour enregistrer :








           

Dim
TableauDyn1(2, 7) AsString<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>






 







            TableauDyn1 (0, 0) = RichtextBox1.Rtf






            TableauDyn1 (0, 1) = label1.Text






            TableauDyn1 (1, 0) = Textbox.Text






 







           
Dim mFile AsNew System.IO.FileStream(SaveFileDialog.FileName, FileMode.Create)






           
Dim Sm AsNew System.Runtime.Serialization.Formatters.Binary.BinaryFormatter






            

Sm.Serialize(mFile, TableauDyn1)






 







            mFile.Close()






 







 







 
          
If
Not (mySauvegarde IsNothing) Then






               

mySauvegarde.Close()






           
End
If






Méthode classique à l’aide d’un tableau de 3 lignes & 8 colonnes. rien de bien complexe...



Je voudrais savoir si c’été possible de faire des sous tableau Dans un tableau !




Je m’explique : un variable/tableau général regroupant en faite une liste de tableau  qui correspondrai à une cellule (ou ligne, men fiche). Comme ceci je pourrais garder la même structure pour sauvegarder ! Comme une pyramide ! je ne sais pas si je suis très explicite, j’espère.



Ou suis-je obliger d’utiliser des bases de données pour arriver à mes fins ?



Merci par avance ;)

6 réponses

Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007

Désolé , erreur de ma part, j'ai cru voir VB6 dans le thème.
Mais, de toutes façons, vb6 ou vb.net, le mieux est d'utiliser des tables d'une base de données.
Il faut d'abord que tu modèlises ta base. C'est à dire construire les tables dont tu as besoin et établir les relations correctes entre elles. Ensuite, de simple ordres SQL pourront te donner les résultats que tu souhaites.
Ne sachant pas ce que tu as comme données ni quelles sont leurs relations entre elles, je ne peux pas trop t'aider. Juste dire :
Chacun de tes tableaux peut être une table dans ta base de données. La ou les relations entre elles te permettent de réaliser la "pyramide" dont tu parlais. Exemple :

Un tableau t(2, 7) peut être une table contenant les champs suivants :
ID Champ0 Champ1 Champ2 Champ3 .... Champ7

ID étant l'identifiant de l'enregistrement (le n° de la ligne - 0 à 2) auquel feront référence les enregistrements des autres tables en relation avec elle.
Exemple d'une table dépendante :
ID Tableprincipale_ID Champ0 ......
avec ID l'identifiant de l'enreg au cas où une autre table devrait être liée avec et TablePrincipale_ID ID de la table "parent".

Je ne sais pas si je m'explique bien mais si tu as des notions de base de données et de SQL tu devrais comprendre.


 
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007

Salut, oui avec des types utilisateur, par exemple :

Dans un module
Public Type t
  a(10) As String
  b(10, 5) As Integer
End Type

Public MonSuperTableau As t

Et là ou tu en a besoin :
  'pour affecter des valeurs
  MonSuperTableau.a(1) = "toto"
  MonSuperTableau.b(1, 1) = 50
  'pour les lire
  MsgBox MonSuperTableau.a(1)
  MsgBox MonSuperTableau.b(1, 1)
End Sub

Mais ATTENTION à la consommation de mémoire. Le mieux serait sans doute d'utiliser une base de données bien modèlisée. Ca dépend de ce que tu veux y ranger.
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007

Excuses :

Public MonSuperTableau(10) As t

Et là ou tu en a besoin :
  'pour affecter des valeurs
  MonSuperTableau(1).a(1) = "toto"
  MonSuperTableau(1).b(1, 1) = 50
  'pour les lire
  MsgBox MonSuperTableau(1).a(1)
  MsgBox MonSuperTableau(1).b(1, 1)
End Sub
Messages postés
438
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
23 janvier 2011
1
Salut,

Merci de ton aide ;)
Mais c'est du VB6 sa ? lol depuis de tout à l'heure je cherche à comprendre ton code, me disais aussi, y'a un problème :)
j'ai lâcher le VB6 il y'a 6 ans environ maintenant j'utilise VB.NETnon sinon c'est pour enregistrer du txt, du rtf (avec image, objet, etc...) sinon je vais me faire un petit programme de comptabilité mais la j'utiliserai une base de données qui à mon avis sera plus approprié à mes besoins…<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>





Bref revenons à nous moutons
J'ai essayé de le convertir avec l’outil de mis à niveau inclue dans VS par ce que sincèrement VB6 j'ai tout zappé. surtout pour un module...
je l'ai convertit





Donc le module Avant :

Public Type t
  a(10) As String
  b(10, 5) As Integer
End Type

Public MonSuperTableau As t

donne sa (après :p) :

PublicStructure t





<VBFixedArray(10)> Dim a() AsString





<VBFixedArray(10, 5)> Dim b(,) AsString





Public

Sub Initialize()





ReDim
a(10)





ReDim
b(10, 5)





End

Sub






End

Structure






Public
MonSuperTableau(10) As t

utilisation du tableau :





MonSuperTableau.Initialize()





MonSuperTableau.b(1, 0) = Me.TextBox2.Text

je peux récupérer les valeurs ! Niquel !
Par contre ma méthode pour enregistrer ne marche pas ! Je vais continuer à bosser dessus pour voir ce qui se passe







En tous cas merci pour ton aide :)





Bonne soirée ;)
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007

Pour le rtf, image, objet, ... faut juste choisir le bon type de donnée dans la définition des champs.
Messages postés
438
Date d'inscription
samedi 24 mai 2003
Statut
Membre
Dernière intervention
23 janvier 2011
1
Salut,

si si tu t'explique bien,  enfin je t'ai compris, merci pour ta réponse.
J'utilise SQL serveur en ASP.NET sinon je n'ai que des notions de Access, donc bon SQL serveur, étant tout autre, c'est nouveau pour moi, faut que j'apprenne à l'utiliser
En tous cas , Merci pour tes réponse

Bonne fin de semaine ;)