begin process at 2012 02 17 05:10:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Bases de données

 > 

CREATE DATABASE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

CREATE DATABASE

samedi 4 mars 2006 à 18:28:13 | CREATE DATABASE

Compufly

Bonjour,

J'essaie d'utiliser une base de données ACCESS dans mon code en VB6.
J'aimerais que mon code crée une base de données ACCESS vide nommée pool.mdb si elle n'existe pas déjà.

Partout où je cherche, tout le monde dit d'utiliser ADODB pour gérer les bases de données ACCESS, mais tous les exemples de création d'un fichier de base de données ACCESS utilisent DAO...

Quelqu'un peut m'expliquer cette contradiction?
Mais surtout, quelqu'un peut m'indiquer comment créer ma base ACCESS avec ADODB?

Ensuite, je voudrais savoir comment lister le nom des tables existantes d'une base de données ACCESS existante.
Autrement dit, l'équivalent MySQL :
SHOW DATABASES;
SHOW TABLES;
SELECT DATABASE();
DESCRIBE table;

Puis, surtout, pourquoi :
CREATE TABLE player_name IF NOT EXIST ( ...

ne fonctionne pas?
Comment je peux détecter si une table existe ou non avant d'essayer de la créer?

Compufly
samedi 4 mars 2006 à 18:49:25 | Re : CREATE DATABASE

Willi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Salut,
Rajoute la référence Microsoft ADO Ext 2.xx for dll and security.

Donc pour créer ta base access rien de plus simple:
Set catX = New ADOX.Catalog
catX.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TaBase.mdb"
samedi 4 mars 2006 à 18:59:40 | Re : CREATE DATABASE

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
C'est tout simplement qu'il est bien plus simple de créer une base de données avec DAO qu'avec ADO !!!

Voir par exemple mon tutorial pour créer une base de données sur www.ProgOtoP.com

_

samedi 4 mars 2006 à 19:07:37 | Re : CREATE DATABASE

Compufly

Je trouve la réponse de Willi pourtant très simple ;)

Merci beaucoup...

Compufly
samedi 4 mars 2006 à 19:14:55 | Re : CREATE DATABASE

Willi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

Pour lister les tables de ta base (ajoute la réf microsoft activex data objects 2.x....)
Exemple dans un listbox:

    Dim con As New ADODB.Connection
    Dim rs As New ADODB.Recordset
   
    'connection à la base
    con.Provider = "Microsoft.Jet.OLEDB.4.0;User ID=admin;Data Source=C:\TaBase.mdb"
    con.Open
   
    'lecture des tables
    Set rs = con.OpenSchema(adSchemaTables)

    Do Until rs.EOF
        If rs.Fields("TABLE_TYPE") = "TABLE" Then
            List1.AddItem rs.Fields("TABLE_NAME")
        End If
        rs.MoveNext
    Loop
   
    rs.Close
    con.Close

samedi 4 mars 2006 à 19:25:29 | Re : CREATE DATABASE

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Eh eh, le code qu'il t'a donné précédement te permet juste de créer le fichier, mais pas la base en elle même !

Son deuxième messaye permet par contre de créer 1 table (et déjà, pas mal de lignes de code !!!), je te laisse imaginé le nombre de ligne qu'il faut pour créer une table complète avec des champs indéxés... ca fait peur !!!

Le mieux : fait comme moi : créer une classe permettant de créer facilement et rapidement des tables/champs/index, etc.

Désolé, mais je ne peux pas te donner le code de ma classe : étant donné que je veux vendre le produit d'ici peu...

_

samedi 4 mars 2006 à 19:46:45 | Re : CREATE DATABASE

Willi

Membre Club Administrateur CodeS-SourceS
Darksidious a raison pour ce qui concerne la création de la base, la on créer que le fichier.
C'est sur après comme te conseilles Darksidious créer une classe pour simplifier les actions sur ta base...

Par contre il m'a semblait avoir lu il y a quelques temps voir plus d'un an, qu'il fallait préférer ado à dao.
Qu'en pensez-vous ??
samedi 4 mars 2006 à 19:50:58 | Re : CREATE DATABASE

Compufly

Désolé Dark Sidious, je m'étais probablement mal exprimé au départ, je cherchais vraiment un code pour créer le fichier .mdb donc le code de Willi était exactement ce que je cherchais.

Je connais déjà SQL, mais les seules applications que j'ai eu à faire jusqu'à maintenant étaient en PERL et MySQL.
C'est surtout une question d'adaptation au VB6 et M$ ACCE$$ qui me bloque chaque fois que j'essaie de faire quelque chose.

Donc, encore une fois, merci Willi pour le code de création du fichier.

Pour ce qui est de ADODB, je savais la base, mais je ne me serais jamais imaginé que ça prenait autant de code pour remplacer la bonne ville commande MySQL :
SHOW TABLES;

