|
|
|
| По таймеру вызываю паблик процедуру, указав имя модуля.имя процедуры, получаю критич. ошибку access закрывается, экспериментировал на 3-х машинах Предварительное открытие данного модуля через Docmd.Open решает проблему - всё отлично работает.
В чём тут дело не могу понять, все остальные пабл. процедуры, ф-ции вызываются без всякого открытия, их содержащего модуля
Повесил на кнопку вызов той же пабл. процедуры без открытия модуля - работает!?? | |
|
| |
|
|
|
| Вызываю публичную процедуру по событию таймера без открытия модуля, все работает.
Private Sub Form_Timer()
Test
End Sub
Public Sub Test()
Debug.Print Time()
End Sub
|
| |
|
| |
|
|
|
| Нет не БАГ! Вот результат эксперимента: Форма, в которой срабатывает таймер (и происходит вызов), загружается при запуске приложения, только после такого старта формы, вызов процедуры вызывает ошибку. Если же я при старте закрываю форму, открываю снова - то не сбоит !! Здесь дело в чём-то другом, вот в чём только..??? | |
|
| |
|
|
|
| Для начала, импортом всего в новый файл. | |
|
| |
|
|
|
| Дальше - больше. Импорт ругается при импорте форм: "Имя совпадает с именем существующего модуля, проекта или библиотеки объектов", хотя ничто не совпадает! В этой новой базе теперь даже при обычном (т.е. не при старте приложения) открытии формы, access закрывается...? И обратно же если в этой новой базе, делаю предварительное открытие модуля с процедурой, то все ОК.??? | |
|
| |
|
|
|
| Делаем копию основной.
Пробуем импортировать поштучно.
На каких формах будет ругаться, копируем текст модуля в блокнот. Модуль из формы удаляем (Устанавливаем свойство - Наличие модуля в Нет). Компилируем проект. Импортирум форму без модуля. В новой базе создаем модуль этой формы. Копируем из блокнота код модуля. Проверяем соответствие событий коду. Компилируем проект.
В статьях форума есть две статьи:
1. Очистка кода от мусора.
2. Сохранение форм в текстовом файле и создание из файла.
Точных названий не помню, но где-то "сверху".
Можно попытаться воспользоваться этими методиками. | |
|
| |
|
|
|
| Поставил SP3, импорт в новую базу прошел без ошибок, все модули, таблицы и т.д. Компилируется тож без вопросов. Программка для чистки БД Doctor For DA Access тоже не помогает, т.е. чистит, пишет, что такие-то модули почищены, но без эффекта. Запускаю и вижу тот же сбой в работе access!
Пробую вызвать с того же события таймера, любую другую паблик процедуру, и нет никаких сбоев
Не базу же с нуля писать?! | |
|
| |
|
|
|
| А Вы непробовали поменять слово тест на другое TESTIK например.
У вас база тоже тест называется - нет? | |
|
| |
|
|
|
| Да это вообще Лукас написал?! Я уже, что только не пробовал...
Товарищи программисты, скажите что-нить по поводу базы моей, жуть как не охота переписывать, тем более, что гарантии "незаглючивания" снова, нет! ???
В пошаговом всё работает. Ничего не могу понять? Уже копирил все модули в текст, назад в базу, безрезультатно! NEED ASSISTANCE!!! | |
|
| |
|
|
|
|
...Пробую вызвать с того же события таймера, любую другую паблик процедуру, и нет никаких сбоев...
|
Так может вопрос в самой процедуре. Покажите текст. | |
|
| |
|
|
|
| Вот. Процедура более чем незамысловатая. Я пробовал вместо тела ставить Msgbox просто, работает, иначе сбоит!
Option Compare Database
Option Explicit
Public Sub WRITEOFF()
Dim RST As DAO.Recordset, strSQL As String, DELstr As String
Set RST = CurrentDb.OpenRecordset("SELECT Round([Сумма]/[Кол-во дней]) AS INKASSO, " & _
"Заказы.ClientID, [Заказы-detail].VisitDate, Группы.Группа FROM Группы INNER JOIN " & _
"(Заказы INNER JOIN [Заказы-detail] ON Заказы.Код_Заказы = [Заказы-detail].OrderCode)" & _
" ON Группы.Код = Заказы.Группа WHERE ((([Заказы-detail].VisitDate) = Date()))" & _
"ORDER BY Round([Сумма]/[Кол-во дней])")
If RST.RecordCount <> 0 Then
With RST
Do While Not .EOF
DELstr = "DELETE FROM [Счета] WHERE Клиент = " & .Fields(1) & " AND " & _
"Дата = " & Format(.Fields(2), "\#mm\/dd\/yyyy\#") & " AND Инкассо = " & .Fields(0) & " " & _
" AND Описание = '" & "Списание" & .Fields(3) & "';"
CurrentProject.Connection.Execute DELstr
strSQL = "INSERT INTO [Счета]([Клиент],[Дата],[Инкассо], " & _
"[Описание]) VALUES (" & .Fields(1) & ", " & _
"" & Format(.Fields(2), "\#mm\/dd\/yyyy\#") & ", " & .Fields(0) & ", " & _
"'" & "Списание" & .Fields(3) & "');"
CurrentProject.Connection.Execute strSQL
Debug.Print , .Fields(0), .Fields(1), .Fields(2), .Fields(3)
.MoveNext
Loop
End With
End If
End Sub
|
В пошаговом работает. Работает без сбоев также в случае если модуль открыт. | |
|
| |
|
36 Кб. |
|
| Не знаю Ваш ли случай, но попробовать можно: | |
|
| |
|
98 Кб. |
|
| DoEvents не помогает. Прикрепил базу, плз посмотрите, протестируйте. Я уже неделю с этим глюком расправиться не могу | |
|
| |
|
|
|
| Запустил, .... - все работает и по таймеру через 5 с и через кнопку
Глюка не наблюдаю | |
|
| |
|
|
|
| А в таблице счета, что-нить появляется??? Я на 4-х машинах уже испробовал - одна и та же ошибка и Access закрывается!!!
PS. Товарищ OSMOR добавьте стреляющийся из пистола смайлик, плз !!!!!!! Мне так его не хватает O_o | |
|
| |
|
|
|
| В таблице счета - одна запись
Ингарова Ольга Дмитриевна | |
|
| |
|
|
|
| "ВСЁ НОРМАЛЬНО!"
пишет.........
А пробовали постепенно снижаясь по коду делать точки останова...
Всё ниже и ниже - где зависнет - в какой строке начнёт глючить........ | |
|
| |
|
|
|
| ЧАС: ДА нигде не виснет, если хоть 1 точку ставлю или просто VBE открываю и тут же закрыаю. Я вообще в полном непонимании причины!!?? ПОЧЕМУ на тех машинах, где тестил не работает? | |
|
| |
|
|
|
| V.Kim, ЧАС?: А Access какой у вас установлен?? | |
|
| |
|
|
|
| я делал обертку DoEvents
Public Function WaitEndProces()
' ждать ответ системы
Dim i As Long
On Error GoTo Err_Debug
For i = 0 To 10
DoEvents
Next i
Exit_Here:
Exit Function
Err_Debug:
Resume Exit_Here
End Function
|
| |
|
| |
|
|
|
| Проэкспериментировал, сделал такую же оберку - безрезультатно!?
Я думал сначала на свой офис, потом начал "подозревать" систему, но после теста на 4-х машинах....??? | |
|
| |
|
|
|
| Что за ХР такая.......
Сжать и восстановить , перебросить в чистуб новую базу - тоже пробовали наверное........
Вот ведь странность какая.
Я весь выходной модуль писал в базе - всё путём - закончил, а он в очередное открытие - пропал без следа........... ЧУДЕСА ...........
Всё на смарку - весь день коту под Х. ост.
А пробовали постепенно снижаясь по коду делать точки останова...
Всё ниже и ниже - где зависнет в какой строке начнёт глючить
.......
может попробовать на время убрать Option Explicit
хотя вряд ли.
Можно на время закомментировать
'CurrentProject.Connection.Execute
Поочереди.
............... | |
|
| |
|
0 Кб. |
|
| Вот еще на одной машине протестировал, Vista, приложение закрываясь "объяснило", что:
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: MSACCESS.EXE
Версия приложения: 11.0.8166.0
Штамп времени приложения: 46437912
Имя модуля с ошибкой: VBE6.DLL
Версия модуля с ошибкой: 6.5.10.24
Штамп времени модуля с ошибкой: 464105f1
Код исключения: c0000005
Смещение исключения: 001a5c2a
Версия ОС: 6.0.6000.2.0.0.768.3
Код языка: 1049
Дополнительные сведения об этой проблеме:
LCID: 1049
Brand: Office11Crash
skulcid: 1049
Может проблема в DLL?? но тогда на 5 компах имеем одинаковую проблему с DLL?? Прикрепил файл с отчетом об ошибке, может подскажите что... | |
|
| |