|
|
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
2Senin Viktor Не катит. Переменная msoFileTypeAllFiles не определена. 2Лох Позорный При чем здеся ексель?? (у меня его нетути) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2003, 20:30:12 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
хоть и поздно, но для статистики: необходимо ззакрывать рекордсеты. в 97 намучился, он , собака, работает нормально, а как закрываться ни какую. а в 2002 не закроешь вовремя - работает не правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2003, 21:53:39 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
Вот обещанное. Форма, на ней два контрола: текстбокс, звать его Text0, его ControlSource задан так: Код: plaintext кнопка, звать ее Command2, и у нее событие: Код: plaintext 1. 2. 3. 4. Надо нажать на кнопку, а потом попытаться закрыть Аксесс. Всё! Только Аксесс нужен 97-й. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2003, 22:11:58 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
слава богу 97 отходит в мир иной... надо учиться бороться с ХР... да в 97 есть построитель или как его называют, который позволяет в VB вставлять всякие выражения, в 2002 его нет встроенного. есть отдельная приблуда, где-то нашел кому надо - обращайтесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2003, 22:23:08 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
Ээээ.... Построитель - это такая штука которая пишет код для тех людей которые сами не умеют (или не хотят) писать? Хорошо что его в XP нет. У меня на работе в одной базе из 10 мегабайт исходников мега 3 кажется этим построителем и построено. На фиг на фиг.. Хуже только построитель макросов в экселе. Уж напишет так напишет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 02:01:08 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
2Лох ты не понял. у меня это когда тебе надо в VB правильно написать обращение к полю в какойто форме. вызываешь его и выбираешь формму/отчет , далее поле, можно нужное свойство , жмешь кнопку и он вставляет к примеру Forms!jdsfjj.kjjfj.Form.recordsuurse но только правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 07:15:26 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
2Владимир Саныч Спасибо за фокус!! Слава богу, он мне жить не мешает.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 09:55:51 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
вадя, "необходимо ззакрывать рекордсеты" А зачем их закрывать, если они сами при выходе из проуедуры уничтожаются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 10:01:42 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
"слава богу 97 отходит в мир иной" Не согласен. Мы вот все делаем в 97, а затем конвертируем в 2000 или XP. В 97 весь контекстный Help по-русски, очень удобно, и есть построитель выражений, я вообще не знаю как люди без него в 2000 и XP живут. Они что, по-памяти синтаксис выражений пишут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 10:05:55 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
2 wara А зачем их закрывать, если они сами при выходе из проуедуры уничтожаются? Ты это... прочитай о чем тут три десятка постов накидали. В том то все и дело что они должны уничтожаться, но не уничтожаются. И не только рекордсеты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 10:15:12 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
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"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 10:18:44 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
Как так не уничтожаются? В Help, вроде, написано, что уничтожаются. Все, бегу везде ставить rst.close ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 10:19:57 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
О как человек испугался :)) Поправка. Они иногда не уничтожаются. Соответственно, rs.Close стало привычкой (выработанной годами). Не знаю, может какой из сервис паков чего и вылечил, возможности проверить нет, ибо у меня уже идет параноидальное закрытие все что только можно закрыть. Главное - не дать аксесу шанс обосраться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 10:26:40 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
из своего опыта: проэкт по наследству достался(А 97) и писал его такой оптимист как вара в общем однозначно после закрытия и убития ссылок ( не только рекорсет а на все обьектные п-е) и кстати не только чекбокс -If chk Then вместо If chk = True Then. но и другие типа булеан ( уже после проведённой очистки на каком-то англогов-м сайте нашла их совет явно писать If что-то= True/ false) с бессмертием Аксеса уже 2 года проблем нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 11:11:55 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
совет явно писать If что-то= True/ false Как ни странно, оно и работает быстрее. Почему - для меня загадка... А мне достался по наследству проект, где в половине функций был BeginTrans, был CommitTrans, а вот Rollback не было. Видимо, писатель думал, что транзакции сами будут откатываться при выходе из функции . Это даже не оптимизм, это пох%изм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 11:25:34 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
2Wara ты в лоб то все не закрывай особенно если у тебя ХР ADP. тут с этим надо быть осторожно. где закрыть а где и нет. Recordset дело тонкое. еще нет людей которые всё о них знают (наверно сильно сказано?) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 14:33:57 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
Когда нашел ссылку на «стандартность» этой ошибки (с чекбоксом) в мса 97, подозрение на то, что проблема в VBA, в процедурах работы с «кучей» упрочилось. Если бы ошибка была частной (чекбокс) ее бы пофиксили, а не писали, что ошибка имеет место быть. Стало быть все конструкции, где в условных операторах стоит проверка объекта (своего, или стандартного) с неявным преобразованием умолчательного значение к чему-л имеют право попасть в категорию, обрабатываемую тем же участком процедуры очистки ссылок, что вешает ссылку на чекбокс. Case со списком, но явным перечислением логических выражений, содержащих объекты – это интересно. Например если так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Т.е. похоже, что «условный оператор» приводит к тому, что ссылка (на что-то) порождается не формой (ее процедурой) и очищается вместе с областью ссылок формы, а внешней по отношению к форме процедурой (обработки вызовов объектов из условного оператора). Причем, если одну ссылку (case text0=1) эта процедура по выходу очищает, то вторую уже никак. Поскольку форма нормально закрывается, то ссылка, не очищаемая, указывает на некий иной объект. Так можно выполнить: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. да, еще: как-то (очень уже давно) возясь с New искал способ поймать (формой) себя за хвост. (с тем, чтобы обнулив ссылку в вызывающей процедуре, оставить объект висящим. Получалось. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. теперь можно закрыть вызвавшую оъект форму, он (объект) остается жить. Что, видимо, неправильно. можно настрогать сколько угодно «держащих себя за хвост» 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. Если в ссылки добавлено хоть что-то кроме 2-х неудаляемых (т.е. если содержимое семейства в процессе меняется), то все «госты» или "привидения" (автоподхватившиеся формы) исчезают. Жаль, это не действует на очистку самого аксеса. Не уверен, что явления ("автоподхвата" и зависания аксеса) общей природы, просто вспомнились старые мысли и попытки исследовать вопрос. Извиняюсь за длину выступления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 14:35:48 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
2 Michael Vasilev: Я всегда так пишу. Сравните: Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. Это одно и то же, но второе лаконичнее! Можно было бы и так: Код: plaintext 1. 2. 3. 4. но если f Is Null, то такие выражения не всегда корректно срабатывают. Кроме того, в последнем варианте всегда вызывается проверка f = 1, а она может быть и громоздкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 15:23:33 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
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. Хотя это скорее всего сила привычки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 17:36:30 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
Понятно, что If работает медленнее и все условия проверяет, Мне например непонятно. Насколько я знаю, как раз IF работает быстрее всего. А условия лишние мешают - так запихни их в If ... Then ... ElseIf ... Then ... ElseIf ... Then ... Else ... End If ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 17:45:43 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
To Лох Что Select Case работает в некоторых случаях быстрее IF знаю довольно давно и не помню уже источник. Просто принял как данность. Вот еще выдержка из хелпа Access 97: Инструкция Select Case может служить альтернативой инструкции ElseIf в If...Then...Else при оценке одного выражения, которое имеет несколько возможных значений. В то время как If...Then...Else для каждой инструкции ElseIf оценивает разные выражения, инструкция Select Case оценивает выражение только один раз, в начале управляющей структуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 17:53:48 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
2 Michael Vasilev: Если просто Case a=1, a=3 (собственно, и в моем примере с кнопкой так), то действительно можно обойтись без Select Case True и не выеживаться. Прикол начинается там, где не все условия имеют вид a=. Например, если первое условие IsNull(a). Тогда уже Select Case a не получится. 2 Лох: ElseIf плох, когда в двух ветках надо написать одинаковые строки кода - см. мой пост от 12:23, особенно его последний абзац. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 17:59:44 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
> инструкция Select Case оценивает выражение только один раз, в начале управляющей структуры Это как раз для меня не имеет значения, потому что у меня это выражение константа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 18:01:30 |
|
||
|
По какой причине Аксесс может не закрываться?
|
|||
|---|---|---|---|
|
#18+
Программирование тем и хорошо, я думаю, что есть много вариантов исполнения и думаю нет единственно верного и лучшего вариантаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2003, 18:07:03 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32170426&tid=1670014]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 202ms |
| total: | 359ms |

| 0 / 0 |
