Creer fichier .mdb [Résolu]

cs_kakol 180 Messages postés mardi 21 décembre 2004Date d'inscription 12 juin 2008 Dernière intervention - 21 juil. 2005 à 17:38 - Dernière réponse : cs_kakol 180 Messages postés mardi 21 décembre 2004Date d'inscription 12 juin 2008 Dernière intervention
- 21 juil. 2005 à 19:23
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 ***
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
zebobo5 273 Messages postés dimanche 5 octobre 2003Date d'inscription 6 février 2009 Dernière intervention - 21 juil. 2005 à 19:02
3
Merci
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

Merci zebobo5 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de zebobo5
cs_kakol 180 Messages postés mardi 21 décembre 2004Date d'inscription 12 juin 2008 Dernière intervention - 21 juil. 2005 à 17:52
0
Merci
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 ***
Commenter la réponse de cs_kakol
zebobo5 273 Messages postés dimanche 5 octobre 2003Date d'inscription 6 février 2009 Dernière intervention - 21 juil. 2005 à 18:00
0
Merci
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
Commenter la réponse de zebobo5
cs_kakol 180 Messages postés mardi 21 décembre 2004Date d'inscription 12 juin 2008 Dernière intervention - 21 juil. 2005 à 18:23
0
Merci
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 ***
Commenter la réponse de cs_kakol
zebobo5 273 Messages postés dimanche 5 octobre 2003Date d'inscription 6 février 2009 Dernière intervention - 21 juil. 2005 à 18:34
0
Merci
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
Commenter la réponse de zebobo5
cs_kakol 180 Messages postés mardi 21 décembre 2004Date d'inscription 12 juin 2008 Dernière intervention - 21 juil. 2005 à 18:36
0
Merci
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 ***
Commenter la réponse de cs_kakol
cs_kakol 180 Messages postés mardi 21 décembre 2004Date d'inscription 12 juin 2008 Dernière intervention - 21 juil. 2005 à 18:37
0
Merci
Pardon j'avais pas vu ta reponse je vais reessayer.
Merci

*** Kakol ***
Commenter la réponse de cs_kakol
cs_kakol 180 Messages postés mardi 21 décembre 2004Date d'inscription 12 juin 2008 Dernière intervention - 21 juil. 2005 à 18:53
0
Merci
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 ***
Commenter la réponse de cs_kakol
cs_kakol 180 Messages postés mardi 21 décembre 2004Date d'inscription 12 juin 2008 Dernière intervention - 21 juil. 2005 à 19:23
0
Merci
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 ***
Commenter la réponse de cs_kakol

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.