2013-07-01 2 views
0

У меня есть небольшая консольная программа на C#, которая извлекает список элементов из quickbooks, и я пытаюсь выяснить, как предоставить эти данные Microsoft Access. Он находится в формате XML.Подключиться к программному источнику данных C# из Microsoft Access

Я хочу получить данные в режиме реального времени, так как для получения данных требуется всего лишь секунд, когда Access требует его. Я использую Access 2003 и VS 2010.

Если есть способ сделать это с помощью VBA, который будет работать отлично. Я могу получить данные XML, используя VBA уже, но я не знаю, как идти оттуда.

Вот код, который я использую в C#: «Я пытаюсь выяснить, как выставить эти данные в Microsoft Access Это в формате XML»

public string DoQBQuery(XmlDocument doc) 
{ 
    bool sessionBegun = false; 
    bool connectionOpen = false; 
    RequestProcessor2 rp = null; 
    string ticket = ""; 
    try 
    { 
     //Create the Request Processor object 
     rp = new RequestProcessor2(); 

     //Connect to QuickBooks and begin a session 
     rp.OpenConnection2("", "QB Transaction Item Retriever", QBXMLRPConnectionType.localQBD); 
     connectionOpen = true; 
     ticket = rp.BeginSession("", QBFileMode.qbFileOpenDoNotCare); 
     sessionBegun = true; 

     //Send the request and get the response from QuickBooks 
     string responseStr = rp.ProcessRequest(ticket, doc.OuterXml); 

     //End the session and close the connection to QuickBooks 
     rp.EndSession(ticket); 
     sessionBegun = false; 
     rp.CloseConnection(); 
     connectionOpen = false; 

     return responseStr; 

    } 
    catch (Exception e) 
    { 
     MessageBox.Show(e.Message, "Error"); 
     if (sessionBegun) 
      rp.EndSession(ticket); 

     if (connectionOpen) 
      rp.CloseConnection(); 

     throw; 
    } 
} 
+0

Вы хотите сказать, что хотите использовать C# для копирования данных в базу данных Access? – Brian

+0

Да. Если есть способ сделать это с помощью Access VBA. –

+0

[Здесь] (http://msdn.microsoft.com/en-us/library/aa288452 (v = vs.71) .aspx) - это учебник по отправке данных в БД доступа. – Brian

ответ

0

Я никогда не пробовали это раньше , но я думаю, что это возможно, поставив классы C#, которые выполняют то, что вы обсуждали в dll, и вызываете из Access. Вот сообщение с этого сайта об этом.

A Simple C# DLL - how do I call it from Excel, Access, VBA, VB6?

P.S. Учитывая, что я никогда не пробовал это раньше, я бы поставил это в разделе комментариев вашего исходного сообщения, но я новичок в этом сайте и не могу этого сделать.

+0

Это технически ответ в любом случае. Спасибо, я посмотрю. –

+0

Позвольте мне знать, что произойдет. Мне будет интересно посмотреть! – Killingsworth

+0

На самом деле, это поможет мне примерно на полпути, если мне это нужно, но мне все еще нужно создать что-то, что Access может реально использовать и получать на лету. –

Смежные вопросы