Как сделать надстройки Ms-Access? [Дубликат]

Список Vs Set

1) Set не позволяет дублировать. Список позволяет дублировать. На основе реализации Set он также поддерживает порядок вставки.

, например: LinkedHashSet. Он поддерживает порядок вставки. Пожалуйста, обратитесь к нажмите здесь

2) содержит метод. По характеру набора это даст лучшую производительность для доступа. Лучше всего его o (1). Но List имеет проблему с производительностью для вызова contains.

0
задан Mina Shaker 11 March 2019 в 14:25
поделиться

1 ответ

Ну, вы можете приложить все усилия для создания надстроек VSTO, но если вам просто нужно позвонить + использовать некоторый код .net из Access, то зачем беспокоиться обо всей этой работе?

Просто создайте COM-объект в .net, и вы можете с легкостью использовать + вызов этого кода из Access VBA.

Итак, создайте класс .net.

Принудительная установка проекта на x86. (при условии доступа x32)

Установите флажок [] зарегистрировать для COM-взаимодействия. (это требуется только на вашем компьютере разработки).

Вам также при сборке нужно поставить галочку: [x] Сделать сборку COM видимой

Однако, выше установлено по умолчанию. Так что для того, чтобы все это работало с вашей стороны, здесь требуется только ОДИН флажок.

Теперь просто создайте класс в .net, скажем так:

Imports System.Runtime.InteropServices

<ClassInterface(ClassInterfaceType.AutoDual)>
Public Class Class1

   Private m_Company As String = ""

   Public Function MyHello()
      MsgBox("Hello world")
   End Function

   Public Property Company As String
     Get
        Return m_Company
     End Get
     Set(value As String)
        m_Company = value
    End Set
  End Property
End Class

В Access теперь вы можете установить ссылку на класс .net (tools-> ссылки в редакторе VBA).

Конечно, как только все это заработает, вы меняете код на позднюю привязку в VBA, как это делают все хорошие разработчики.

В приведенном выше классе, а затем в VBA, вы видите, что даже intel-sense работает для методов и свойств класса .net.

Итак, в VBA, обратите внимание на этот снимок экрана:

enter image description here

Обратите внимание, как все функции / функции отображаются как методы объекта в VBA.

Таким образом, вызов + потребление кода .net, который вы пишете, довольно прост и требует меньше кода, чем попытка настроить добавление VSTO.

Фактически, я рекомендую выше не только для Access, но и для Word, Excel и т. Д.

Таким образом, вышесказанное - это гораздо меньше работы, чем возиться с инструментами и настройкой для создания надстройки для офиса.

Конечный результат - ОЧЕНЬ простое кодирование в .net, такой код может использоваться VBA + Access. И дополнительным бонусом является то, что такой код также можно с легкостью использовать в файлах сценариев Excel, Word и даже Windows VBS. Фактически FoxPro, или даже, скажем, система учета sage 300 может напрямую использовать ваш код .net на своих языках программирования. Таким образом, любой язык или система, которая поддерживает COM-объекты (ActiveX), может использовать вышеуказанную простую надстройку.

Другими словами, код, который вы пишете и создаете, теперь может легко использоваться всеми офисами, и вам не нужно подключать грязную надстройку для каждой офисной программы.

Итак, чтобы спасти мир от бедности и голодающих детей, просто создайте простой класс в .net и используйте его из Office, как указано выше.

О единственной проблеме в настоящее время является распространение. Вы должны предоставить один .dll из .net и выполнить regasm на целевом компьютере, чтобы это работало. Однако это однострочный пакетный файл, и если вы используете какой-либо инсталлятор, у таких инсталляторов есть условия для выполнения (регистрации) объекта .net в любом случае через regasm. Если вы создали настоящую служебную надстройку, вам все равно потребуется создать и настроить установщик - и этот установщик может потребовать много усилий по сравнению с очень простой командой regasm для регистрации объекта .net.

И если вы действительно хотите упростить эту задачу, вы можете загрузить .net сбоку и даже не регистрировать объект .net.

В конце дня вышеприведенный пример супер простого класса прекрасно работает в Access + VBA и работает с меньшими затратами труда и средств, после чего вам понадобится получить некоторый шаблон надстройки VSTO, работающий с офисом.

0
ответ дан Albert D. Kallal 11 March 2019 в 14:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: