2012-01-13 8 views
7

Ok, więc mam zespół, napisany w C#, Visual Studio 2010.Korzystanie z .NET DLL w programie Access VBA

Ten zestaw zawiera jedną klasę, która zawiera jedną metodę, która zwraca wynik słowo, kod jest poniżej:

using System.Runtime.InteropServices; 

namespace TestDLL 
{ 
    public class Class1 
    { 
     [ComVisible(true)] 
     public string TestMethod() 
     { 
      return "Result"; 
     } 
    } 
} 

sekcja wyjściowa w zakładce budować na oknie właściwości wygląda tak:

Visual Studio Output Window

Kiedy clic k na kompilacji, dostaję plik DLL i plik TLB. Mogę dodać ten plik TLB do Microsoft Access po prostu przeglądając go.

VBA Reference Window

Teraz w programie Access Mam przycisk i etykietę. Chcę, aby właściwość Caption mojej etykiety była równa wynikowi metody testMethod. Myślę, że muszę zrobić coś podobnego do dołu, ale nie jestem pewien, każda pomoc będzie mile widziane:

Private Sub btnMain_Click() 

    Dim tm As TestDLL 
    Dim foo As String 

    foo = tm.testMethod 

    lblBarr.Caption = foo 

End Sub 

Dziękuje

Odpowiedz

8

Może następnym będzie działać:

Private Sub btnMain_Click() 

    Dim tm As TestDLL.Class1 
    Dim foo As String 

    Set tm = New TestDLL.Class1 
    foo = tm.testMethod 

    lblBarr.Caption = foo 

End Sub 
+0

, obrobione Doskonale! – JMK