|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
16.03.2009, 09:25 | #1 | |
VBA - работа с datalink (datalinkmanager)
Регистрация: 21.02.2009
Сообщений: 825
|
||
Просмотров: 6895
|
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,091
|
См. тут http://forums.augi.com/showthread.php?p=937444
и еще в сцылках из этой ветки |
|||
|
||||
Тут без Кулик Алексей aka kpblc не разобраться!
Программу из http://forums.augi.com/showthread.php?p=937444 скачал, но не пошла, может кто глянет Последний раз редактировалось gizmo_zx, 27.03.2009 в 12:40. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Сергей Богатов, так я, например, не понял: что, имена файлов сменились? А диапазоны с листами? Или поменялись только каталоги расположения xls-файлов? Кстати, выложи пример - лично мне лениво делать DataLink (я им не пользуюсь; и без него обычно весело).
gizmo_zx, у тебя в архиве нет dcl-файла, вот и все.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Попробуй выкачать из темы http://forum.dwg.ru/showthread.php?p=373862#post373862 приложенный arx (работает в 2007-2009). Загружаешь его, и смотри Database Info, раздел Dictionaries. Там очень многое видно. Я попытался расковырять словарь ACAD_DATALINK и его элементы, но что-то запутался
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 01.02.2009
Сообщений: 3
|
Для решения этой задачи возможно достаточно VBA. У объекта "Table" есть доступ к DataLink (кажется через SetDataLink и GetDataLink). Но поскольку я так и не понял какая именно операция делается вручную, хотя пример посмотрел, то затрудняюсь сказать достаточно ли этого. В худшем случае потребуется лезть в словарь ACAD_DATALINK (см. ссылки выше), что тоже возможно из VBA.
Последний раз редактировалось nic26, 16.06.2009 в 19:47. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
SetDataLink и GetDataLink вплоть до 2010 версии работают некорректно, насколько я помню.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Точно?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323
|
Оживлю тему, дабы не создавать новую.
Вопрос в целом такой, как именно средствами VBA, можно работать со "связями с данными". Конкретно есть необходимость: - удалять связи, которые уже не привязаны к таблицам в данном чертеже (а то они плодятся при копировании таблиц со связями из файла в файл); - подменять в связях информацию о файле источнике (путь, имя), а так же диапазон ячеек (лист, именованный диапазон). Спасибо. |
|||
|
||||
Цитата:
И ответ оттуда Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,004
|
VBA достаточно "урезанный" язык, по мере роста "аппетита" все чаще и чаще будете упираться в ограничения объектной модели. Сейчас реально использую его только со стороны MSOffice, подключаясь по COM-интерфейсу к акаду - для самых простых вещей. Подумайте, может перейти на такой режим работы с акадом.
|
|||
|
||||
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323
|
Да вот и я то же только из-за VBA офиса в автокаде сижу на том же. Пока только из VBA автокада обращался к книгам Excel (выгружал некоторые данные, типа как извлечения). Со стороны офисных приложений в автокад пока не совался (не пробовал даже).
А что, есть вариант из экселевского VBA достучаться до связей с данными автокад? И мне пока не ведома такая вещь, как COM-интерфейс. В целом то задача банальна. В чертеже есть куча таблиц с привязками к диапазонам ячеек (как правило именованным) в файлах экселя. Для большинства задач в автокаде приходится менять у таблиц эти самые диапазоны. Работа ручками с "редактором связей с данными" утомляет своей тормознутостью. Благо есть "диспетчер внешних ссылок", где хотя бы путь к файлу можно быстро поменять (увы, пользую 2008 кад, там нет относительных ссылок). Кроме того, при копировании таблицы со связью в другой файл, туда копируются все ссылки на связи. Потом в диспетчере хаус! Ведь должны существовать программные методы: - удалять связи с данными; - отсоединять от таблиц и от типов таблиц связи с данными; - переименовывать связи с данными, так чтоб они оставались привязанными к таблице (типу таблицы); - менять имя файла-источника, путь к нему, диапазон ячеек (в том числе именованный) |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,004
|
|
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пароль к VBA | karp_b | Программирование | 24 | 29.08.2013 12:43 |
В чем зло VBA? | Vildar | Разное | 224 | 18.03.2009 21:26 |
ActiveX Automation из VBA | karp_b | Программирование | 5 | 14.09.2007 18:05 |
VBA vs LISP | Kosenko Sasha | LISP | 23 | 06.03.2007 02:56 |
Работа в VBA с MS Equation 3.0 | Михаил_М | Программирование | 1 | 21.10.2006 17:28 |