Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как выполнить макрос Excel из Access (A97-A2002)
 
 автор: Жень Шень   (07.02.2011 в 13:03)   личное сообщение
 
 

Всем привет.
Из формы создаю запрос и открываю его в EXCEL-е:

Private Sub excelRun_Click()
  Dim db As Database
  Set db = CurrentDb
  CurrentDb.QueryDefs("excelDOM ").sql = "SELECT tDOM.* FROM tDOM ORDER BY tDOM.ID_RAJ;"
  DoCmd.OutputTo acOutputQuery, "excelDOM", acFormatXLS, "C:\excelDOM.xls", True
End Sub


Ранее в EXCEL-е был создал макрос, например такой:

Sub Макрос0()
   Cells.Select
   Cells.EntireColumn.AutoFit
   Range("A1").Select
End Sub


Подскажите, как программно выполнить его из ACCESS-а, то есть, что и как надо дописать в коде Sub excelRun_Click(), чтоб он выполнил код макроса после открытия C:\excelDOM.xls.
Спасибо.

  Ответить  
 
 автор: s-control   (07.02.2011 в 13:42)   личное сообщение
 
 

Private Sub excelRun_Click()
Dim db As Database
Dim xl As Excel.Application
Set db = CurrentDb
db.QueryDefs("excelDOM ").sql = "SELECT tDOM.* FROM tDOM ORDER BY tDOM.ID_RAJ;"
DoCmd.OutputTo acOutputQuery, "excelDOM", acFormatXLS, "C:\excelDOM.xls", True
Set xl = CreateObject("Excel.Application")
xl.Application.ActiveWorkbook
xl.Cells.Select
xl.Cells.EntireColumn.AutoFit
xl.Range("A1").Select
db.close
Set db=nothing
'
End Sub
'Обрати внимание поправил твой код.
Объвляешь переменную db и забываешь про неё, смысл её тогда...?
Удачи!

  Ответить  
 
 автор: Жень Шень   (07.02.2011 в 17:11)   личное сообщение
 
 

Спасибо за код. Дома опробую. На работе флешем мозоли тру.
А про db и Set db=nothing, еще одно спасибо. Забываю иногда подчищать, грешен.

  Ответить  
 
 автор: Силblч   (07.02.2011 в 18:06)   личное сообщение
 
 

Log простит

  Ответить  
 
 автор: Жень Шень   (08.02.2011 в 11:01)   личное сообщение
12 Кб.
 
 

Добрый день, всем.
To s-control.
Просидел весь вечер над кодом. Но, видать не судьба или руки не оттуда ростут. Пожалуйста посмотрите базу (упрощена до минимума) - что не так или что еще надо подключить (dll, ocx).
Заранее благодарен

  Ответить  
 
 автор: snipe   (08.02.2011 в 11:28)   личное сообщение
 
 

Подключите библиотеку Excel
(редактор VBA Tools -References поставить галочку Microsoft excel ( ит ам чего то еще написано - там одна такая библиотека))

Dim db As Database
Dim xl As Object
Set db = CurrentDb
'db.QueryDefs("excelDOM").SQL = "SELECT tDOM.*;"
DoCmd.OutputTo acOutputQuery, "excelDOM", acFormatXLS, "C:\excelDOM.xls", False
Set xl = CreateObject("Excel.Application")
xl.Workbooks.Open Filename:="C:\excelDOM.xls"
xl.Visible = True
xl.Sheets("excelDOM").Select
xl.Cells.Select
xl.Cells.EntireColumn.AutoFit
xl.Range("A1").Select
db.Close
xl.Visible = True
Set db = Nothing
Set xl = Nothing

  Ответить  
 
 автор: s-control   (08.02.2011 в 11:59)   личное сообщение
 
 

точно!
вопрос для snip
зачем xl.Visible=True два раза?
xl.Sheets("excelDOM").Select - это лишнее, по умолчанию всегда он будет.

  Ответить  
 
 автор: snipe   (08.02.2011 в 16:29)   личное сообщение
 
 

видимо просто не удалил
там и апостроф лишний есть
а селект листа - это сам эксель написал

  Ответить  
 
 автор: s-control   (08.02.2011 в 16:49)   личное сообщение
 
 

тогда понятно ))

  Ответить  
 
 автор: Жень Шень   (08.02.2011 в 13:35)   личное сообщение
 
 

Спасибо ребята, все заработало.
Вчера пробовал подключать библиотеку, но самого главного не написал:
xl.Workbooks.Open Filename:="C:\excelDOM.xls"
Здорово, что выручаете уже не первый раз.

  Ответить  
 
 автор: s-control   (08.02.2011 в 13:53)   личное сообщение
 
 

Эх ты! а я уже подумал, какой я лох, не смог написать работающий код. шутка)))
Успехов!)

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList