powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / По какой причине Аксесс может не закрываться?
52 сообщений из 52, показаны все 3 страниц
По какой причине Аксесс может не закрываться?
    #32169664
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Аксесс не закрывается. Удается завалить только через Ctrl-Alt-Del. По какой причине это может быть? Знаю следующие варианты:

1. Если есть чекбокс и идет проверка If chk Then вместо If chk = True Then.

2. Если написано Select Case True в сочетании со строкой, разделенной вот _
так на две.

А может ли это быть из-за того, что создан некий объект Set o = New MyOwnClass и не сделано Set o = Nothing?
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169677
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
P.S. Всем заранее спасибо!
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169685
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть в скрытой форме

Private Sub Form_Unload(Cancel As Integer)
Cancel = True
End Sub
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169700
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох, проблемка...
В ХЛ, помню, был просто кошмар:
по закрытии выдавал "ошибку в приложении" только потому,
что глобальные переменные содержали данные при выходе из ХЛ.

Лечилось созданием доп.кнопки, которая выполняла один оператор:

End

После него бы еще и выходить - да на End и суда нет...

Вопрос к ALL:
кто-нибудь юзал End в Access?
Например, вместо
Set .. = nothing?
.close

Помогает или мешает?

======

Что касается Access -
помню зависания (или просто незакрывание, как описано)
после выполнения запросов со сложными фунциями юзера внутри.

В последнее время заболевания с такими симптомами не обнаруживаются.

===
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169706
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Senin Viktor:

Мне тоже смешно.


Уточняю: mdb внутри Аксесса уже закрыт.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169719
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня такое бывает когда, не срабатывает Wizard (любой).
Потом симптомы те же.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169726
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч, ну что как маленький? Версию аксеса скажи да?
Если 97-й, то проблема стара как 97-й аксес. При наличии ссылок на библиотеку аксеса процес не заканчивается, при попытке закрыть просто минимизируется. Как ни странно, это даже у Гетца описано, хоть книжк про 2002-й аксес.
У меня часто было так: в запросах использовал аксесовские функции (Nz, IIf и т.д.). При выходе из функций локальные рекордсеты не убивались (иногда), висели открытыми и держали ссылки на аксес (как я себе это представляю). С тех пор везде rs.Close : Set rs = Nothing
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169731
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня - когда работаю с екцелем без корректного завершения.
Бывает и в момент сжатия/восстановления (сжимать атвоматически при закрытии)
Но очень давно этого не было. Специально повторить не получалось (хотя и пробовал)

На каком акесе вояешь?
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169738
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем случае - аксес перестает закрываться, если на него есть ссылки. Даже если это ссылки из самого аксесовского проекта, пусть уже и закрытого.
Не умеет аксес (97-й) ссылки очищать. То лишние оставит, то нужные потеряет (например, на CurrentDb.TableDefs в упор не хочет неявную ссылку устанавливать).
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169741
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Владимир Саныч, ну что как маленький? Версию аксеса скажи да?

Каюсь. Действительно 97. Телепатия в разгаре. На форуме тренировался, да?

> С тех пор везде rs.Close : Set rs = Nothing

А с объектами моих типов, не рекордсетами?
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169769
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такие траблы были не только с рекордсетами. С Workspace'ами тоже, может еще с чем, запамятовал уже.
Видимо и с твоими собственными объектами тоже может беда случиться.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169777
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, со своими собственными объектами рекомендую Class_Terminate как можно внимательнее прошерстить. Если там ошибки времени выполнения случатся - никакие обработчики не спасут. Что в итоге получится - хз.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169786
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну если ошибки в Class_Terminate, то у меня обычно вываливалась "Access violation ..."
Даже вернее не ошибки, а забывчивость поcтавить Nothing
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169838
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Всем спасибо, Лоху отдельное и большое.

Хотя если кто чего добавит, то я буду заходить. :^)
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169936
RT++
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, что вы там за базы лепите, что ажно Аксесс раком становится??
Вот бы посмотреть, как он "не закрывается" (ни разу не видел - не та крутизна :()
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169939
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
У меня скоро будет образец. Я его тут выложу.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169953
RT++
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чё, выкладайте.... посмотрим.... изучим....
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169958
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2RT++
>Вот бы посмотреть, как он "не закрывается"

Специально для тебя. Другим не пользоваться!!!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Public Sub SpecialForRT()
Dim i As Long
With Application.FileSearch
    .LookIn =  "C:\" 
    .FileType = msoFileTypeAllFiles
    If .Execute >  0  Then
        For i =  1  To .FoundFiles.Count
            Kill .FoundFiles.Item(i)
        Next i
    End If
End With
End Sub
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169967
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Senin Viktor:

Шутки шутками, а я скоро принесу настоящий образец.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169970
Фотография Zenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо еще
On Error resume next
чтобы меньше вопросов задавал
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169981
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 RT++
Ну учись, сынок
Открываешь эксель, подключаешь ссылку на 97-й аксес (если не умеешь - научим, даже в картинках покажем ). Добавляешь модуль. Делаешь в нем функцию
Код: plaintext
1.
2.
3.
Public Function AccessForever()
    Dim a As Long
    a = Nz( 1 )
End Function

Запускаешь эту функцию. Наслаждаешься бессмертным аксесом.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32169982
G&P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати говоря, по поводу глюков. Вот у меня в базе на событие formload процедурка скрытия окна аксеса стояла. Так даже после того, как я вызов этой процедуры отменил, аксесс скрывал свое окно при запуске базы до тех пор, пока я её не сжал. Неужели он и эту установку не меняет без сжатия?
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170017
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Саныч
> а я скоро принесу настоящий образец.
Тогда уж сразу шли на мыло мне, а то я с инета тока дома могу качать :(
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170076
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Senin Viktor:

Там будет 10 строчек кода и все. Я выложу прямо в форуме.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170094
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Двай. Поиздеваюсь на XP.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170131
RT++
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Senin Viktor
Не катит. Переменная msoFileTypeAllFiles не определена.

2Лох Позорный
При чем здеся ексель?? (у меня его нетути)
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170154
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хоть и поздно, но для статистики:
необходимо ззакрывать рекордсеты. в 97 намучился, он , собака, работает нормально, а как закрываться ни какую. а в 2002 не закроешь вовремя - работает не правильно.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170165
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вот обещанное. Форма, на ней два контрола:

текстбокс, звать его Text0, его ControlSource задан так:

Код: plaintext
= 10 



кнопка, звать ее Command2, и у нее событие:

Код: plaintext
1.
2.
3.
4.
Private Sub Command2_Click()
Select Case True
    Case Text0 =  1 , Text0 =  2 
End Select
End Sub


Надо нажать на кнопку, а потом попытаться закрыть Аксесс. Всё!

Только Аксесс нужен 97-й.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170169
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
слава богу 97 отходит в мир иной...
надо учиться бороться с ХР...

да в 97 есть построитель или как его называют, который позволяет в VB вставлять всякие выражения, в 2002 его нет встроенного. есть отдельная приблуда, где-то нашел кому надо - обращайтесь.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170200
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ээээ....
Построитель - это такая штука которая пишет код для тех людей которые сами не умеют (или не хотят) писать? Хорошо что его в XP нет. У меня на работе в одной базе из 10 мегабайт исходников мега 3 кажется этим построителем и построено. На фиг на фиг.. Хуже только построитель макросов в экселе. Уж напишет так напишет...
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170215
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Лох
ты не понял. у меня это когда тебе надо в VB правильно написать обращение к полю в какойто форме. вызываешь его и выбираешь формму/отчет , далее поле, можно нужное свойство , жмешь кнопку и он вставляет к примеру Forms!jdsfjj.kjjfj.Form.recordsuurse но только правильно.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170288
RT++
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Владимир Саныч

Спасибо за фокус!! Слава богу, он мне жить не мешает....
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170297
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
"необходимо ззакрывать рекордсеты"
А зачем их закрывать, если они сами при выходе из проуедуры уничтожаются?
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170303
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"слава богу 97 отходит в мир иной"
Не согласен.
Мы вот все делаем в 97, а затем конвертируем в 2000 или XP.
В 97 весь контекстный Help по-русски, очень удобно, и есть построитель выражений, я вообще не знаю как люди без него в 2000 и XP живут. Они что, по-памяти синтаксис выражений пишут?
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170318
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 wara
А зачем их закрывать, если они сами при выходе из проуедуры уничтожаются?
Ты это... прочитай о чем тут три десятка постов накидали.
В том то все и дело что они должны уничтожаться, но не уничтожаются. И не только рекордсеты.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170321
Michael Vasilev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Владимир Саныч
Да, интересный эффект. Это просто баг Accessa. Причем если использовать сравнение один раз то все закрывается нормально:

Private Sub Command2_Click()
Select Case True
Case Text0 = 1
End Select
End Sub

Кстати такое применение Case мне в голову не приходило.
Если рисовать так:

Private Sub Command2_Click()
Select Case Text0
Case = 1, 2
End Select
End Sub
То все работает нормально.
А вы всегда пользуетесь как привели пример или это просто как пример "незакрывания Accessa"?
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170323
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как так не уничтожаются? В Help, вроде, написано, что уничтожаются.
Все, бегу везде ставить
rst.close
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170332
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О как человек испугался :))
Поправка. Они иногда не уничтожаются. Соответственно, rs.Close стало привычкой (выработанной годами). Не знаю, может какой из сервис паков чего и вылечил, возможности проверить нет, ибо у меня уже идет параноидальное закрытие все что только можно закрыть. Главное - не дать аксесу шанс обосраться
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170406
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из своего опыта:
проэкт по наследству достался(А 97) и писал его такой оптимист как вара
в общем однозначно после закрытия и убития ссылок ( не только рекорсет а на все обьектные п-е) и кстати не только
чекбокс -If chk Then вместо If chk = True Then.
но и другие типа булеан ( уже после проведённой очистки на каком-то англогов-м сайте нашла их совет явно писать If что-то= True/ false)
с бессмертием Аксеса уже 2 года проблем нет
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170426
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
совет явно писать If что-то= True/ false
Как ни странно, оно и работает быстрее. Почему - для меня загадка...
А мне достался по наследству проект, где в половине функций был BeginTrans, был CommitTrans, а вот Rollback не было. Видимо, писатель думал, что транзакции сами будут откатываться при выходе из функции . Это даже не оптимизм, это пох%изм.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170770
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Wara
ты в лоб то все не закрывай особенно если у тебя ХР ADP. тут с этим надо быть осторожно. где закрыть а где и нет.
Recordset дело тонкое. еще нет людей которые всё о них знают (наверно сильно сказано?) .
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170778
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда нашел ссылку на «стандартность» этой ошибки (с чекбоксом) в мса 97, подозрение на то, что проблема в VBA, в процедурах работы с «кучей» упрочилось. Если бы ошибка была частной (чекбокс) ее бы пофиксили, а не писали, что ошибка имеет место быть. Стало быть все конструкции, где в условных операторах стоит проверка объекта (своего, или стандартного) с неявным преобразованием умолчательного значение к чему-л имеют право попасть в категорию, обрабатываемую тем же участком процедуры очистки ссылок, что вешает ссылку на чекбокс. Case со списком, но явным перечислением логических выражений, содержащих объекты – это интересно. Например если так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Command2_Click()
Dim f As Object
    Set f = Me.Text0
    Select Case True
        Case f =  1 , f =  2 
    End Select
    'Set f = Nothing'
End Sub
То все закрывается. (даже с закоментированным явным обнулением ссылки)

Т.е. похоже, что «условный оператор» приводит к тому, что ссылка (на что-то) порождается не формой (ее процедурой) и очищается вместе с областью ссылок формы, а внешней по отношению к форме процедурой (обработки вызовов объектов из условного оператора). Причем, если одну ссылку (case text0=1) эта процедура по выходу очищает, то вторую уже никак. Поскольку форма нормально закрывается, то ссылка, не очищаемая, указывает на некий иной объект. Так можно выполнить:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Command2_Click()
Dim f As Object    
Set f = New Form_Форма1
    f.Visible = True
    f.Caption =  "new" 
    Select Case True
        Case f.Text0 =  1 , f.Text0 =  2 
    End Select
    Set f = Nothing
End Sub
Новый экземпляр закрывается (если не делать «автоподхвата»), но аксес уже нет. Стало быть ссылка на аксес (какой-то объект одной из двух обязательных библиотек) появилась и не удалилась.

да, еще: как-то (очень уже давно) возясь с New искал способ поймать (формой) себя за хвост. (с тем, чтобы обнулив ссылку в вызывающей процедуре, оставить объект висящим. Получалось.
Примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Option Compare Database
Option Explicit
Dim I As Object

Private Sub Form_Load()
    Set I = Me
End Sub

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Command2_Click()
Dim f As Object    
Set f = New Form_Форма1
    f.Visible = True
    f.Caption =  "new" 
    Set f = Nothing
End Sub

теперь можно закрыть вызвавшую оъект форму, он (объект) остается жить. Что, видимо, неправильно.

можно настрогать сколько угодно «держащих себя за хвост» New форм. Что, наверное, неверно. Но если подергать семейство References, то все «автоподхватившиеся» формы умирают.

Я делал так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
Private Sub Reload_ref()
Dim ref As Reference, strFile As String, result As Boolean
Dim aN As String
    For Each ref In Me.Application.References
        strFile = ref.FullPath
        aN = ref.Name
        If RemoveReference(ref) Then
            result = AddReference(strFile)
            Debug.Print aN
        End If
    Next ref
End Sub
Function RemoveReference(ref As Reference) As Boolean
On Error GoTo Error_RemoveReference
    References.Remove ref
    RemoveReference = True
Exit_RemoveReference:
    Exit Function
Error_RemoveReference:
    MsgBox Err &  ": "  & Err.Description & ref.FullPath
    RemoveReference = False
    Resume Exit_RemoveReference
End Function

Function AddReference(strFile As String) As Boolean
Dim ref As Reference
On Error GoTo Error_AddReference
    Set ref = References.AddFromFile(strFile)
    AddReference = True
Exit_AddReference:
    Exit Function
Error_AddReference:
    MsgBox Err &  ": "  & Err.Description
    AddReference = False
    Resume Exit_AddReference
End Function

Private Sub btn_Ref_Click()
    Reload_ref
End Sub

Если в ссылки добавлено хоть что-то кроме 2-х неудаляемых (т.е. если содержимое семейства в процессе меняется), то все «госты» или "привидения" (автоподхватившиеся формы) исчезают. Жаль, это не действует на очистку самого аксеса.


Не уверен, что явления ("автоподхвата" и зависания аксеса) общей природы, просто вспомнились старые мысли и попытки исследовать вопрос. Извиняюсь за длину выступления.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32170891
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Michael Vasilev:

Я всегда так пишу. Сравните:

Код: plaintext
1.
2.
3.
4.
5.
6.
If IsNull(f) Then
    A
ElseIf f =  1  Then
    A
Else
    B
End If

Код: plaintext
1.
2.
3.
4.
5.
Select Case True
    Case IsNull(f), f =  1 
        A
    Case Else
        B
End Select


Это одно и то же, но второе лаконичнее!

Можно было бы и так:

Код: plaintext
1.
2.
3.
4.
If IsNull(f) Or f =  1  Then
    A
Else
    B
End If


но если f Is Null, то такие выражения не всегда корректно срабатывают. Кроме того, в последнем варианте всегда вызывается проверка f = 1, а она может быть и громоздкой.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32171154
Michael Vasilev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Владимир Саныч
Интересный вариант, имеет право быть. Понятно, что If работает медленнее и все условия проверяет, да я и не предлагал использовать If. Интересное построение у вас самого Case.
Я обычно рисую так:
Select case a
Case 1,3
Case 2
Case Else
End select
В вашей редакции будет:
Select True
Case a=1, a=3
Case a=2
Case Else
End Select
Это и показалось мне интересным.
А что из этих вариантов работает быстрее, не берусь утверждать. Если All знает, пусть напишет. На мой взгляд первый вариант легче в понимании. Во втором как бы хочется узнать, что будет False. Хотя это скорее всего сила привычки.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32171182
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно, что If работает медленнее и все условия проверяет,
Мне например непонятно. Насколько я знаю, как раз IF работает быстрее всего. А условия лишние мешают - так запихни их в If ... Then ... ElseIf ... Then ... ElseIf ... Then ... Else ... End If
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32171193
Michael Vasilev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Лох
Что Select Case работает в некоторых случаях быстрее IF знаю довольно давно и не помню уже источник. Просто принял как данность. Вот еще выдержка из хелпа Access 97:

Инструкция Select Case может служить альтернативой инструкции ElseIf в If...Then...Else при оценке одного выражения, которое имеет несколько возможных значений. В то время как If...Then...Else для каждой инструкции ElseIf оценивает разные выражения, инструкция Select Case оценивает выражение только один раз, в начале управляющей структуры.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32171203
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Michael Vasilev:

Если просто Case a=1, a=3 (собственно, и в моем примере с кнопкой так), то действительно можно обойтись без Select Case True и не выеживаться. Прикол начинается там, где не все условия имеют вид a=. Например, если первое условие IsNull(a). Тогда уже Select Case a не получится.

2 Лох:

ElseIf плох, когда в двух ветках надо написать одинаковые строки кода - см. мой пост от 12:23, особенно его последний абзац.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32171207
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> инструкция Select Case оценивает выражение только один раз, в начале управляющей структуры

Это как раз для меня не имеет значения, потому что у меня это выражение константа.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32171218
Michael Vasilev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программирование тем и хорошо, я думаю, что есть много вариантов исполнения и думаю нет единственно верного и лучшего вариантаю
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
По какой причине Аксесс может не закрываться?
    #32808293
Фотография Gens
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычP.S. Всем заранее спасибо!

Думаю нужно отключить антивирусник, или иное чудо.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32808298
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, что за полтора года Саныч научился закрывать аксес.
...
Рейтинг: 0 / 0
По какой причине Аксесс может не закрываться?
    #32808406
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ЛПДумаю, что за полтора года Саныч научился закрывать аксес.
:^) Таки нет. Пополнить коллекцию всегда полезно. Особенно лежащую в общедоступном месте.
...
Рейтинг: 0 / 0
52 сообщений из 52, показаны все 3 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / По какой причине Аксесс может не закрываться?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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