powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
55 сообщений из 55, показаны все 3 страниц
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218512
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Постараюсь кратко свои впечатления выразить - для ясности :-)

Есть форма ПОИСКФИРМЫ - где один комбобокс в котором я фирму выбираю. После выбора открывается форма ФИРМА (посредством фильтра по CompanyID) - главная, в которую встроена Табличная подформа СОТРУДНИКИ.
Подчиненность организована по полю CompanyID
Если форма ФИРМА уже открыта, то изменение в комбобоксе поисковой формы ПОИСКФИРМЫ приводит к выводу карточки новой фирмы и, соответственно, в подчиненной форме СОТРУДНИКИ вижу уже ее сотрудников.

В подчиненной форме СОТРУДНИКИ я мудрую с событиями Current и Delete. Но все работает правильно до тех пор, пока я в одном из событий не ставлю вызов DoCmd (причем не обязательно для загрузки какой-то формы, а например делаю DoCmd.SelectObject и DoCmd.Restore уже загруженной формы.

Результат:
Подчиненная СОТРУДНИКИ теряет связь с главной ФИРМА, т.е. если в ПОИСКФИРМЫ меняю в комбобоксе значение, то подчиненная СОТРУДНИКИ НЕ ОБНОВЛЯЕТСЯ.

Вопрос: кто-нибудь с эти сталкивался?

ЗЫ: база mdb-2000
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218527
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык и плюнь на эту дцмду. Других слов мало что ли.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218532
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так хотелось бы в форму какую-нить войти и выйти
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218533
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто мешает?
SetFocus вроде никто не отменял.

Хотя не мешало бы разобраться что за фигня происходит.
Я такого не наблюдал.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218541
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не правильно выразился. Входить в форму не надо, достаточно сделать Restore и поменять значение контрола
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218553
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Forms!Form1.Requery?
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218560
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сейчас моделирую на простой базе эффект. Получится - предъявлю общественности.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218619
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, кто может этот глюк лицезреть на выходных? готов послать письмо с примером 363кь
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218668
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лифчик, скинь мне... У меня что-то такое же было, но не помню чем вылечил... Дайка повспоминаю юность :)
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218690
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Послал...
В подчиненной попробуй удалить запись и потом посмотри, как обновляется главная
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218699
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может еще кто захочет полюбоваться - тогда здесь возьмите
http://sashalev.narod.ru/Test.zip
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218728
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лифчик, у меня всё нормально... По топику...
Делаю:
1. Выбираю "компанию", при этом открывается форма со списком сотрудников;
2. Удаляю сотрудника (выделяю запись и Del, если что;)
3. Открывается "мигальное" окошко;
4. Закрываю или не закрываю мигальное окошко, меняю компанию - результат один - всё работает! Сотрудники меняются как и положено...
Кстати, в подчиненной форме ты используешь события ДоПодтвержденияУдалени и ПослеПодтвержденияУдаления, так вот сначала они у меня не вызывались (соответствующая настройка Акса об подтверждениях была отключена) - все работало. Включил подтверждение - все работает... На счет того, что данные события могут и не происходить - держи в голове на всякий случай...
Т.е. ничё у меня не "отваливается"...
Чё я не так делал?

Но зато... Зато:
1. Удавил бы тебя за "Лисицына" в списке сотрудников! //личное...
2. Да у тебя базка то - порушенная! Ладно ссылки у меня отвалились... Да и фиг с ними - просто не стал компилить и все... А вот при попытке открыть модули класса и форму "Свитчбоард" Акс орет, что открываемый объект не найден ядром БД и предлогает мне проверить существование открываемого (!) мной объекта и правильность пути к нему... Типа, путь к форме в окне БД :) Хотя после матов всё же открывает...
3. Я сообщение второй раз набираю, ибо во время первого базку оставил в откытом виде с работающими формами и... система накрылась! Даже три заветные кнопки не привели винду хоть к каким-нить телодвижениям...
Вот такие у меня пироги...
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218737
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нуф-Нуф: ну недочистил я базу - она же большая была и Switchboard в ней был. Но вот я все вычистил по максимуму, даже картинку поставил не мигающую. Вот что происходит - если DoCmd в событии Form_Delete запускается, то при попытке удалить нелюбимую Лисицину предупреждение об удалении НЕ выдается, из формы человек удаляется, а из базы - нет. Соответственно, дальше у меня работает неправильно, т.е. подчиненная отваливается, а после перезагрузки формы Companies Лисицина остается на своем месте.
А ВОТ ЕСЛИ я DoCmd комментирую, то все работает правильно.

