Rechercher : dans
Par :

Créer une base de données Access en vb.net

Dernière réponse le 5 mai 2008 à 01:08:03 Rocky_123, le 5 mai 2008 à 00:35:23 
 Signaler ce message aux modérateurs

Bonjour,

Voila plusieurs dizaines de minutes qu'un truc m'énerve au plus haut point. Je cherche à générer une base de données Access en VB.Net. Un champ devrait avoir la propriété Numéro auto. Et ben malgré plusieurs codes sources que j'ai vu, aucun ne fonctionne! Si quelqu'un pouvait m'éclairer. Voici le code :

        Dim adCat As New ADOX.Catalog
        Dim tb As New ADOX.Table
        adCat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=demo.mdb")

        tb.Name = "Contacts"

        Dim col As New ADOX.Column
        col.Name = "Numéro"
        col.Type = ADOX.DataTypeEnum.adInteger
        tb.Columns.Append(col)

        tb.Columns.Append("Nom", ADOX.DataTypeEnum.adVarWChar, 50)
        tb.Columns.Append("Prénom", ADOX.DataTypeEnum.adVarWChar, 50)
        tb.Keys.Append("PK_Numero", ADOX.KeyTypeEnum.adKeyPrimary, "Numéro")

        adCat.Tables.Append(tb)


Donc le champ Numéro devrait être automatique. D'après plusieurs forums, il faudrait mettre ça comme :

col.Properties("AutoIncrement").Value = True

Et ben VB.Net ne veut rien savoir, il me dit que cette propriété n'est pas présente dans la liste, qui est même vide (si je fais un col.Properties.Count ça me renvoie 0). Ca commence vraiment à m'énerver, alors si quelqu'un a une indication, je suis preneur.
Configuration: Windows XP
Firefox 2.0.0.14

Meilleures réponses pour « Créer une base de données Access en vb.net » dans :
[VBA]Connecter une base de donnée (MDB) à excel VoirConnecter une base de donnée access (MDB) dans une application excel. Ajouter la référence Microsoft DAO object librairy X.X Dans un module général (Module1 par exemple) coller le code ci-dessous Sub CopieDBaccess() Dim BDexp As...
Bases de données - Introduction VoirQu'est-ce qu'une base de données ? Une base de données (son abréviation est BD, en anglais DB, database) est une entité dans laquelle il est possible de stocker des données de façon structurée et avec le moins de redondance possible. Ces données...

1

BloodyAngel, le 5 mai 2008 à 00:47:22

Hello
tu pourrais toujours essayer une autre façon de faire...

J'ai pioché ce code SQL sur un site, il te suffira de l'adapter et de l'utiliser dans ton code :
CREATE TABLE Product
(
ID SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
Name VARCHAR(40) NOT NULL,
PRIMARY KEY (ID)
);

En espérant que ça pourra t'aider



Aides-toi et le ciel t'aidera...

Répondre à BloodyAngel

2

Rocky_123, le 5 mai 2008 à 00:55:26

Oui j'y ai pensé, mais disons que si .NET fournit déjà des objets qui s'occupent de gérer du SQL pour toi, il faut les utiliser. C'est bien plus simple (quoique ça peut devenir tout aussi "prise de tête" dans certains cas).

Mais je viens juste de trouver où se trouve mon erreur : visiblement, il faut mettre

col.ParentCatalog = adCat

Quand on crée un objet Column pour prendre les propriétés de la BD visiblement.

Après je peux mettre :

col.Properties("Autoincrement").Value = True
col.Properties("Seed").Value = 1
col.Properties("Increment").Value = 1

Et ça marche. Dire que j'ai trouvé par hasard...

Répondre à Rocky_123

3

BloodyAngel, le 5 mai 2008 à 00:58:24

Ah oki...
Je comprend pas trop pourquoi il faut directement associer un objet colonne à un catalogue pour pouvoir initialiser ses propriétés... mais bon ^^ Le principal c'est que ça marche.
Bin t'as résolu ton propre problème... Congratulations ;)
Aides-toi et le ciel t'aidera...

Répondre à BloodyAngel

4

Rocky_123, le 5 mai 2008 à 01:01:55

Moi non plus, mais bon vu que ça marche, je dis pas non...

Sûrement pour obtenir les propriétés de ce catalogue... Vu que l'objet Column n'est pas sensé savoir à quelle base de données on est connecté, il faut un minimum d'infos...

Répondre à Rocky_123

5

BloodyAngel, le 5 mai 2008 à 01:03:46

Oui mais bon... je prend une analogie foireuse...
Quand tu initialise un item que tu vas insérer à une listview, tu le fais d'abord, puis tu l'insères seulement après à ton contrôle...
Enfin bon... si l'informatique était logique, ce ne serait plus l'informatique :p
Aides-toi et le ciel t'aidera...

Répondre à BloodyAngel

6

Rocky_123, le 5 mai 2008 à 01:06:57

On a peut être atteint l'heure où le cerveau travaille en mode "économie d'énergie"...

Le mieux sera d'aller dormir un peu et reprendre le problème sous un autre angle après le repos. LOL. Bonne nuit.

Répondre à Rocky_123

7

 BloodyAngel, le 5 mai 2008 à 01:08:03

Ouais sauf que moi je termine le boulot à 5h du mat' ^^
Mais bon... bonne nuit à toi :p
Aides-toi et le ciel t'aidera...

Répondre à BloodyAngel