Creer fichier .mdb [Résolu]

Signaler
Messages postés
180
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2008
-
Messages postés
180
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2008
-
Bonjour a tous.
J'ai un combobox avec plusieurs items. J'aimerais pouvoir creer une base de donnees associee a l'item que je selectionne dans le combobox.
Je m'explique : quand je selectionne un item dans le combobox je voudais generer un nouveau fichier .mdb portant le meme nom que l'item selectionne (ex: si je selectionne map1 je voudrais creer map1.mdb), ce fichier n'existant pas auparavant.
Pouvez-vous m'aider svp? (ps : je suis encore novice en c#).
Merci d'avance.

*** Kakol ***

9 réponses

Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
Fait :

public void createfile(string name)
{
try
{
//Création d'un fichier vide.
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ name +".mdb;Jet OLEDB:Engine Type=5");
cat = null;
MessageBox.Show("fichier créé");
}
catch
{
MessageBox.Show("Erreur dans la creation de la base");
}

<HR>
ZeBobo5
Messages postés
180
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2008

J'ai essaye ca :

result = comboBox1.Text;
try
{
//Création d'un fichier vide.
FileStream fs = File.Create(result+".mdb");
fs.Close();
Console.WriteLine("fichier créé");
}
catch
{
MessageBox.Show("Erreur dans la creation de la base");
}

Le fichier .mdb est bien cree avec le nom de l'item selectionne mais quand je l'ouvre avec Access j'ai une erreur : Unrecognize database format.
Que doit-je faire?

*** Kakol ***
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
Tt simple avec ADOX...
Fait une référence au COM : "Microsoft ADO Ext. 2.8 for DDL and Security" ou "Microsoft ADO Ext. 2.7 for DDL and Security"
et enfin :

ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\AccessDB\\NewMDB.mdb;" +"Jet OLEDB:Engine Type=5");
cat = null;


<HR>
ZeBobo5
Messages postés
180
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2008

Salut Zebobo5 et merci de m'avoir repondu.
J'ai bien rajoute "Microsoft ADO Ext. 2.8 for DDL and Security" en reference au COM mais pourrais-tu m'expliquer ou je dois rajouter ton bout de code et ce que je dois mettre dans DataSource = ... parce que ca ne fonctionne toujours pas?
merci.

*** Kakol ***
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
mon bout de code comme tu dis, tu le met au moment où tu ve créer ton fichier Access.
et pour le DataSource=
Apres le "=", soit tu met le nom de ton fichier sans guillemets, soit tu met l'adresse tjs sans guillemets.
Ainsi ton code sera du genre (si tu utilise un bouton pour valider la creation du fichier) :


private
void btnValider_Click(object sender, EventArgs e)
{
//Le fichier sera à la racine du lecteur C:
string strNomDuFichier = "C:\" + cmbCombBox.Text + ".mdb";

ADOX.CatalogClass cat = new ADOX. CatalogClass ();

cat.Create("Provider =Microsoft.Jet.OLEDB.4.0;Data Source=" + strNomDuFichier " + ";Jet OLEDB:Engine Type=5");
...
}

<HR>


ZeBobo5
Messages postés
180
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2008

J'ai fait :
public void createfile(string name)
{
try
{
//Création d'un fichier vide.
FileStream fs = File.Create(name+".mdb");
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source="+fs+".mdb" +"Jet OLEDB:Engine Type=5");
cat = null;
fs.Close();
MessageBox.Show("fichier créé");
}
catch
{
MessageBox.Show("Erreur dans la creation de la base");
}

J'ai bien le message "fichier cree" mais toujours l'erreur "Unrecognized database format" a l'ouverture du fichier

*** Kakol ***
Messages postés
180
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2008

Pardon j'avais pas vu ta reponse je vais reessayer.
Merci

*** Kakol ***
Messages postés
180
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2008

Non rien a faire sniff j'ai meme essaye en mettant le nom qu'aura la base apres le "=" mais je vois toujours pas ce qui ne va pas car j'ai toujours le meme message a l'ouverture de la base.
Que faire ?

*** Kakol ***
Messages postés
180
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
12 juin 2008

Ok merci beaucoup ca marche tres bien. Mon probleme venait donc du fait que j'avais deja cree un fichier name+".mdb" alors qu'il doit etre cree avec ADOX.CatalogClass ... Je comprend mieux son utilite.
Encore merci pour ton aide.
Bonne continuation

*** Kakol ***