Да, я не дорассказал, что база А-2000, а офис-то ХР, а дома (откуда я сейчас 2-ой вариант 57кб выкладываю) еще и русский. Но и дома и на работе у меня одна и таже история.

Вот новый упрощенный вариант:
http://sashalev.narod.ru/NewTest.zip

У меня такие пироги...
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218885
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну что, неужели только в моих хозяйствах глюк:(57кб база)?http://sashalev.narod.ru/NewTest.zip

Как дальше жить? М.б. застрелиться? Ведь даже в субботу нет мне покоя!
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218892
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лифчик, привет! У меня результат тот же - все нормально работает...
Поудалял всех нафик и по очереди и пачками, закрвал окошки и не закрывал, менял компанию или не менял, вообщем изголялся как мог - все ОК!
Но тока ты расстраивайся по энтому поводу! Мне вот например хуже от этой ситуации. Представь, я делаю то же самое, что сделал ты, тестирую у себя - все ОК, продаю :) тебе и вдруг такая лажа... А у тебя есть шанс либо разобраться с глюком, либо выбрать другую технологию реализации... Вообщем, воркэраунд...
Кстати, может быть действительно дело в ХР? У меня родненький (для формата твоей БД) офис - 2000 с "патчами".
В свете выше сказанного я с топика сруливаю, ибо быть полезным не могу, но буду следить за результатами твоих исследований - найдешь решение - скажешь ведь?
Удачи в онном!
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218893
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с смысле:
Но тока ты НЕ расстраивайся по этому поводу (далее по тексту :)
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218894
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кажется, пора приглашать психолога (психиатр, надеюсь, не понадобится)...

Стреляться не надо. Надо остаться в живых хотя бы из любопытства, чтобы увидеть, что будет дальше.

Насчет субботы - можно принять иудаизм, тогда всю субботу можно будет молиться и о работе не думать.

Теперь по сути вопроса. Бывает ли такое у людей? - нет, не бывает. Компьютерные заболевания людям не передаются. Животным - иногда да, но тоже редко.

И наконец. Я завтра на работе скачаю этот зип, и если база откроется в моем 2000, то попробую сказать что-нибудь умное (в отличие от того, что сказал в этом посте).
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218895
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
В свете высказывания Нуфа позволю себе изобразить проблеск надежды. Весьма может оказаться, что у тебя оно не работает, а у клиента будет работать. И тогда можно об этой проблеме забыть.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218896
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бесконечно благодарен Нуф-Нуфу за его уже убитое на меня время и Санычу за возможно убитое воскресенье Ж-)...Всеж-таки аксесс форум выполняет также функцию коллективного организатора, вдохновителя, вправляльщика мозгов и, кстати, психотерапеута, поэтому суицид не состоится пока, да и патронов нет. Будем мучаться дальше.
Кстати, на счет клиентов. Поскольку я делаю систему исключительно для внутреннего пользования своим подразделением, то здесь проблема только одна - обнаружить, в чем корень зла. Если причина определится(например - из-за офиса) - нет проблем: всем пятерым пользователям переустановим, сервис пак запустим и прочее. Обидно будет только, если я где-то лоханулся (Лох, извини, что твою отглагольную форму использовал:-)
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218899
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, данный топик в свете последних исследований, можно именовать так "Запуск DoCmd в событии Form_Delete подчиненной табличной формы приводит к некорректной работе базы (А-2000 офис ХР)"
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218902
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лифчик, слушай... Я хоть и попробовать ничего не могу в плане устранения глюка (так как самого глюка у меня не наблюдается), но в качестве тестовых вариантов могу предложить кое-что.

