Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Авто обновление данных OLE DB закрытие файла с сохранением / 10 сообщений из 10, страница 1 из 1
11.11.2014, 13:20
    #38801982
halfpintboy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авто обновление данных OLE DB закрытие файла с сохранением
Добрый день!

Задача: автоматом рефрешить данные из OLE DB источника при открытии эксель файла и после рефреша закрывать файл с сохранением.

У меня получается только обновлять данные при открытии, но файл он не закрывает. Подскажите пожалуйста в чем моя ошибка и что не так?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub auto_open()
    Call DataRefresh
End Sub

Sub DataRefresh()
    TimeToRun = Now
    Application.OnTime TimeToRun, "Refresh"
End Sub

Sub Refresh()
    ActiveWorkbook.Connections("Shas").Refresh
End Sub

Sub auto_close()
    Application.OnTime TimeToRun, "Refresh", , True
    Application.Quit
    ThisWoorkbook.Close SaveChanges:=True
End Sub

Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
11.11.2014, 13:27
    #38802008
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авто обновление данных OLE DB закрытие файла с сохранением
halfpintboyпосле рефреша закрывать файл с сохранением.refresh вижу, команды на закрытие файла не вижу
...
Рейтинг: 0 / 0
11.11.2014, 13:39
    #38802034
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авто обновление данных OLE DB закрытие файла с сохранением
halfpintboy,

Вас не смущает, что Application.Quit идет до закрытия файла? Вы пробовали руками свою последовательность действий выполнить?
...
Рейтинг: 0 / 0
11.11.2014, 13:43
    #38802046
halfpintboy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авто обновление данных OLE DB закрытие файла с сохранением
Если вызвать, то оно не обновляется, а просто сразу закроется. Подскажите, какая правильная последовательность команд нужна для обновления и закрытия?
...
Рейтинг: 0 / 0
11.11.2014, 13:53
    #38802066
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авто обновление данных OLE DB закрытие файла с сохранением
halfpintboy,

логику включить не пробовали? Последний намек:
Код: vbnet
1.
2.
Application.Quit 'закрытие Excel
ThisWoorkbook.Close SaveChanges:=True 'закрытие книги


Теперь включаем мозг: как можно сохранить книгу при закрытом приложении?
...
Рейтинг: 0 / 0
11.11.2014, 13:54
    #38802068
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авто обновление данных OLE DB закрытие файла с сохранением
The_PristВас не смущает, что Application.Quit идет до закрытия файла?так оно для начала до него не дохходит вообще
halfpintboyЕсли вызватьА если НЕ вызвать, то оно не закроется, так чего вы тогда удивляетесь-то?halfpintboyно файл он не закрывает

Попробуйте так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub auto_open()
    Application.OnTime DateAdd("s", 1, Now), "Refresh"
End Sub
Sub Refresh()
    ThisWorkbook.Connections("Shas").Refresh
    ThisWoorkbook.Close SaveChanges:=True
    Application.Quit
End Sub
...
Рейтинг: 0 / 0
11.11.2014, 13:54
    #38802069
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авто обновление данных OLE DB закрытие файла с сохранением
Далее: что есть такое TimeToRun, какое у неё значение и где оно задается?
...
Рейтинг: 0 / 0
11.11.2014, 13:58
    #38802077
halfpintboy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авто обновление данных OLE DB закрытие файла с сохранением
Да, я понимаю, разницу между закрытием файла и книги. Но если использовать код, что вы предложили- он закрывает книгу, но не обновления все равно не происходит.
Как можно сделать проверку на то, что он обновил данные и только после этого выходить?
...
Рейтинг: 0 / 0
11.11.2014, 14:04
    #38802088
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авто обновление данных OLE DB закрытие файла с сохранением
хм, вероятно обновление данных происходит асинхронно, попробуйте сделать паузу между обновлением и закрытием - прокатит?

возможно, есть способ узнать, закончилось ли асинхронное обновление, но я о нем не знаю.
...
Рейтинг: 0 / 0
11.11.2014, 14:36
    #38802149
halfpintboy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авто обновление данных OLE DB закрытие файла с сохранением
Shocker.Pro,

мне удалось сделать используя ваш код

Sub auto_open()
Application.OnTime DateAdd("s", 1, Now), "Refresh"
End Sub

Sub Refresh()
ActiveWorkbook.Connections("DWHSUN").Refresh

Application.OnTime DateAdd("s", 15, Now), "Save"

End Sub


Sub save()

ActiveWorkbook.save
Application.Quit

End Sub

Благодарю!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Авто обновление данных OLE DB закрытие файла с сохранением / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]