|
|
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
С помощью этого кода у меня выгружаются отчеты в разные папки и они не всегда успевают сделаться,т.е. иногда получаются пустыми,а 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 08:39:36 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
Я бы процедуру проверок на существование фолдеров и файлов вынес бы в отдельную функцию со своим обработчиком ошибок. Кроме того, непривычно такое построение: While rs.EOF <> True Обычно While Not rs.EOF ... rs.MoweNext Wend ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 09:02:53 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
автор 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 вот,но как всё же сделать,чтобы успевалось всё сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 09:16:51 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
Сделать отдельную функцию по созданию каталогов типа boolean - вернёт true, если при создании не произошло ошибки, после этого производить запись файлов в каталог - накладок не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 09:20:22 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
Я думал так: While Not rs.EOF strFolder = Func1(...) If CheckExistsAndCreate(strFolder) Then ... endif rs.MoweNext Wend ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 09:21:09 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
2 Rivkin Dmitry Не увидел, что раньше было написано, странно:) А может у парня просто репорты выдают ошибку в некоторых случаях или ничего не возвращают - поэтому папки пустые? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 09:23:07 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
простите,что не правильно написал,они создаются всегда,только иногда пустые внутри,только шаблон и без данных. Данные не успевают туда записаться,которые берутся из другой формы(я в форме как раз присваимаю значения полям другой формы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 09:28:20 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
Hummer2 Rivkin Dmitry Не увидел, что раньше было написано, странно:) А может у парня просто репорты выдают ошибку в некоторых случаях или ничего не возвращают - поэтому папки пустые? Не спорю, просто, во-1-х, показалось странным держать два ровершенно независимых механизма в одной обработке и чтобы отделить зерна от плевел пошел по этому пути. возможно ведь, что и папки не создаются из-за отсутствия, например, прав или места!? Разделив операции можно начать проверку репортов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 09:29:36 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
даже по-другому.При прохождении цикла первый раз всё нормально,а при последующих уже файлы получаются без данных-только шаблон.Может надо как-то процесс OutputTo выгружать из памяти или что-то ещё делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 09:35:26 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
1 Что такое Head и Head_Name? Процедуры? 2 А как формируется репорт(?) stDocName = "Budget_ALL_LINES_new"? 3 Для чего нужны присвоения в форме [Forms]![budget_editor_new]? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 09:51:45 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
1.head и headname() это глобальные функции,они также служат и для заголовка в отчёте 2.да,это имя отчёта,просто вместо названия написал так 3.отчёт берёт свои значения часть из формы,а часть из запросов,причём в некотрых запросах есть параметры,типа : where region=[forms]![frfrfr]!regionID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 09:55:31 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
2 MPoil Значится проблема в отчёте. По имеющимся данным в вопросе в начале темы её не решить - неужели не понятно?:) Ответь на вопросы Rivkin Dmitry. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 09:56:28 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
2 MPoil Каждый раз с новыми данными выводи отчёт на печать (на просмотр или на виртуальный принтер), а в капшен отчёта или в какое-нибудь поле пиши, с какими параметрами вызов отчёта был - тогда можно посмотреть, при каких входных данных отчёт пустой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 09:58:53 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
я вроде ответил,хотя мне кажется что проблема не в этом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 10:01:04 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
MPoilя вроде ответил,хотя мне кажется что проблема не в этом Остановись на DoCmd.OutputTo и проверь что возвращает запрос на отчете. Быть может он пустой из-за какого-то критерия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 10:12:38 |
|
||
|
помогите автоматизировать код
|
|||
|---|---|---|---|
|
#18+
У меня подобная ситуевина была связана с работой антивируса. Решилось установкой тормоза программы на 5 сек. Решение, конечно, корявое и некрасивое, но помогло. Время задержки подбиралось опытным путем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2004, 14:09:55 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32588818&tid=1673420]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
186ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 473ms |

| 0 / 0 |