Первая тестовая доработка:
Попробуй в событии удаления после DoCmd выполнить "Cancel = False". Явное указание того, что отменять удаление не собираемся.

Второй тестовый воркэраунд:
В обработчике события удаления установи таймер формы на одну (или больше) мс. А уже на событие самого таймера повесь DoCmd с открытием мигальной формы. Вот. Таким образом ты сможешь проверить, действительно ли собака порылась в DoCmd, который расположен внутри обработчика Delete или дело не в этом.
То есть, ты как бы вообще в событии на удаление ничего подозрительного не делаешь.

Третий тестовый воркэраунд:
Не открывай мигальную форму через DoCmd. Просто открой ее заранее, а в событии удаления отображай ее (переводом фокуса, али если ты ее скрытой сделаешь, то Визибл=Тру), ну вообщем добейся чтобы она отображалась, но не через DoCmd. Это поможет прояснить ситуацию вообще с открытием (или вернее отображением) данной формы в процессе удаления записи.
По идее, здесь вообще никакой связи быть не может, но чем черт не шутит, тем мужик не перекрестится... Не... Чем мужик не перекрестится, тем черт не шутит... Не... Чем черт не перекрестится, тем... :) Вообщем! Попробуй просто на всякий случай...

Еще раз удачев!
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218906
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> черт не шутит, тем мужик не перекрестится...

В одной из старых передач КВН много лет назад было сказано: Гром не грянет, а свинья не съест. Нуф, тебе этот вариант пословицы должен быть близок. :^)
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218907
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как дальше жить? М.б. застрелиться? Ведь даже в субботу нет мне покоя!
Мужайся Лифчик
Наступит воскресенье, я скачаю твою базу и полью говном всех и вся
Если что - я не виноват

марос марос
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218912
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох>...и полью говном всех и вся ...
----
Лох, ты не представляешь, как я этого хочу! По-моему, есть даже извращение такое - подставляться в момент дефекации партнера, ловить струи (катушки, орешки) как манну небесную :-)))))
Кстати, про мороз - это ты расфантазировался, завтра на большей части опять 30. Или ты среди оленеводов распелся?:-))

Нуф-Нуф:
вот попробовал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Form_Load() 'В форме CompanySearch
DoCmd.OpenForm ("Progress")
Forms!Progress.Visible = False
End Sub

Private Sub Form_Delete(Cancel As Integer) 'в Persons1
If IsLoaded( "Progress" ) Then
Forms!Progress.Visible = True
End If
Cancel = False
End Sub


а также вариант с предварительной ручной загрузкой моргалки из окна базы, так что в Load только Visible=false остается. Не помогает. Вернее (что я раньше не замечал) - кривит Только с удалением первой записи (удаляет только из формы, но не из таблицы и не дает предупреждение). На попытку удаления второй записи Уже дает предупреждение, т.е. все ОК.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218914
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, не... Здесь я КВН не видел еще, а там где видел, так я там не свинья ж :) Очень даже хороший такой весь прям аж... //может фоту мелким планом выложить... не... чё народ пугать та

Лох, слюшай... А где ты стока того самого возьмешь, шобы на всё и на всех хватило? Даже подумать страшшшшшно

Лифчик... Первая запись, вторая запись... какая ему нахр разница? Хм... Слушай, ну попробуй вариант с таймером и задержку дай в пару-тройку секунд... Пусть удаление спокойно отработает, а уж затем по таймеру форму или открывай или визибль... //опять же... дополнительная информация в отлове жука может появится...
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218915
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нуф-Нуф: супер идея в том и состоит, что с первого раза я не даю человека удалять - за ним есть в связанных табличках переписка. Задумка в том, что во время первой попытки удаления я делаю Cancel=True и подсвечиваю строку (коряво это в табличной форме получается, но уж как есть). А затем при подсвеченной строке кандидата на исключение предлагаю пользователю тыркнуться в другую строчку и ловлю событие Current, чтобы переписать письма на другого сотрудника фирмы. И именно эту операцию сопровождает моргалка. Без нее все работает.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218916
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, конечно кординально решит проблему собственная моргалка на форме, но я -то хотел универсальную моргалку иметь для разных форм: мало ли где какие тонкие операции придется пользователю доверять. Шпаргалка моргающая была бы очень кстати
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218921
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>что с первого раза я не даю человека удалять