Merci

Par contre, le mystère suivant reste entier...

DESCRIBE table;
CREATE TABLE player_name IF NOT EXIST (...

Est-ce que la seule façon de ne pas recréer une table est vraiment de lister toutes les tables et de faire une boucle de comparaison pour voir si celle qu'on veut créer existe déjà où puis-je simplement demander à ACCESS comme je le fais pour MySQL de créer la table seulement si elle n'existe pas?

Compufly
samedi 4 mars 2006 à 20:21:21 | Re : CREATE DATABASE

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Willi : j'ai toujours préféré utiliser DAO à ADO, non pas parce que je suis contre les nouvelles technologies (je prog toujours en VB6, et je ne pense pas migrer vers .NET !!!), mais tout simplement parce que DAO est plus léger et plus rapide qu'ADO. (cependant, je programme qu'en ADO maintenant car il paraît que DAO est obsolète...)

Maintenant, ADO apporte une approche plus objet que DAO, c'est pas plus mal, mais le problème, c'est qu'on a pas mal de dépendances si on veux créer une base et la gérer dans son intégralité, alors qu'avec DAO : on référence la librairie de base (qui en plus était très bien intégrée à VB6), et hop, le tour est joué.

Compufly : oui en effet, ca doit être possible de recréer ensuite toute ta base avec des instructions SQL.
_


samedi 4 mars 2006 à 20:57:56 | Re : CREATE DATABASE

Compufly

Je vois.

Je n'ai par contre jamais utilisé les class, donc je préfère ne pas trop m'aventurer à l'extérieur de ce que je connais pour l'instant.

J'ai commencé à travailler avec VB6 il y a un an seulement, avant j'étais toujours avec QBasic sous DOS et C++ sous DOS également.
J'ai aussi utilisé PERL sous Linux et MySQL comme base de données avec mon site Internet de l'époque, donc VB n'est pas vraiment "user freindly" pour moi.
Les objets, je commence à comprendre, mais les class et tout le tralala des ActiveX, j'ai de la misère.

Merci beaucoup pour votre aide.

Willi : Une dernière chose, je vois bien comment lister les tables maintenant, mais comment puis-je lister le nom des fields dans la table?
Par exemple, j'ai une table NHL qui contient les fields PLAYER_NAME et SCORE qui eux même contiennent les valeurs Saku et 20 (admettons).

Que puis-je faire au lieu d'un DESCRIBE TABLE NHL pour lister les noms des deux fields : PLAYER_NAME et SCORE ?

Compufly

1 2

Cette discussion est classée dans : access, base, données, database, create


Répondre à ce message

Sujets en rapport avec ce message

Ouvrir une base de données depuis access [ par David2410 ] Bonjour, J'aimerais ouvrir une bas de données Access depuis vb6, mais j'ai un souci. Je ne peux pas déclarer ma variable en tant que database comme ci Gestion de base de données Access [ par Boris88 ] Je suis débutant et je réalise un jeu en VB. Je doit lire, des données dans une table. Celles-ci sont susceptibles d'être modifiées et doivent ecraser base de données ACCESS [ par neomatrix36 ] je veux renommer ma base de données ACCESS et j'ai utiliser la focntion RENAME ne marche pas,il n'y pas d'autres solutions à ça?merci d'avance BASE DE DONNEES ACCESS [ par reyman ] J'utilise actuellement dans mon application une base de données ACCESS protégé par un mot de passe.Je manipule donc les données par l'intermédiare d'u Base de données Access 2000 ds VB 6 [ par Appil ] Comment ouvrir une base de données Access 2000 avec VB6 sans avoir à la convertir en Access 97 ?Merci-=-[ Golden-X] -=- Base de données Access 2000 ds VB 6 [ par Appil ] Comment ouvrir une base de données Access 2000 avec VB6 sans avoir à la convertir en Access 97 ?Merci-=-[ Golden-X] -=- Mettre à zero une base de données ACCESS [ par yaya31 ] Re bonjour,J aimerais savoir si c est possible de remettre à zero une base. Parce que là j ai les numero auto qui sont à 500 et plus et Comme je vais Compactage de base Access 2000 [ par PierreRIVET ] Je recherche le code à inscrire dans un logiciel en VB6 de manière à compacter la base de données, par exemple à la fermeture du logiciel.La basse de Compactage d'une base de données en Access 2000 [ par PierreRIVET ] Je cherche à compacter une base de données en Access 2000 à l'aide du code VB6 inclus dans le logiciel.Pour l'instant j'utilise la méthode CompactData Reparation de Base de données Access [ par cheickos ] Voila mon probleme. j'ai fait un programme de gestion avec une base de données access. suite à des coupures d'électricité elle est endommagée et le pr


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales