OVH Cloud OVH Cloud

Base de données Access

3 réponses
Avatar
Olivier
Bonjour,

Comment faire pour créer une base de données Access comme fichier d'enregistrement de données, depuis une application C# ?

J'ai trouvé des exemples pour ouvrir, exécuter des requêtes, mais rien pour créer un fichier .mdb (mis à part MS Access lol )

Merci pour vos réponses

Olivier

3 réponses

Avatar
Olivier
Salut,

C'est génial, un grand merci pour ton aide !!! :-)

Olivier


"Whiplash" a écrit dans le message de news: %23n77$
Salut,

d'abord repérer la DLL (win32) MSADOX.DLL
puis en faire une DLL .NET avec TLBIMP.EXE

tlbimp msadox.dll

ça va te donner un assembly ADOX.DLL contenant les metadata nécessaire

puis utilise CreateDatabase

using System ;
using ADOX ;

namespace ADOXUtil
{
public enum AccessVersion
{
Access2 = 3,
Access97 = 4,
Access2000 = 5
}

public sealed class Access
{
public static void CreateDatabase(string aDataSource)
{
CreateDatabase("Microsoft.Jet.OLEDB.4.0", aDataSource, 5) ;
}

public static void CreateDatabase(string aDataSource, AccessVersion aAccessVersion)
{
CreateDatabase("Microsoft.Jet.OLEDB.4.0", aDataSource, (int) aAccessVersion) ;
}

public static void CreateDatabase(string aProvider, string aDataSource, int aEngineType)
{
string wConnectionString = String.Format(
"Provider={0};Data Source={1};Jet OLEDB:Engine Type={2}",
aProvider,
aDataSource,
aEngineType) ;

ADOX.CatalogClass wCatalog = new ADOX.CatalogClass() ;
try
{
wCatalog.Create(wConnectionString) ;
}
finally
{
wCatalog = null ;
}
}
}
}

"Olivier" a écrit dans le message de news:43219ad7$0$29514$
Bonjour,

Comment faire pour créer une base de données Access comme fichier d'enregistrement de données, depuis une application C# ?

J'ai trouvé des exemples pour ouvrir, exécuter des requêtes, mais rien pour créer un fichier .mdb (mis à part MS Access lol )

Merci pour vos réponses

Olivier




Avatar
Whiplash
Salut,

Houla, "génial" je ne crois pas ;-)
mais c'est très gentil de ta part d'apprécier mon code et de le faire savoir :-D
je me dois de partager tes remerciements avec tous les auteurs des nombreuses informations trouvées avec google,
je n'ai _que_ rassemblé ces infos, et fait un code "à ma façon" :-)

Merci
@+

"Olivier" a écrit dans le message de news:4321ad79$0$2932$
Salut,

C'est génial, un grand merci pour ton aide !!! :-)

Olivier


"Whiplash" a écrit dans le message de news: %23n77$
Salut,

d'abord repérer la DLL (win32) MSADOX.DLL
puis en faire une DLL .NET avec TLBIMP.EXE

tlbimp msadox.dll

ça va te donner un assembly ADOX.DLL contenant les metadata nécessaire

puis utilise CreateDatabase

using System ;
using ADOX ;

namespace ADOXUtil
{
public enum AccessVersion
{
Access2 = 3,
Access97 = 4,
Access2000 = 5
}

public sealed class Access
{
public static void CreateDatabase(string aDataSource)
{
CreateDatabase("Microsoft.Jet.OLEDB.4.0", aDataSource, 5) ;
}

public static void CreateDatabase(string aDataSource, AccessVersion aAccessVersion)
{
CreateDatabase("Microsoft.Jet.OLEDB.4.0", aDataSource, (int) aAccessVersion) ;
}

public static void CreateDatabase(string aProvider, string aDataSource, int aEngineType)
{
string wConnectionString = String.Format(
"Provider={0};Data Source={1};Jet OLEDB:Engine Type={2}",
aProvider,
aDataSource,
aEngineType) ;

ADOX.CatalogClass wCatalog = new ADOX.CatalogClass() ;
try
{
wCatalog.Create(wConnectionString) ;
}
finally
{
wCatalog = null ;
}
}
}
}

"Olivier" a écrit dans le message de news:43219ad7$0$29514$
> Bonjour,
>
> Comment faire pour créer une base de données Access comme fichier d'enregistrement de données, depuis une application C# ?
>
> J'ai trouvé des exemples pour ouvrir, exécuter des requêtes, mais rien pour créer un fichier .mdb (mis à part MS Access lol )
>
> Merci pour vos réponses
>
> Olivier
>
>




Avatar
Boris Sargos
Salut,
un grand merci effectivement, car j'avais posté cette question il plus
d'un an, et personne ne m'avait donné de bonne réponse.