Лифчик... Пошел ка я спать... Нифига не могу понять, что же ты хочешь. Вернее могу (кажется), но не пойму зачем тогда вообще удалять запись (в контексте глюка, при котором у тебя ее удалить не получается, а у меня получается), если ты ее фактически удалять не хочешь (отменяешь удаление по кнопке Del, что я и тестировал)?

Т.е. давай по полочкам:
1. Пользователь выбирает запись и жмет Дел;
2. Ты отлавливаешь событие Delete и отменяешь удаление (Кэнсел=Тру). Но у меня то при тестировании оно совсем не тру, а очень даже фальш...;
3. Запускаешь моргалку с подсказкой и ждешь клика пользователя на другой записи;
4. ??? Я не понял, зачем я тестировал удаление записи? Удаление записи мы отменили, а затем когда оно стало возможным ты должен сам организовать удаление (на программном уровне)! Пользователь не должен опять возвращаться к удаляемой записи и удалять ее повторно, кажется... мне... вроде... При чём тогда тут не удаляющиеся записи при удалении?

Кстати, а если пользователь боится мышей и захочет выбрать "другого" пользователя через клавиатуру? Ну вот я грохаю Лисицыну в пользу Горовой, которая на пару позиций выше. Грохаю я лисицыну КЛАВИШЕЙ Дел, и коль скоро ручки у меня на клавиатуре, то я попытаюсь (даже не задумываясь, автоматом) передвинуть курсор с помощью клавиатуры, но не мыши, а ты отловив первое Куррент привесишь письма лисицыной тому, кто сразу перед ней, а не моей желанной Горовой... Понимаешь?

Я тебя покритикую дальше немного, ладно? А? Ну ладненько :)
Лисицына она хоть и стерва порядошная, но удалять ее ну никак нельзя. Онаж зарплату получала, че-та где-то еще там делала и если ты ее грохнишь, то у тебяж вся база накроется - зарплату получал неизвестно кто, че-та где-то там еще тоже делал кто неизвестно... Подход, имхо, не правильный...
Как бы я решал данную задачу. Можно? А?
1. Завел бы логическое поле "УстаревшиеДанные";
2. По событию Delete отменял бы онное, но устанавливал бы логическое поле в Тру;
3. В твоей мигалке вывел бы что мол надо закончить операцию, а во втором окошке мигалки (которое для этого и предназначено, думаю) написал бы что-нибудь типа: "Перед удалением сотрудника Лисицына выберите другого сотрудника, на которго будет свалено все то, что обещал свалить Лох Позорный. Текущий выбранный сотрудник: (Фамилия сотрудника, на котором стоит курсор в данный момент)." Ну кроме того в мигалке надо кнопку ОК, Отмена, да и еще саму мигалку сделать немодальной, но всегда "на поверхности", а здесь без винапи не обойтись...
Т.е. я имею сказать, что проще просто напросто помечать лисицыну как устаревшую, а юзеру вываливать (в отдельном окне даже) список сотрудников уже без лисицыной. Ну и ОК и Отмена конечно...

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

> саму мигалку сделать немодальной, но всегда "на поверхности", а здесь без винапи не обойтись...

Не нужен винапи, а просто
Modal = False
PopUp = True

