невозможно создать связь с данными так как программа excel не найдена
Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
Форумы CADUser → Программирование → VBA → Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 13
#1 Тема от Миша 4 июня 2006г. 19:04:58
Тема: Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
В своих программах я использую следующий вызов Excel из AutoCAD:
Далее можно работать в Excel сколько угодно, а потом когда надо закрыть файл Excel и запустить другой файл происходит следующее:
1) Закрываем Excel при этом процесс Excel остаётся активным в диспетчере задач, а сам Exel при этом уже закрыт. Спрашивается: почему остался работающим процесс, когда программа уже закрылась? Может надо чтобы команду закрытия процесса дал AutoCAD, потому что Excel запускался из AutoCAD? Как это сделать? Или надо специальным образом запускать Excel чтобы следить за тем когда он закрывается?
2) Если попытаться открыть другой файл Excel то Excel работает без отображения ячеек. На экране видны только команды меню и панели инструментов. Ячеек не видно, вместо них чертёж AutoCAD или окно другой работающей программы. Доступа к ячейкам нет. Ясно, что с таким Excelем работать нельзя, неопытных пользователей это просто приводит в ужас! Появляются претензии, что я своим макросом испортил настройки в компьютере и Excel перестал правильно работать! Конечно, чтобы справиться с этой проблемой надо закрыть Excel, открыть диспетчер задач, найти там всё ещё работающий процесс Excel и остановить его. После этого можно запускать снова Excel и никаких проблем не будет. Но разьве объяснишь это обычным пользователям, для обычных пользователей это просто дико слушать и в итоге программа никому не нравится. Спрашивается зачем было делать эту ложку дёгтя в бочка мёда работы Excel из AutoCAD? Как надо правильно запускать Excel из AutoCAD, чтобы он правильно закрывался и нормально потом запускался снова и не было претензий от других пользователей программы?
#2 Ответ от Миша 6 июня 2006г. 03:14:03
Re: Правильный вызов Excel из AutoCAD, чтобы дальше можно было работать с Excel
Замечено, что если после закрытия Excel в п.1 закрыть AutoCAD лишний процесс Excel в диспетечере задач тоже останавливается. Может есть специальный метод который может остановить этот процесс без закрытия AutoCAD?
И ещё вопрос: Правильно ли я сделал что отключил вызов функции
так как и без этой функции процесс Excel запускается в диспетчере задач? У меня программа и так работает. По логике, чтобы остановить процесс Excel надо запустить функцию противоположную функции «SendMessage», только что это за функция и как организовать запуск этой функции, чтобы она всегда была на готове и ждала когда закроется Excel? По моему это очень сложно и невозможно. Как вы думаете нет решения этой проблемы?
Связь AutoCAD с таблицами Excel.
Вопрос в следующем.
В экселе создана таблица. Настроена связь с данными в каде с этой таблице. В автокаде вставлена таблица на основе связи с таблицей Excel.
Если я перемещаю таблицу Excel в другое место, связь нарушается. Снова настраиваю связь с уже перемещенной таблицей, но сама таблица в каде не изменяет связь (она ссылается на первоначальное местоположение экселевского файла).
Можно ли каким-нибудь образом обновить связь в самой таблице? Удалять и создавать новую я не могу, т.к. таблице в каде привязано много полей.
Мне нужно выносить отметки с 20-40 поперечников автомобильной дороги на её плановое положение. При этом отметки есть в табличном виде, как в примере. После проведенных операций мне будет достаточно перетянуть поле «проект/факт» на нужное место на чертеже, а не вручную забивать все эти числа. Надеюсь, что понятно объяснил.
Вот теперь понятно, т.е.:
1. Автоматически вставлять в чертёж данные из excel в виде отдельных полей
2. Автоматически менять источник этим полям
Готовых автоматических способов не нашёл, скорее всего их просто нет.
Однако можно попробовать сделать это полуавтоматически, связав поле с ячейкой Excel напрямую, без манипуляций с DWG таблицей, указав в качестве источника Базу данных AD. В этом случае смена источника (ячейки) происходит в 2-3 клика.
Во-вторых, источники полям одновременно можно поменять если они сгруппированы как-то, например в таблицу, а россыпью никак!
Если поля будут располагаться как в примере, то тогда почему бы их не сделать в виде таблицы?
Тогда но проблем!) )
Исправление недействительных связей с данными
Если книга содержит ссылку на данные в книге или другом файле, перемещенного в другое место, вы можете исправить эту ссылку, обновив путь к исходный файл. Если вам не удалось найти документ, на который вы изначально ссылались, или нет доступа к нему, можно отключить в Excel обновление ссылки, отключив автоматическое обновление или удалив ссылку.
Важно: связанный объект гиперссылки — это не одно и то же. Следующая процедура не позволит исправить неправиленные гиперссылки. Дополнительные информацию о гиперссылках см. в теме «Создание и изменение гиперссылки».
Исправление неправиленной ссылки
Внимание: Это действие нельзя отменить. Перед началом этой процедуры может потребоваться сохранить резервную копию книги.
Откройте книгу, которая содержит неверную связь.
На вкладке «Данные» нажмите кнопку «Изменить связи».
Команда «Изменить связи» недоступна, если книга не содержит ссылок.
В поле «Исходный файл» выберите неправиленную ссылку, которую вы хотите исправить.
Примечание: Чтобы исправить несколько ссылок, щелкните каждую из , удерживая нажатой
.
Выберите команду Смена источника.
Перейдите к расположению файла, содержащего связанные данные.
Выберите новый исходный файл и нажмите кнопку «Изменить источник».
Нажмите кнопку Закрыть.
Удаление неявной ссылки
При разрыве связи все формулы, которые ссылаются на исходный файл, преобразуются в их текущее значение. Например, если формула =СУММ ([Budget.xls]Годовой! C10:C25) — 45, после того как связь не будет нарушена, формула будет преобразована в 45.
Откройте книгу, которая содержит неверную ссылку.
На вкладке «Данные» нажмите кнопку «Изменить связи».
Команда «Изменить связи» недоступна, если книга не содержит ссылок.
В поле «Исходный файл» выберите ненужную ссылку, которую нужно удалить.
Примечание: Чтобы удалить несколько ссылок, щелкните каждую из , удерживая нажатой кнопку мыши.
Щелкните элемент Разорвать.
Нажмите кнопку Закрыть.
Важно: связанный объект гиперссылки — это не одно и то же. Следующая процедура не позволит исправить неправиленные гиперссылки. Подробнее о гиперссылках: создание, изменение и удаление гиперссылки
Исправление неправиленной ссылки
Внимание: Это действие нельзя отменить. Перед началом этой процедуры может потребоваться сохранить резервную копию книги.
Откройте книгу, которая содержит неверную связь.
В меню Правка выберите пункт Связи.
Если книга не содержит ссылок, команда «Ссылки» недоступна.
В поле «Исходный файл» щелкните неправиленную ссылку, которую нужно исправить.
Примечание: Чтобы исправить несколько ссылок, щелкните каждую из , удерживая нажатой
.
Выберите команду Смена источника.
Выполните одно из следующих действий:
Исправление неправиленной ссылки на лист в другой книге
В диалоговом окне «Открытие» найдите книгу и нажмите кнопку «Изменить».
Исправление неправиленной ссылки на книгу или другой документ Office
Введите новое имя или расположение документа в поле «Изменить ссылки на текстовое поле» и нажмите кнопку «ОК».
Отключение автоматического обновления связанных данных
Откройте книгу, которая содержит неверную связь.
В меню Правка выберите пункт Связи.
Если книга не содержит ссылок, команда «Ссылки» недоступна.
В поле «Исходный файл» щелкните неправиленную ссылку, которую нужно исправить.
Примечание: Чтобы исправить несколько ссылок, щелкните каждую из , удерживая нажатой
.
Удаление неявной ссылки
При разрыве связи все формулы, ссылаясь на исходный файл, преобразуются в их текущее значение. Например, если формула =СУММ ([Budget.xls]Годовой! C10:C25) — 45, после того как связь не будет нарушена, формула будет преобразована в 45.
Откройте книгу, которая содержит неверную связь.
В меню Правка выберите пункт Связи.
Если книга не содержит ссылок, команда «Ссылки» недоступна.
В поле «Исходный файл» щелкните ненужную ссылку, которую нужно удалить.
Примечание: Чтобы удалить несколько ссылок, щелкните каждую из , удерживая нажатой кнопку мыши.
Невозможно открыть документы Excel
. После сбоя винды (ХР) появилась проблема: при двойном клике на файл документа Excel оболочка Excel запускается, а документ не открывается. Если сначала запустить Excel, потом дать команду «Открыть», документы открываются без проблем.
Остальные компоненты MS Office XP работают нормально.
Переустановка офиса проблему не решает.
Помогите добрым советом, что делать?
Зайди в проводник, меню сервис-> свойства папки.
На закладке «Типы файлов» найди в списке файлы xls.
Нажми кнопку «дополнительно».
В новом окошке в списке «действия» должно быть «открыть», щёлкни два раза по нему.
Откроется ещё окошко в нём поставь галку использовать DDE (если не стоит) и в «Сообщение DDE» напиши [open(«%1»)].
Дальше должно быть в «Приложение» Excel, в «Раздел» System
И сворачивайся Ок,Ок,Ок.
Ещё вариант
На закладке «Типы файлов» удали файлы xls, а потом
при открытии файла появится окошко выбора программы для типа файла xls.
Установи флажок открывать всегда (запомнить выбор) и выбери из списка Excel.
Путь к Экселу может отличаться
А на действие Open стоит «Использовать DDE»? И в «Сообщение DDE» написано: [open(«%1»)]
Странно, что это не лечится переустановкой.
1. Может в файле бяка какая?
2. Он такое пишет на любом файле? Если пустой файл создать, записать и его попытаться открыть та же ошибка?
А можно не убирать а написать «%1», но в двойных кавычках!
Флажок «Использовать DDE» вообще убрать нафиг.
Regsvr32 Excel.exe /u
[quote=»Naeel Maqsudov»][quote]А можно не убирать а написать «%1», но в двойных кавычках!
Флажок «Использовать DDE» вообще убрать нафиг.
[/quote]
Такая мысль была поначалу, но я решил что лучше вернуть к исходному виду ;). Я не силён в ДДЕ, но если уж Ексел так делает, то «может это кому-нибудь нужно?» (с) 🙂
Подключение к источнику данных средствами MS Excel
Бывают ситуации, когда на рабочей станции отсутствуют такие средства взаимодействия с БД как: MS SQL Server Management Studio, Aquafold Aqua Data Studio, DBeaver и т.п., а вероятность их установки в краткосрочной перспективе близка к нолю. В то же время, присутствует острая необходимость подключения к этой самой БД и работы с данными. Как оказалось, на помощь может прийти старый добрый MS Excel.
В моем случае требовалось подключиться к MS SQL Server, однако, MS Excel умеет устанавливать соединение не только с ним, но и с большинством современных БД: MySQL, PostgreeSQL, IBM DB2 и даже Oracle и Teradata, а также с файлами данных CSV, XML, JSON, XLS(X), MDB и другими.
Теперь немного о действиях, совершенных мной с целью подключения к базе:
После всех проделанных манипуляций, Мастер подключения предложит сохранить файл подключения. Потребуется задать «(1) Имя файла». Желательно также указать «(2) Описание» и «(3) Понятное имя файла», чтобы спустя время было понятно какой файл подключения к какой базе или таблице обращается.
Открыв только что созданное подключение, в случае если вы соединялись с базой в целом, MS Excel опять предложит выбрать одну или несколько конкретных таблиц:
Определив таблицы, MS Excel предложит выбрать «(1) Способ представления данных» и «(2) Куда следует поместить данные». Для простоты я выбрал табличное представление и размещение на уже имеющемся листе, чтобы не плодить новые. Далее следует нажать на «(3) Свойства».
В свойствах подключения, нужно перейти на вкладку «(1) Определение». Здесь можно выбрать «(2) Тип команды». Даже если требуется выгружать лишь одну таблицу без каких-либо связей, настоятельно рекомендую выбрать SQL команду, чтобы иметь возможность ограничить размер выгружаемой таблицы (например, с помощью TOP(n)). Так, если вы попытаетесь выгрузить целиком таблицу базы, это может привести в лучшем случае к замедлению работы MS Excel, а в худшем к падению программы, к тому же – это необоснованная нагрузка на сам сервер базы данных и на сеть. После того как «(3) Текст команды» будет введен и нажата кнопка «ОК», MS Excel предложит сохранить изменения запроса – отвечаем положительно.
В итоге получаем данные прямо из базы, что и требовалось.