2017-05-09 11 views
0

Ich muss eine Excel-Anwendung basierend auf einigen Tabellen erstellen.Wie wird Powerpivot-Datenmodell mit mehreren Tabellen geladen?

Ich lief den Code in VBA und es hat funktioniert. In "Visual Studio" funktioniert es nicht.

Mein Code hier:

Dim xlApp As Excel.Application 
xlApp = Globals.ThisAddIn.Application 
xlApp.ActiveWorkbook.Connections.Add2("Target Connection Name", "", _ 
    "OLEDB;Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=SERVER\SQLEXPRESS;Use Procedure for Prepare=1;Auto Translate=True;Packet 
     Size=8192;Workstation ID=NAME;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=MYSQLDATABASE;", _ 
     """TAB_CATEGORIA"",""TAB_MOVIMENTO""", Excel.XlCmdType.xlCmdTableCollection, vbTrue, vbTrue) 

Wenn ich diesen Code ausführen, erhalte ich die folgende Meldung:.

„Das Cartridge-Verzeichnis konnte nicht gefunden werden Verwenden Sie den Windows Installer das reparieren Anwendung."

Ich erkannte, dass, wenn wir eine neue Instanz erzeugen, funktioniert es:

Dim xlApp As NEW Excel.Application 

Aber leider ich die aktuelle Instanz benötigen

xlApp = Globals.ThisAddIn.Application 

Als ich „Globals verwenden. ThisAddIn.Application "um ein WorkbookConnection-Objekt zu generieren, wird die Ausnahme ausgelöst.

Weitere Informationen,

  • Office-2013 aktualisiert
  • Visual Studio 2015 aktualisiert

**** Sie können nur unter meinem Stack-Trace sehen *****

System.Runtime.InteropServices.COMException was unhandled by user code 
    ErrorCode=-2146827284 
    HelpLink=xlmain11.chm 
    HResult=-2146827284 
    Message=Não pudemos obter dados do Modelo de Dados. Veja a mensagem de erro que recebemos: 

The cartridge directory could not be found. Use the Windows Installer to repair the application. 
    Source=Microsoft Excel 
    StackTrace: 
     em System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData) 
     em Microsoft.Office.Interop.Excel.Connections.Add2(String Name, String Description, Object ConnectionString, Object CommandText, Object lCmdtype, Object CreateModelConnection, Object ImportRelationships) 
     em ExcelAddIn2.Conectar.Button1_Click(Object sender, RibbonControlEventArgs e) na D:\work\projetos\SPHERA\OmieDecisionMaker\OmieDecisionMaker\ExcelAddIn2\Ribbon1.vb:linha 37 
     em Microsoft.Office.Tools.Ribbon.RibbonPropertyStorage.ControlActionRaise(IRibbonControl control) 
     em Microsoft.Office.Tools.Ribbon.RibbonPropertyStorage.ButtonClickCallback(RibbonComponentImpl component, Object[] args) 
     em Microsoft.Office.Tools.Ribbon.RibbonManagerImpl.Invoke(RibbonComponentCallback callback, Object[] args) 
     em Microsoft.Office.Tools.Ribbon.RibbonManagerImpl.System.Reflection.IReflect.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParameters) 
    InnerException: 

Antwort