Все остальное за мной.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218959
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Грустно, но у меня все работает, как в аптеке...
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218979
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Володь, на счет "Не нужен винапи"... Понимаешь, если описанными тобой средствами Акса сделать такое окошко, то оно перекрываться будет активным всплывающим окном.
Т.е. если основные формы в которых мы будем выбирать сотрудников тоже всплывающие (а Лифчик ведь делает универсальную всплывалку, так что надо предусмотреть и такой вариант), то при получении ей фокуса она перекроет нашу мигалку. А мигалка она на то и мигалка, чтобы пользователя раздражать постоянно! Ну чтобы не забыл чёнить прально сделать :)
Нашей мигалке нельзя быть модальной, но в тоже время нельзя и с экрана уходить, а здесь (на сколько я знаю) только винапи...
Тоже работает? Ну всё Лифчик, попал ты! Щаз еще лох придет с этим же, да еще и с тем чего наобещал... Бедный ты будешь :)
Кстати, Лифчик... В мне идея мигалки понравилась... Если ее еще и реализовать с непрямоугольной формой, да с прозрачными областями, да мигания ласковые (плавно появляющиеся и уходящие), то вообще бомба будет! Ты не против, если я (попозже) тоже эту весчь (идею) буду у себя прикручивать (там где просится)?
//вообще-то, если сделать второе окно с наглым (модальным) требованием выбрать нового сотрудника занимающегося письмами удаляемого (как в принципе сейчас и делаю), то мигалка не нужна вовсе, но мне понравилось в целом...
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218983
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Понял. Эскюзе муа. :^)
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218988
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Нуф-Нуф:
Опишу подробнее свои соображения, может оправдаюсь:-)
Дело в том, что весь этот наворот придуман для решения следующей задачи - обнаружены двойники людей и они подлежат удалению. Ну, обычное дело: из разных мест дважды был заведен один и тот же человек. И теперь две Лисицины существуют в базе, каждая со своей карточкой человека, телефонами, факсами, мэйлами, должностями и проч. лабуденью. Одного надо удалять. Но на них на обоих - подчиненные записи. И я знаю, что в моем случае - только ссылки в таблице электронной переписки, никаких более зарплат и проч. нет. Тогда, я предлагаю пользователю:
1. Стандартным аксессовским способом правой кнопкой пометить одну из Лисициных на удаление. Во время события Form_Delete я ставлю против удаляемого человека метку в невидимом поле, а само удаление отменяю (на нем же еще подчиненные записи), запускаю моргалку с предупреждением и предлагаю мышью указать на другую Лисицину (или вообще на другого человека)
2. После того, как пользователь тыркает мышью на другого чела, я спрашиваю подтверждение (действительно ли тот человек), если тот - перевожу переписку, если нет - ожидаю второй попытки.
3. Если пользователь подтверждает, что выбрал правильного человека - уже в событии Current удаляю первую запись (откуда пришел), т.к. письма уже перекинуты.

Так что повторно возвращаться к удаляемому человеку не приходится.

А переход по стрелке на другую запись я заблокирую для пользы пользователя - только мышью пусть выбирает.

Все это у меня работало, пока с моргающей формой не связался. Теперь вот ее не моргающей сделал, упростил до невозможности - не помогает. После Form_Delete НЕ генерится событие запрос подтверждения удаления, запись из формы удаляется, а из таблицы - нет. Причем на второй записи запрос подтверждения уже идет.

Нет, пожалуй застрелюсь. Хотя сначала надо теще на дачу хавчик отвезти, а то с голоду помре.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218992
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Мужик, тебе жизнь тещи дороже, чем собственная???
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218993
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нуф-нуф>Конечно делай как считаешь нужным! Потом расскажешь, чего получилось. Буду рад, что хоть идею сырую смог подкинуть
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218995
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч: поздравляю с МИЛЛЕНИУМОМ!(2000 сообщений)!
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218997
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такое дело Ж-)
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32218998
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
:^) Спасибо за поздравление, только поклянись, что останешься в живых.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219000
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все в руках Лоха теперь:-)))
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219032
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лифчик, понял зачем сие... Всё ОК...
На счет идеи спасибо, но я сейчас на другом этапе, поэтому вплотную данной идеей буду заниматься позже и, соответственно, позже дам знать о том, что получится. А пока идея ложится в папочку "Задачи 2-ой итерации" :)

