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

Задача: автоматом рефрешить данные из 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
Авто обновление данных OLE DB закрытие файла с сохранением
    #38802008
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
halfpintboyпосле рефреша закрывать файл с сохранением.refresh вижу, команды на закрытие файла не вижу
...
Рейтинг: 0 / 0
Авто обновление данных OLE DB закрытие файла с сохранением
    #38802034
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
halfpintboy,

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

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


Теперь включаем мозг: как можно сохранить книгу при закрытом приложении?
...
Рейтинг: 0 / 0
Авто обновление данных OLE DB закрытие файла с сохранением
    #38802068
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Авто обновление данных OLE DB закрытие файла с сохранением
    #38802069
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Далее: что есть такое TimeToRun, какое у неё значение и где оно задается?
...
Рейтинг: 0 / 0
Авто обновление данных OLE DB закрытие файла с сохранением
    #38802077
halfpintboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, я понимаю, разницу между закрытием файла и книги. Но если использовать код, что вы предложили- он закрывает книгу, но не обновления все равно не происходит.
Как можно сделать проверку на то, что он обновил данные и только после этого выходить?
...
Рейтинг: 0 / 0
Авто обновление данных OLE DB закрытие файла с сохранением
    #38802088
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм, вероятно обновление данных происходит асинхронно, попробуйте сделать паузу между обновлением и закрытием - прокатит?

возможно, есть способ узнать, закончилось ли асинхронное обновление, но я о нем не знаю.
...
Рейтинг: 0 / 0
Авто обновление данных OLE DB закрытие файла с сохранением
    #38802149
halfpintboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Авто обновление данных OLE DB закрытие файла с сохранением
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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