Bonjour,
J'ai un soucis avec la dll Interop.Access.
En effet, sous Access j'ai crée un état (report) afin de pouvoir imprimer mes données.
Dans mon code C# je dois ouvrir et modifier cet état pour y rajouter dynamiquement des champs textes,des cadres etc... J'ai donc pour cela intégré cette dll Access.
J'arrive à ouvrir mon état Access, à affecter des valeurs dans les champs,mais je n'arrive pas à créer de nouveaux champs.
Voici le code d'ouverture de l'état Access :
Tout ce code fonctionne par contre lorsque je veux ajouter un nouvel état, je tombe dans une exception COMException (Le type ne correspond pas).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 // Instance Access Access.Application m_AccessApp = new Access.ApplicationClass(); // Ouverture de la BDD DAO._DBEngine engine = m_AccessApp.DBEngine; DAO.Database database = engine.OpenDatabase(...); m_AccessApp.OpenCurrentDatabase(...); // Ouverture de l'état DoCmd accessCommand = m_AccessApp.DoCmd; accessCommand.OpenReport("MonEtat", ...); // Récupération du bon état Access.Report dtcReport = null; foreach(Access.Report currentReport in m_AccessApp.Reports) { if (currentReport.Name == reportName) { dtcReport = currentReport; } }
Voici le code qui génère cette exception :
Si quelqu'un connaissant un peu l'interopérabilité avec Access peut m'aider, ce serait sympa.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 // Création d'un TextBox Access à rattacher à mon état. Access._Control newControl = m_AccessApp.CreateControl("MonEtat", Access.AcControlType.acTextBox, Access.AcSection.acDetail, dtcReport, null, left, top, width, height);
Merci d'avance.
Partager