Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

DAO, ouverture d'une base Access en C#

3 réponses
Avatar
jean pierre bassot
Bonjour à tous
J'espère ne pas être hors sujet mais il s'agit quand même de base Access
Voila: je souhaite ouvrir une base Acces dans un prg C#, je l'ai déjà
fait dans un autre prg (et la ça marche) je refais (je pense) dans un
autre prg et la ça ne marche pas voici la syntaxe employée

DAO.Database La_Base;

DBEngine mon_Access=new DBEngine();

La_Base=mon_Access.OpenDatabase("S1.mdb",false,false,"; pwd=bace");

N.B j'ai bien plus haut dans le prg un using DAO (et j'ai pris comme
référence Microsoft DAO 3.6 Object Library)
Acces 2003 est installé et fonctionne (et ouvre la base)
La base S1.mdb est dans le même dossier que l'exe testé
Erreur produite:Format de base de données ('I:\ProgC#\essai_win_base\bin
\Debug\S1.mdb') non reconnu.
Prg ecrit dans CSharp

Si quelqu'un a une idée je l'en remercie par avance.
--
J.P.B.

3 réponses

Avatar
Raymond [mvp]
Bonsoir.

pas d'idée du tout mais une réflexion.

access 2003 ouvrant la base on peut penser qu'elle est de niveau 2002-2003
ou niveau inférieur converti correctement.
la dll DAO étant 3.6 on pourrait penser qu'il n'y a pas de problème de ce
côté, mais est-ce bien la dll 3.6 qui est utilisée par ton C, justement pour
cette base. il faudrait en être sûr.
une base 2002 ne peut être ouverte que par le moteur jet4, et si par un
malheureux hasard, tu n'avais que le jet3, le message d'erreur se
justifierait mais access 2003 ne pourrait ouvrir la base que si c'est une
base confirmée à l'ancien niveau style access 97.

ça fait beaucoup de si.

je commencerais par mettre à jour windows et office y compris le MDAC. et
ton C# est-il capable d'accepter jet4 ? est-il d'une version récente ?

c'est peu, je reconnais.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"jean pierre bassot" a écrit dans le
message de news: f567o1$14vc$
|
| Bonjour à tous
| J'espère ne pas être hors sujet mais il s'agit quand même de base Access
| Voila: je souhaite ouvrir une base Acces dans un prg C#, je l'ai déjà
| fait dans un autre prg (et la ça marche) je refais (je pense) dans un
| autre prg et la ça ne marche pas voici la syntaxe employée
|
| DAO.Database La_Base;
|
| DBEngine mon_Access=new DBEngine();
|
| La_Base=mon_Access.OpenDatabase("S1.mdb",false,false,"; pwdºce");
|
| N.B j'ai bien plus haut dans le prg un using DAO (et j'ai pris comme
| référence Microsoft DAO 3.6 Object Library)
| Acces 2003 est installé et fonctionne (et ouvre la base)
| La base S1.mdb est dans le même dossier que l'exe testé
| Erreur produite:Format de base de données ('I:ProgC#essai_win_basebin
| DebugS1.mdb') non reconnu.
| Prg ecrit dans CSharp
|
| Si quelqu'un a une idée je l'en remercie par avance.
| --
| J.P.B.
Avatar
jean pierre bassot
On Mon, 18 Jun 2007 20:15:45 +0200, Raymond [mvp] wrote:

Bonsoir.

pas d'idée du tout mais une réflexion.

access 2003 ouvrant la base on peut penser qu'elle est de niveau
2002-2003 ou niveau inférieur converti correctement. la dll DAO étant
3.6 on pourrait penser qu'il n'y a pas de problème de ce côté, mais
est-ce bien la dll 3.6 qui est utilisée par ton C, justement pour cette
base. il faudrait en être sûr. une base 2002 ne peut être ouverte que
par le moteur jet4, et si par un malheureux hasard, tu n'avais que le
jet3, le message d'erreur se justifierait mais access 2003 ne pourrait
ouvrir la base que si c'est une base confirmée à l'ancien niveau style
access 97.

ça fait beaucoup de si.

je commencerais par mettre à jour windows et office y compris le MDAC.
et ton C# est-il capable d'accepter jet4 ? est-il d'une version récente
?

c'est peu, je reconnais.


merci pour la réponse
je suis sous w2k pro totalement à jour
office 2003 à jour aussi (j'ai refait office update après ta réponse)
je viens de mettre mdac à jour (mdac 2.8 sp1)
environnement de programmation sharpdevelop 2.1 qui repose sur le
framework .Net 2.0
quand je choisis la référence à DAO j'ai le choix entre 3.6 et 2.5/3.5 je
choisis bien 3.6 donc il doit prendre la bonne dll
N'importe comment j'ai essayé avec une base au format 2002-2003 et avec
une base au format 2000...............
........... et.......... ça ne marche pas :-(
Ce qui m'agace c'est que j'ai un autre prog (sur lequel j'ai donc pompé
cette partie) écrit il y a un an qui lui fonctionne très bien
Comment je fais pour savoir si j'utilise jet3 ou jet4?


--
J.P.B.

Avatar
jerome crevecoeur
Salutations,

un super cours sur la manipulation des bases en ADO.NET:
http://dotnet.developpez.com/cours/ado.net/


A part pour des opérations particulières, je vous conseille fortement
d'utiliser ADO.NET pour attaquer les bases de données.

Cordialement


Bonjour à tous
J'espère ne pas être hors sujet mais il s'agit quand même de base Access
Voila: je souhaite ouvrir une base Acces dans un prg C#, je l'ai déjà
fait dans un autre prg (et la ça marche) je refais (je pense) dans un
autre prg et la ça ne marche pas voici la syntaxe employée

DAO.Database La_Base;

DBEngine mon_Access=new DBEngine();

La_Base=mon_Access.OpenDatabase("S1.mdb",false,false,"; pwdºce");

N.B j'ai bien plus haut dans le prg un using DAO (et j'ai pris comme
référence Microsoft DAO 3.6 Object Library)
Acces 2003 est installé et fonctionne (et ouvre la base)
La base S1.mdb est dans le même dossier que l'exe testé
Erreur produite:Format de base de données ('I:ProgC#essai_win_base bin
DebugS1.mdb') non reconnu.
Prg ecrit dans CSharp

Si quelqu'un a une idée je l'en remercie par avance.