|
Ошибка 29068
|
|||
---|---|---|---|
#18+
Возникла следующая проблема. Задача. Берётся исходная база данных, правится содержимое таблиц по определённым правилам. Вставляются формы, макрос autoexec и получается база под конкретного заказчика. Всё работало нормально. Но пришлось несколько усложнить задачу по формированию базы. Повесить дополнительный код. И программа стала вылетать по ошибке 29068 (смотри приложение) Ошибка возникает в следующем фрагменте кода Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Ошибка возникает после второго оператора DoCmd.CopyObject Иногда она не возникает (особенно после сжатия базы). Если проходишь под отладчиком, то никогда не случается. Возможно предыдущий оператор не всегда успевает отработать. Что делать? Пробовал ставить Sleep , не помогло. ------------------------------------------------------------- А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 14:37 |
|
Ошибка 29068
|
|||
---|---|---|---|
#18+
Joss, а если сначала макрос, а затем форму? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 15:19 |
|
Ошибка 29068
|
|||
---|---|---|---|
#18+
JossОшибка возникает после второго оператора DoCmd.CopyObject ПРИ его выполнении или ПОСЛЕ его выполнения, на следующем операторе? JossИногда она не возникает (особенно после сжатия базы)Сжатия какой именно базы - в которой код (наиболее вероятно), или в которую выполняется копирование? Вообще я бы вставил перед вторым блоком копирования небольшую (100-200 мс) задержку. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 15:23 |
|
Ошибка 29068
|
|||
---|---|---|---|
#18+
Первое, DoEvents ставил - не помогло. Задержку ставил - не помогло (sleep 1000) Местами копирование формы и макроса не менял. Пока сделал следующее Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Пока ошибки не выдавало. Я просто зациклил обработку этой ошибки. Пока не выполнится - будет пытаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 15:59 |
|
Ошибка 29068
|
|||
---|---|---|---|
#18+
JossЯ просто зациклил обработку этой ошибки. Пока не выполнится - будет пытаться.Так - плохо. 1) Введи переменную-счётчик, и ограничь максимальное количество "витков" цикла; 2) Обработчик включай непосредственно перед оператором, и выключай сразу после него. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 16:06 |
|
Ошибка 29068
|
|||
---|---|---|---|
#18+
AkinaJossЯ просто зациклил обработку этой ошибки. Пока не выполнится - будет пытаться.Так - плохо. 1) Введи переменную-счётчик, и ограничь максимальное количество "витков" цикла; 2) Обработчик включай непосредственно перед оператором, и выключай сразу после него. Имеет смысл. Только вместо счетчика циклов лучше наверное контролировать время - 5-10 сек Хотя тут не угадаешь, что лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 16:18 |
|
Ошибка 29068
|
|||
---|---|---|---|
#18+
Jossвместо счетчика циклов лучше наверное контролировать время Ничто не мешает контролировать и то, и это: Код: vbnet 1. 2. 3. 4.
Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 16:33 |
|
|
start [/forum/topic.php?fid=45&gotonew=1&tid=1612061]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 287ms |
total: | 444ms |
0 / 0 |