|
|
|
| Всем привет.
Из формы создаю запрос и открываю его в 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.
Спасибо. | |
|
| |
|
|
|
| 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 и забываешь про неё, смысл её тогда...?
Удачи! | |
|
| |
|
|
|
| Спасибо за код. Дома опробую. На работе флешем мозоли тру.
А про db и Set db=nothing, еще одно спасибо. Забываю иногда подчищать, грешен. | |
|
| |
|
|
12 Кб. |
|
| Добрый день, всем.
To s-control.
Просидел весь вечер над кодом. Но, видать не судьба или руки не оттуда ростут. Пожалуйста посмотрите базу (упрощена до минимума) - что не так или что еще надо подключить (dll, ocx).
Заранее благодарен | |
|
| |
|
|
|
| Подключите библиотеку 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 | |
|
| |
|
|
|
| точно!
вопрос для snip
зачем xl.Visible=True два раза?
xl.Sheets("excelDOM").Select - это лишнее, по умолчанию всегда он будет. | |
|
| |
|
|
|
| видимо просто не удалил
там и апостроф лишний есть
а селект листа - это сам эксель написал | |
|
| |
|
|
|
|
| Спасибо ребята, все заработало.
Вчера пробовал подключать библиотеку, но самого главного не написал:
xl.Workbooks.Open Filename:="C:\excelDOM.xls"
Здорово, что выручаете уже не первый раз.
| |
|
| |
|
|
|
| Эх ты! а я уже подумал, какой я лох, не смог написать работающий код. шутка)))
Успехов!) | |
|
| |