Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 259 fois - Téléchargée 28 fois
Sub createDB() Dim cat As ADOX.Catalog Dim tbl As New ADOX.Table Dim i As Single Set cat = New ADOX.Catalog cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.path & "\new.mdb" ' J'ai passé la partie qui consiste à vérifier que la base n'existe pas déjà, et autres ' modules pour déterminer le nom de la base... ' Création d'une table simple : Nationalité With tbl .Name = "Nationalite" ' ce qui suit est indispensable pour jouer avec les properties des champs Set .ParentCatalog = cat ' Permier champ : clé primaire .Columns.Append "ID_Nationalite", adInteger ' Préciser qu'elle est auto-incrémentée .Columns("ID_Nationalite").Properties("AutoIncrement") = True ' Nouveau champ (on trouve la définition des adInteger et autres dans le MSDN) .Columns.Append "Nationalite", adVarWChar, 50 ' NB : On peut déterminer une valeur par défaut avec : .Columns("Nationalite").Properties("Default") = "France" ' Création d'un champ OLE pour y inclure une image : .Columns.Append "Image", adLongVarBinary End With ' Précision que les champs ne sont pas en "required"... le nom de la properties ' est explicite comme vous voyez... For i = 0 To 2 tbl.Columns.Item(i).Properties("Nullable") = True Next i cat.Tables.Append tbl ' Création de la clé primaire à proprement parler tbl.Keys.Append "ClePrimaire", adKeyPrimary, "ID_Nationalite", "Nationalite" ' Pareil pour une table DVD... ' Commentaires sur les seuls éléments nouveaux Set tbl = New ADOX.Table With tbl .Name = "DVD" Set .ParentCatalog = cat .Columns.Append "ID_DVD", adInteger .Columns("ID_DVD").Properties("AutoIncrement") = True .Columns.Append "TitreVO", adVarWChar, 75 .Columns.Append "TitreVF", adVarWChar, 75 .Columns.Append "Description", adVarWChar, 150 .Columns.Append "ID_Nationalite", adInteger .Columns.Append "isFilm", adBoolean End With ' !!! ATTENTION : l'expérience montre que MEME SI LA PROPERTIES EST PRESENTE, ' il n'est pas possible de mettre un champ en NON-required (pas d'erreur) s'il est ' déclaré en adBoolean !!!! For i = 0 To 4 tbl.Columns.Item(i).Properties("Nullable") = True Next i cat.Tables.Append tbl tbl.Keys.Append "ClePrimaire", adKeyPrimary, "ID_DVD", "DVD" ' Création d'une clé étrangère avec la table précédente tbl.Keys.Append "DVDID_Nationalite", _ adKeyForeign, "ID_Nationalite", "Nationalite", "ID_Nationalite" ' Créations d'index de recherche tbl.Keys.Append "DVDTitreVF", adKeyUnique, "TitreVF", "DVD", "TitreVF" tbl.Keys.Append "DVDTitreVO", adKeyUnique, "TitreVO", "DVD", "TitreVO" End Sub
pour moi qui débute avec ADOX c'est bien pratique . J'avais justement des problèmes pour définir de clés étrangère et je crois que ça va bien m'aider.
Saurais-tu où je peux trouver une doc sur ADOX qui présente modèle objet et surtout des explications sur les différentes propriétés de chaque objet où collection ?
Merci
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.