powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите автоматизировать код
16 сообщений из 16, страница 1 из 1
помогите автоматизировать код
    #32588711
MPoil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С помощью этого кода у меня выгружаются отчеты в разные папки и они не всегда успевают сделаться,т.е. иногда получаются пустыми,а doevents не помогает
автор Set rs = CurrentDb.OpenRecordset("Select region_id,region_name from temp_report where ok=-1")
rs.MoveFirst
strfoldertemp = strFolder
h_old = H
rg_id = [Forms]![budget_editor_new]![RegionID]
While rs.EOF <> True

strFolder = strFolder & rs(0).Value & "\"
If fso.FolderExists(strFolder) = False Then
i = 4
While Len(Left(strFolder, i)) <= Len(strFolder) And i > 0
If fso.FolderExists(Left(strFolder, InStr(i, strFolder, "\"))) = False Then
fso.CreateFolder (Left(strFolder, InStr(i, strFolder, "\")))
End If

i = i + 1
i = InStr(i, strFolder, "\")

Wend
End If

stDocName = "Budget_ALL_LINES_new"


H = rs(0).Value
Head
[Forms]![budget_editor_new].Requery
HName = Nz(rs(1).Value, "")
Head_Name
[Forms]![budget_editor_new].RegionID.Value = Head
[Forms]![budget_editor_new].Budget_Filtered1_subform.Requery
[Forms]![budget_editor_new].Total_Budget1_subform.Requery
[Forms]![budget_editor_new].Total = [Forms]![budget_editor_new].Total_Budget1_subform.Form.Total
[Forms]![budget_editor_new].Total_tekushee = [Forms]![budget_editor_new].Total_Budget1_subform.Form.Total_tekushee
[Forms]![budget_editor_new].Total_ostatok = [Forms]![budget_editor_new].Total_Budget1_subform.Form.Total_ostatok
[Forms]![budget_editor_new].Recalc
[Forms]![budget_editor_new].Requery
DoEvents

DoCmd.OutputTo acSendReport, stDocName, acFormatHTML, strFolder & Format(Date, "dd.mm.yy") & "BAL.html"
rs.MoveNext
strFolder = strfoldertemp

Wend
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588736
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы процедуру проверок на существование фолдеров и файлов вынес бы в отдельную функцию со своим обработчиком ошибок.
Кроме того, непривычно такое построение: While rs.EOF <> True
Обычно
While Not rs.EOF
...
rs.MoweNext

Wend
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588754
MPoil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор Set rs = CurrentDb.OpenRecordset("Select region_id,region_name from temp_report where ok=-1")
rs.MoveFirst
strfoldertemp = strFolder
h_old = H
rg_id = [Forms]![budget_editor_new]![RegionID]
While Not rs.EOF
fold (rs(0).Value)
H = rs(0).Value
Head
HName = Nz(rs(1).Value, "")
Head_Name
[Forms]![budget_editor_new].Total = [Forms]![budget_editor_new].Total_Budget1_subform.Form.Total
[Forms]![budget_editor_new].Total_tekushee = [Forms]![budget_editor_new].Total_Budget1_subform.Form.Total_tekushee
[Forms]![budget_editor_new].Total_ostatok = [Forms]![budget_editor_new].Total_Budget1_subform.Form.Total_ostatok
[Forms]![budget_editor_new].Requery
[Forms]![budget_editor_new].Budget_Filtered1_subform.Requery
[Forms]![budget_editor_new].Total_Budget1_subform.Requery
DoEvents
DoCmd.OutputTo acSendReport, stDocName, acFormatHTML, strFolder & Format(Date, "dd.mm.yy") & "BAL.html"
rs.MoveNext
strFolder = strfoldertemp

Wend
вот,но как всё же сделать,чтобы успевалось всё сделать?
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588759
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделать отдельную функцию по созданию каталогов типа boolean - вернёт true, если при создании не произошло ошибки, после этого производить запись файлов в каталог - накладок не будет.
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588763
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думал так:

While Not rs.EOF
strFolder = Func1(...)
If CheckExistsAndCreate(strFolder) Then
...
endif
rs.MoweNext

Wend
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588768
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Rivkin Dmitry
Не увидел, что раньше было написано, странно:)

А может у парня просто репорты выдают ошибку в некоторых случаях или ничего не возвращают - поэтому папки пустые?
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588775
MPoil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простите,что не правильно написал,они создаются всегда,только иногда пустые внутри,только шаблон и без данных. Данные не успевают туда записаться,которые берутся из другой формы(я в форме как раз присваимаю значения полям другой формы)
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588778
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hummer2 Rivkin Dmitry
Не увидел, что раньше было написано, странно:)

А может у парня просто репорты выдают ошибку в некоторых случаях или ничего не возвращают - поэтому папки пустые?

Не спорю, просто, во-1-х, показалось странным держать два ровершенно независимых механизма в одной обработке и чтобы отделить зерна от плевел пошел по этому пути. возможно ведь, что и папки не создаются из-за отсутствия, например, прав или места!?
Разделив операции можно начать проверку репортов
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588785
MPoil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даже по-другому.При прохождении цикла первый раз всё нормально,а при последующих уже файлы получаются без данных-только шаблон.Может надо как-то процесс OutputTo выгружать из памяти или что-то ещё делать?
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588813
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 Что такое Head и Head_Name? Процедуры?

2 А как формируется репорт(?) stDocName = "Budget_ALL_LINES_new"?

3 Для чего нужны присвоения в форме [Forms]![budget_editor_new]?
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588818
MPoil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.head и headname() это глобальные функции,они также служат и для заголовка в отчёте
2.да,это имя отчёта,просто вместо названия написал так
3.отчёт берёт свои значения часть из формы,а часть из запросов,причём в некотрых запросах есть параметры,типа :
where region=[forms]![frfrfr]!regionID
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588823
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 MPoil
Значится проблема в отчёте. По имеющимся данным в вопросе в начале темы её не решить - неужели не понятно?:)

Ответь на вопросы Rivkin Dmitry.
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588831
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 MPoil
Каждый раз с новыми данными выводи отчёт на печать (на просмотр или на виртуальный принтер), а в капшен отчёта или в какое-нибудь поле пиши, с какими параметрами вызов отчёта был - тогда можно посмотреть, при каких входных данных отчёт пустой.
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588840
MPoil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я вроде ответил,хотя мне кажется что проблема не в этом
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32588858
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MPoilя вроде ответил,хотя мне кажется что проблема не в этом

Остановись на DoCmd.OutputTo
и проверь что возвращает запрос на отчете. Быть может он пустой из-за какого-то критерия
...
Рейтинг: 0 / 0
помогите автоматизировать код
    #32589473
Fat Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня подобная ситуевина была связана с работой антивируса. Решилось установкой тормоза программы на 5 сек. Решение, конечно, корявое и некрасивое, но помогло. Время задержки подбиралось опытным путем.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите автоматизировать код
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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