Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2016, 18:34   #1
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию Ответить макросом Да.

Всем здравствуйте. Открываю документ Word из Excel
Код:
Sub Открыть()
CreateObject("WScript.Shell").Run """C:\Users\Vladimir\Desktop\Слияние.docx"""    ' аналогично двойному щелчку мыши на файле
End Sub
После этого появляется окно
"При открытии данного документа будет выполнена следующая команда SQL:
SELECT * FROM ’Лист1S'
Данные из базы данных будут помещены в документ. Продолжить?
Да Нет"
Подскажите пожалуйста код, чтобы открыть "Слияние.docx" и выполнилась команда SQL, т.е. ответить Да.
Application.EnableEvents = False и Application.DisplayAlerts = False не помогают
Вложения
Тип файла: rar Файлы.rar (20.4 Кб, 13 просмотров)

Последний раз редактировалось agregator; 17.03.2016 в 18:40.
agregator вне форума Ответить с цитированием
Старый 17.03.2016, 19:09   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Application.DisplayAlerts = False - это команда для Excel

используйте SendKeys чтобы закрыть окно с предупреждением

а лучше, откройте Word
Код:
  On Error Resume Next
  Set wApp = GetObject(, "Word.Application")
  If Err Then Err.Clear: Set wApp = CreateObject("Word.Application")
  On Error GoTo 0
  wApp.DisplayAlerts = False
  set wDoc = wApp.documents.open("C:\Users\Vladimir\Desktop\Слияние.docx")
...
как то так
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 17.03.2016, 19:59   #3
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

IgorGO, спасибо получилось! Но почему то срабатывало только на второй раз, поэтому написал
Код:
Set wDoc = wApp.documents.Open("C:\Users\Vladimir\Desktop\Слияние.docx")
два раза и стало срабатывать
Код:
Sub Открыть()
On Error Resume Next
  Set wApp = GetObject(, "Word.Application")
  If Err Then Err.Clear: Set wApp = CreateObject("Word.Application")
  On Error GoTo 0
  wApp.DisplayAlerts = False
  Set wDoc = wApp.documents.Open("C:\Users\Vladimir\Desktop\Слияние.docx")
  Set wDoc = wApp.documents.Open("C:\Users\Vladimir\Desktop\Слияние.docx")
  wApp.DisplayAlerts = True
End Sub
Как то странно?
agregator вне форума Ответить с цитированием
Старый 17.03.2016, 20:07   #4
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

В результате документ открылся, но команда SQL:SELECT * FROM ’Лист1S' не выполнилась, т.е. нажалась кнопка НЕТ, т.к. она выбрана по умолчанию. Можно что нибудь придумать?
agregator вне форума Ответить с цитированием
Старый 18.03.2016, 18:57   #5
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Кросс:
http://www.planetaexcel.ru/forum/ind...sql-otvetit-da
agregator вне форума Ответить с цитированием
Старый 22.03.2016, 17:28   #6
gsparrow
Новичок
Джуниор
 
Регистрация: 22.03.2016
Сообщений: 1
По умолчанию

Сам только что искал, нашел здесь ваш вопрос, и нашел вот такое решение - правим реестр:
HKEY_CURRENT_USER\Software\Microsof t\Office\14.0\Word\Options
"SQLSecurityCheck"=dword:000000 00

14.0 - Word 2010, для другой версии - будет другая соотв.ветка
Нашел здесь:
http://stackoverflow.com/questions/11301716
gsparrow вне форума Ответить с цитированием
Старый 24.03.2016, 19:07   #7
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

gsparrow, спасибо! Этот способ работает. Здесь нашел по-русски и подробно:
https://support.microsoft.com/ru-ru/kb/825765
agregator вне форума Ответить с цитированием
Старый 06.10.2016, 15:25   #8
kulib
 
Регистрация: 06.10.2016
Сообщений: 3
По умолчанию

gsparrow, спасибо! Этот способ работает. А я мучался полжизни)
kulib вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ответить на вопросы теста zhayr Общие вопросы C/C++ 3 09.11.2021 17:02
Ответить на вопросы Daulet97 Помощь студентам 0 18.10.2013 22:12
Надо ответить на вопрoc Akainu Паскаль, Turbo Pascal, PascalABC.NET 3 10.02.2011 13:40
открытие нескольких книг одним макросом и закрытие книг другим макросом kursant95 Microsoft Office Excel 6 27.01.2011 16:54