Страница: 1 | 2 | 3 |
Вопрос: COM компонента под Office
Добавлено: 04.07.05 16:43
Автор вопроса: Dogmatic
Знатоки, подскажите пожалуйста, можно ли сделать COM-компонену под MS Access, на VB.NET. Если можно, то помимо ответа, было бы здорово получить примерчик. Если у вас есть какие-то компоненты написанные вами и подходящие под MS Office 2000 или 2003sp2. Например под Word, если нету под Access. В общем под любой, мне главное разобраться, дальше свой напишу.
Слышал что-то про COM+компоненты, если это похоже на то, что мне надо(вроде как это замена для СОМ компонент в VB.NET), то напишите про них, с примером опять же.
Примеры(проджекты) можно кинуть сюда: dogmatic@bk.ru
Ответы
Всего ответов: 37
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 04.07.05 18:04
Что имеется в виду под COM-компонентой под MS Access?
Access сам по себе законченный COM-объект.
Номер ответа: 2
Автор ответа:
Dogmatic
Вопросов: 1
Ответов: 21
Профиль | | #2
Добавлено: 05.07.05 11:28
Спасибо за ответы.
В связи с возникшими вопросами, поясняю...
Нужно написать приложение, которое сможет интегрироваться в БД MS Access, например в виде макроса, точнее запуск по кнопке макроса, а в макросе запускается приложение. Грубо говоря, это будет визуализация самой БД. Сначало планировалось написать на VB6, соответственно в виде COM компоненты. Потом решили написать на .NET, так как идет переход на эту техноогию. Я, соотвественно, тока чичас начал спешно изучать VB, вообще, до этого тока на VC++ и Delphi писал, вот и хотелось бы примерчик, что это вообще такое COM компонента в VB.NET.
Номер ответа: 3
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #3
Добавлено: 05.07.05 13:45
Ы...
Значит так...
Открываем VB .NET (раз уж прямо на нём охота), идём в References, на вкладке COM ищем Microsoft Access X.X Object Library, подключаем и управляем Access'ом.
Без написания каких-то там компонент зачем-то...
Номер ответа: 4
Автор ответа:
Dogmatic
Вопросов: 1
Ответов: 21
Профиль | | #4
Добавлено: 05.07.05 14:02
До этого места, я в книжках сразу дорылся Это единственное, что в них пишется про COM, но штука в том, что я из Access-а должен управлять. Моя бы воля, я бы просто пихнул макрос, запускающий .ехе приложение, в котором сответственно рисуется все что хочешь, но пока я еще не убедил шефа в правильности этого решения. Очередное спасибо за ответ.
Номер ответа: 5
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #5
Добавлено: 05.07.05 14:09
Из Access-а управлять чем?
Где основной код?
Номер ответа: 6
Автор ответа:
Dogmatic
Вопросов: 1
Ответов: 21
Профиль | | #6
Добавлено: 05.07.05 15:09
Ы...
Код еще тока пишется, я за это взялся в понедельник, пока пытаюсь понять как вообще запускать приложение.
А так объясняю еще раз, есть уже БД в Access-е, она уже написана, работает, все в ней хорошо, много всяких функций красивых, а обслуживает она, например, склад вещей. Мне надо визуализировать (просто нарисовать) этот склад, при этом как нарисовать его я себе уже неплохо представляю. Этот план будет вызываться из этой самой БД, написанной в Access-е, в нем там можно будет всякие функции вызывать, навроде показать товар и все такое, + может быть наилучшие маршруты показывать по загрузке-разгрузке.
Номер ответа: 7
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #7
Добавлено: 05.07.05 16:03
А... гм... хм... дык.
Почему бы не написать весь код непосредственно в Access, без привлечения всякой фигни?
Номер ответа: 8
Автор ответа:
Dogmatic
Вопросов: 1
Ответов: 21
Профиль | | #8
Добавлено: 05.07.05 16:14
Гыг, требуется dll-ка которая буит работать и в 2000 и в 2003 Access-е. Ее подключаем как ActiveX - объект и все классно, это, то что требуетсЯ, а разбираться надо мне... Вот все, что я могу на это сказать.
Номер ответа: 9
Автор ответа:
⊗WaX⊗
Вопросов: 26
Ответов: 325
Web-сайт:
Профиль | | #9
Добавлено: 05.07.05 16:31
Написать Com комплнент на >NET можно, но что ты хочешь чтобы он делал.
Если ты хочешь чтобы база была в Access а форма для работы с ней была написана на .net?
Тогда никаких компонентов создавать не нужно, скачай примеры по работе с ado.net с этого сайта.
Или любую книгу открой по .net примеров с Access масса
Номер ответа: 10
Автор ответа:
Dogmatic
Вопросов: 1
Ответов: 21
Профиль | | #10
Добавлено: 05.07.05 17:13
Вообще я хочу получить готовый пример COM компоненты, с его кодом, который может быть вставлен в пакет Office 2003, чтобы по аналогии написать свой.
По поводу вопроса, уточняю конкретнее: на .net должна быть написана не форма для работы, а всего лишь компонента базы, чтобы функции этой компоненты вызывались из самого БД (БД окныбовенное, написанное в Access-е). В общем обычный СОМ нужен, например в виде dll. Делать форму под базу на .net уже не рационально, так как база большая и мощная, а простой интерфейс, наружний тоже не получится, так как это не SQL-server. Вывод, нужна не форма или оболочка, а компонент, интегрированный в среду самой базы, в данном случае MS Access-а.
Спасибо за ответы
Номер ответа: 11
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #11
Добавлено: 05.07.05 17:56
Ну зачем, зачем писать COM на .NET...
Зачем вообще писать что-то внешнее, если можно весь функционал сделать частью базы???
Номер ответа: 12
Автор ответа:
Dogmatic
Вопросов: 1
Ответов: 21
Профиль | | #12
Добавлено: 05.07.05 23:49
Раз сказано, значит надо сделать... По-моему с руководством не всегда спорят, это как раз тот случай... А мне всего лишь нужен пример, если такого не существует в природе, то мне нужен именно такой ответ, тогда я смогу уговорить делать на VB6
Номер ответа: 13
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #13
Добавлено: 06.07.05 04:12
Вот в природе, например, существует утконос. Но это же не повод...
Руководство же, по всей видимости, не понимает своей роли. Руководство должно ставить задачу - что должно быть сделано (например, программа с такими-то функциями). А как она должна быть сделана - должен выбирать ты, как специалист в области программирования.
Номер ответа: 14
Автор ответа:
⊗WaX⊗
Вопросов: 26
Ответов: 325
Web-сайт:
Профиль | | #14
Добавлено: 06.07.05 06:57
Gserg конечно же прав с начальством спорить не нужно – нужно выслушать и сделать по своему, но раз надо – держи.
Public Class MyNewClass
Public MyCounter As Integer
Public ReadOnly myGreating As String
Private myPrivate As Long=0
Public Sub New()
myGreating=”Hello World”
myCounter=0
End Sub
Public Function AddCounter() As String
myCounter+=1
Return myCounter.ToString
End Function
End Class
Затем в Solution Explorer кликни правой кнопкой по названию проекта выбери properties
Найди там закладку Strong names.
Поставь галочку Generate strong name using и выбери “key file“/
Нажми на кнопку Generate key
В разделе Configuration properties в элементе build поставь галочку в Register for the COM Interrupt.
Все это можно сделать и в ручную с помощью консольных команд sn gacutil и regasm но об этом в следующем номере ))
Вызывается компонент так же как обычный COM компонент.
cya WaX
Номер ответа: 15
Автор ответа:
Dogmatic
Вопросов: 1
Ответов: 21
Профиль | | #15
Добавлено: 06.07.05 11:25
Наконецто . Спасибки и тебе GSerg, и тебе WaX, хотя тут конечно половина оффтопик, по поводу моего начальства, но все-таки ответ я получил. Сейчас буду пробывать. Еще раз Tnx.