Comment créer les relations entre les tables d'1 BD avec du code? [Résolu]

cs_aminix9 96 Messages postés mercredi 2 juin 2004Date d'inscription 9 février 2010 Dernière intervention - 25 nov. 2004 à 00:59 - Dernière réponse : hkool81 1 Messages postés vendredi 7 septembre 2007Date d'inscription 17 septembre 2007 Dernière intervention
- 17 sept. 2007 à 15:35
salut à vous !
Bon j ai un diagramme de classe avec des relations entre elles j'arrive à créer les tables correspondantes au classes mais le pb c comment créer les relations entre les tables de la BD(clé primaire,clé étrangère...)

et merci!
Afficher la suite 

3 réponses

Meilleure réponse
Ricks27 79 Messages postés mardi 4 juin 2002Date d'inscription 29 juillet 2005 Dernière intervention - 25 nov. 2004 à 11:32
3
Merci
Bonjour,

C'est une base de données au format access?
Tu utilise VB6?

si oui : Voici un exemple de création de tables, de champs, et de relations en VB6

Public Sub CréationTables()
          Dim T As DAO.TableDef
          Dim f As DAO.Field
          Dim r As DAO.Relation
          Dim ix As DAO.Index
          Dim prp As DAO.Property
          Dim x As Long
          
          On Error GoTo TraiteErreur
          
          ' ---- Création Table Composants ----
          
          Set T = Db.CreateTableDef("Composants")
          
          'Id      : NuméroAuto + PrimaryKey
          Set f = T.CreateField("Id", DAO.DataTypeEnum.dbLong)
          f.Attributes = DAO.dbAutoIncrField
          T.Fields.Append f
          
          Set ix = T.CreateIndex("PrimaryKey")
          With ix
                    .Fields.Append .CreateField("Id")
                    .Primary = True
          End With
          T.Indexes.Append ix
          
          'Libellé : Texte(50) + Chaîne vide autorisée
          Set f = T.CreateField("Libellé", DAO.DataTypeEnum.dbText, 50)
          f.AllowZeroLength = True
          f.Required = False
          T.Fields.Append f

          Db.TableDefs.Append T
         
          
          ' ---- Création Table Constituants ----
          
          Set T = Db.CreateTableDef("Constituants")
          
          'Id      : NuméroAuto + PrimaryKey
          Set f = T.CreateField("Id", DAO.DataTypeEnum.dbLong)
          f.Attributes = DAO.dbAutoIncrField
          T.Fields.Append f
          
          Set ix = T.CreateIndex("PrimaryKey")
          With ix
                    .Fields.Append .CreateField("Id")
                    .Primary = True
          End With
          T.Indexes.Append ix
          
          'Flux    : Numérique + Décimal Auto
          Set f = T.CreateField("Flux", DAO.DataTypeEnum.dbLong)
          f.DefaultValue = 0
          T.Fields.Append f
          
          'Composant    : Numérique + Décimal Auto
          Set f = T.CreateField("Composant", DAO.DataTypeEnum.dbLong)
          f.DefaultValue = 0
          T.Fields.Append f
          
          'Pourcentage  : Réel double + 2 Décimals
          Set f = T.CreateField("Pourcentage", DAO.DataTypeEnum.dbDouble)
          f.DefaultValue = 0
          T.Fields.Append f
          
          Db.TableDefs.Append T

          Db.TableDefs.Refresh
          Set T = Db.TableDefs("Constituants")
          Set f = T.Fields("Pourcentage")
          Set prp = f.CreateProperty("DecimalPlaces", dbByte, CByte(2))
          f.Properties.Append prp
          T.Fields.Refresh
          
                   
          ' ----- Relation -> Composants vers constituants -----
          
          Set r = Db.CreateRelation()
          With r
                    .Name = "ComposantsConstituants"
                    .Table = "Composants"
                    .ForeignTable = "Constituants"
                    .Attributes = DAO.dbRelationLeft
          
                    Set f = .CreateField("Id")
                    f.ForeignName = "Composant"
                    r.Fields.Append f
          End With
          Db.Relations.Append r
       

TraiteErreur:
        If Err = 0 Then
                Set T = Nothing
                Set f = Nothing
                Set ix = Nothing
                Set r = Nothing
                MsgBox "Les Tables Constituants et Composants ont été créées avec succés.", vbInformation, "Confirmation de création"
        Else
                Set T = Nothing
                Set f = Nothing
                Set ix = Nothing
        End If
End Sub


Ricks27

Merci Ricks27 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

cs_aminix9 96 Messages postés mercredi 2 juin 2004Date d'inscription 9 février 2010 Dernière intervention - 26 nov. 2004 à 00:48
0
Merci
merci Ricks27!

je vais adapter ton code avec le mien et je pensa que ça va marcher!
merci une autre fois
a+
hkool81 1 Messages postés vendredi 7 septembre 2007Date d'inscription 17 septembre 2007 Dernière intervention - 17 sept. 2007 à 15:35
0
Merci
salut tout le monde
jesuis vraiment heureux d'avoir ce site dont je suis tres reconnaissant et aussi aux navigateurs de ce site
donc ma demande est la suivante

comment declarer un workspace et un base de donnée de plusieurs tables dans un projet de vb6
merci
jesuis encore un dibuttant

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.