А на счет реализации режима отображения формы таким образом, чтобы была постоянно "над всеми" другими, то только через ВинАПИ, что совсем не страшно :)
Ниже приведенный код просто копируешь в мигальную формочку (которую обязательно надо сделать "всплывающей") и наслаждаешься :) Если оно тебе конечно надо...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Declare Sub SetWindowPos Lib  "user32"  (ByVal hwnd As Long, _
  ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _
  ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Const HWND_TOP =  0         'самое верхнее в приложении
Const HWND_TOPMOST = -1   'самое верхнее в системе
Const HWND_NOTOPMOST = - 2  'отмена режима "самое верхнее"
Const SWP_NOSIZE = &H1    'не менять размер
Const SWP_NOMOVE = &H2    'не менять позицию
'Const SWP_?????? = &H?   'еще флаги, которые в данном случае не нужны

Private Sub Form_Load()
  SetWindowPos Me.hwnd, HWND_TOP,  0 ,  0 ,  0 ,  0 , _
    SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub

Кстати, формочку можно сделать "всегда верхней" как в пределах приложения, так и в пределах системы в целом. Разберешся сам...
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219033
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой... Забыл выкинуть два флага из вызова процедурки... Исправляюсь... И навожу красоту в расцветках кода :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Declare Sub SetWindowPos Lib  "user32"  (ByVal hwnd As Long, _
  ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _
  ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Const HWND_TOP =  0         'самое верхнее в приложении'
Const HWND_TOPMOST = - 1    'самое верхнее в системе'
Const HWND_NOTOPMOST = - 2  'отмена режима "самое верхнее"'
Const SWP_NOSIZE = &H1    'не менять размер'
Const SWP_NOMOVE = &H2    'не менять позицию'
'Const SWP_?????? = &H?   'еще флаги, которые в данном случае не нужны'

Private Sub Form_Load()
  SetWindowPos Me.hwnd, HWND_TOP,  0 ,  0 ,  0 ,  0 , _
    SWP_NOMOVE Or SWP_NOSIZE
End Sub
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219057
Alexanderik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополняю ...
Код: 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.
40.
41.
42.
43.
Option Compare Database
Option Explicit

Private Declare Sub SetWindowPos Lib  "user32"  (ByVal hwnd As Long, _
  ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _
  ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)

Public Declare Function SetWindowRgn Lib  "user32"  (ByVal hwnd As Long, ByVal Hrgn As Long, ByVal bRedraw As Boolean) As Long

Public Declare Function CreateRectRgn Lib  "gdi32"  (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Public Declare Function CombineRgn Lib  "gdi32"  (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long

Const HWND_TOP = - 1      
Const HWND_TOPMOST = - 1  
Const HWND_NOTOPMOST = - 2  
Const SWP_NOSIZE = &H1    
Const SWP_NOMOVE = &H2  
Public Const RGN_DIFF =  4 
Public Const RGN_OR =  2 

Public Sub RebuildWindowRgn(FormName As Form)
    Dim FullRgn As Long
    Dim Rgn As Long
    Dim CaptionHeight As Integer 
        CaptionHeight =  22 

    Dim Control As Control

With FormName 
      
       FullRgn = CreateRectRgn( 0 ,  0 , .WindowWidth, .WindowHeight)
    
  Rgn = CreateRectRgn(.WindowLeft, .WindowHeight, .WindowWidth, .WindowHeight)
End With

CombineRgn FullRgn, FullRgn, Rgn, RGN_DIFF

SetWindowRgn FormName.hwnd, FullRgn, True
SetWindowPos FormName.hwnd, HWND_TOP,  0 ,  0 ,  0 ,  0 , SWP_NOMOVE Or SWP_NOSIZE

End Sub



а в форме просто инициализируем

Код: plaintext
1.
2.
3.
4.
Private Sub Form_Load()

RebuildWindowRgn Me.Form
End Sub 
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219067
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexanderik, извини, но дополняешь чего? Че та я не пойму зачем с регионами заморочки прикручены...

На строке...
Rgn = CreateRectRgn(.WindowLeft, .WindowHeight, .WindowWidth, .WindowHeight)
...вываливается.

Да и...
Const HWND_TOP = -1
Const HWND_TOPMOST = -1
...как-то нелогично выглядит

Я не критикую! Я пытаюсь посмотреть что этот код делает, а ничего толком добиться от него не могу :(
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219070
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да и CaptionHeight нигде не используется...
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219074
Alexanderik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто код с рабочего проекта = поэтому не все успел подчистить.
Дополнение к этому выглядит как прозрачное окно которое висит поверх всех - вроде и модальное - но без BlockControl.

Код: plaintext
1.
Const HWND_TOP = - 1  
Const HWND_TOPMOST = - 1  

- не прав я тут - корректирую

Код: 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.
' SetWindowPos Flags
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOZORDER = &H4
Public Const SWP_NOREDRAW = &H8
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_FRAMECHANGED = &H20        '  The frame changed: send WM_NCCALCSIZE
Public Const SWP_SHOWWINDOW = &H40
Public Const SWP_HIDEWINDOW = &H80
Public Const SWP_NOCOPYBITS = &H100
Public Const SWP_NOOWNERZORDER = &H200      '  Don't do owner Z ordering

Public Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDER

' SetWindowPos() hwndInsertAfter values

Public Const HWND_TOP =  0 
Public Const HWND_BOTTOM =  1 
Public Const HWND_TOPMOST = - 1 
Public Const HWND_NOTOPMOST = - 2 

Public Const CWP_ALL =  0 
Public Const CWP_SKIPINVISIBLE =  1 
Public Const CWP_SKIPDISABLED =  2 
Public Const CWP_SKIPTRANSPARENT =  4 

Public Const RGN_DIFF =  4 
Public Const RGN_OR =  2 



>Да и CaptionHeight нигде не используется...

Первоначально = прозрачным был только топик ! остатки кода !
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219127
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приехал. Обменял у тещи колбасу на ягоды, теперь неделю можно свободой наслаждаться и Аксессом :-)
Ба, да тут куча полезного кода высветилась! Спасибо, все скопировал и использую по мере возможностей.
Но меня сейчас больше волнует не реализация мигалки или удаления, а вообще факт НЕглючности моего софта. В связи с этим еще раз даю ссылку
http://sashalev.narod.ru/NewTest.zip
и спрашиваю - может ли кто-то запустить в ХР-шном офисе и сказать - УДАЛЯЕТ ЛИ аксесс из подчиненной формы человека с первой попытки (как положено, т.е. с подтверждением об удалении) . У меня нормально удаляется только ВТОРОЙ человек, а запись с первым блокируется в таблице, а в форме удаляется БЕЗ подтверждения.

Буду глубоко признателен
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219173
nauvad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не читал, но я не согласен!
Мой опыт подсказывает, что в ситуациях, когда требуется подтверждение удаления (с удалением в связанных таблицах) и возможным откатом, наиболее простой схемой является байтовое поле УДЛ в таблице (вроде бита удаления в DBF табличках)
По событию формы Form_delete SQL запросом UPDATE выставляешь в выбранных записях УДЛ=1 (или другое, если режимов удаления несколько), и с Cansel=true выходишь из Form_delete. А в запросах на просмотр добавляешь where УДЛ=0.
Фактическое же удаление выполняешь в конце работы перед закрытием приложения или в начале при открытии базы. При этом можно использовать нудные Rollback и Commit для пущей корректности в плане целостности данных. И всегда можно вызвать формочку отката и убрать УДЛ=1 с драгоценной записи.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219204
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Лифчик
Скачал. Поглядел. Сижу чешу репу..
Access XP sp2, Win2000 sp2
Не удаляются записи вапсче. Т.е. из формы они удаляются (без предупреждения), в таблице блокируются и остаются. Как 1-я, так и все последующие. Связь главной с подчиненной теряется. Бред какой-то.
Попробовал избавиться от DoCmd.OpenForm в Form_Delete. Заменил на Set frm = New_Форма1. Форма1 любая, моргающая, не моргающая - пофигу мороз. Все работает. Как только делаешь frm.Visible - все перестает работать.
Буду думать...
Бред какой-то...

З.Ы. Лучше отходи от такого "интуитивно понятного" интерфейса. Пусть лучше человек выберет нормальным способом одну запись, вторую запись, нажмет кнопку. По нажатию на кнопку делаешь всю работу (перекидываешь связи) и удаляешь одну из записей. Всем будет проще и понятнее. Имхо.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219214
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох - ты спас мне жизнь! На своем борту нарисуй красную звезду - как символ спасенного!
В догонку - если DoCmd ОДИН раз сработало (причем, как ты правильно сказал - запись заблокировалась но из базы не удалилась и в этот момент потерялась синхронизация форм), ТО СО ВТОРОГО УДАЛЕНИЯ ВСЕ НАЧИНАЕТ РАБОТАТЬ ПРАВИЛЬНО И ФОРМЫ ОПЯТЬ СЦЕПЛЯЮТСЯ!!!

Нуф-Нуф> Спасибо за код - наслаждаюсь поверх расположенной формочкой. Вот если бы еще аксесс всегда работал как надо :-(
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219215
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лифчик, можешь упростить свой пример до безобразия
Табличная форма. На событии Form_Delete делаешь DoCmd.OpenForm "ЛюбаяФорма"
Записи перестают удаляться.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219216
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох - пардон, я забыл добавить, не знаю, какой вариант у тебя, но у себя в последних я поставил загрузку Progressbar на Form_Load CompanySearch, которую потом делаю видимой/невидимой. Поэтому - неправильно работает только ПЕРВОЕ удаление.
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219227
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соображение чайника: если DoCmd - элемент ядра Jet, то м.б. данный топик плавно перетекает в "Долго ли Jet поживет?"
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219230
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вариант по последней ссылке (только что скачал)
Загрузки ProgressBar'а там не обнаружил.
Записи не удаляются.
Никакие.
Таблица блокируется целиком (все записи). Форма (моя собственная, см. предложение по упрощению примера), висящая на таблице, не блокирует записи (в конструкторе блокировка записей = отсутствует).
Таблица блокируется даже на добавление новых записей . Я думал такое невозможно начиная с 97-го аксеса. Новую запись (по идее) можно добавить даже если все страницы с данными заблокированы (просто выделится новая страница). Возможно, дело в счетчике - для получения нового значения требуется заблокировать таблицу.

З.Ы. DoCmd - класс аксеса. К Jet'у отношения не имеет. Jet и так сдохнет. С такими то глюками. Я как X-Prod Join начальнику показал - он тут же закричал "На х%й Jet!"
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219388
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
М.б. у Большого Билла объяснений потребовать? Послать ему тестовую базу?Просто не знаю, как в таких случаях поступают. И неужели на такой лежащий на поверхности глюк еще никто из лицензированных пользователей не выходил?
...
Рейтинг: 0 / 0
Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
    #32219526
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Развитие темы.
Глюк происходит именно при показе формы (Visible = True или автоматом при DoCmd.OpenForm)
Поэтому у тебя и глючит только первое удаление - потом форма уже видима. Если же на Form_Delete сделать
Код: plaintext
mfrm.Visible = Not mfrm.Visible

то глючить будет через раз. Спрашивает - не спрашивает. То работает, то не работает. Прямо как милицейская мигалка.

Еще прикол.
Открываем форму. Пытаемся удалить запись. Вопросов не возникает, из формы запись исчезает, из таблицы - нет. Вспомогательная форма (прогресбар) открыта, больше глюков нет. Удаляем еще одну запись. На этот раз задается вопрос, как и должно быть. На вопрос отвечаем гордое "нет". Удаленная запись появляется обратно, а вместе с ней и первая запись
Кажись майкрософт что-то наглючил с транзакциями в аксесовском скрытом workspace'е

Ща буду пробовать в 97-м
...
Рейтинг: 0 / 0
55 сообщений из 55, показаны все 3 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Табличная подчиненная теряет связь с главной - бывает ли такое у людей?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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