powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Корректировка накладной
25 сообщений из 48, страница 1 из 2
Корректировка накладной
    #32349222
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В программе выполняются простые действия:
- открытие выбранной накладной
- изменение значений в этой накладной
- запись сделанных изменений или отмена корректировки

В MDB проекте это реализовано у меня так:
- вставка записей для выбранной накладной в промежуточную таблицу из основной таблицы
- корректировка значений в форме, у которой источником записей является промежуточная таблица.
- при нажатии Ок делаем запись значений, а именно удаляются ВСЕ строки выбранной накладной из основной таблицы и делается вставку строк из промежуточной.

Вопрос1: Надежен ли такой способ корректировки? Или следует сравнить каждую запись промежуточной и основной таблиц и на этом основании удалять, изменять или добавлять записи в основной таблице?

Вопрос2: Не могу понять, как это сделать в ADP проекте. Какой источник записей указывать для формы?
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349538
MixaCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грустно!! Товарищи!!!!!

Зачем же переписывать Access (да еще и сервер, похоже....)
На мой взгляд - это один из самых неудачных подходов к решению проблемы изменения записей.....

И сразу у меня возникает вопрос - что двигало разработчиком, что он пришел к такой схеме?!?! Почему нельзя обновлять запись прямо в таблице?!? Если медлено - то проблема не в таблице, а в руках....

Если без эмоций, то

1. - по надежности - ну как сказать... а если вдруг двое захотят корректировать - блокировки тоже ручками выставляешь!?!?

2. - а там оно и не нужно, при нормальном подходе.... - или конечно можно создавать temp таблицы, линковать их и пр..., но!!!!!
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349572
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот и я о том же.
с ума посходили
с этими временными таблицами.
любят лишнюю
работу делать
да на кнопки все вешать.
прям руки поотрывал.
насмотрелись как в 1С
делают и давай лепить
"отменить"
"записать"
"создать"
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349581
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
повесьте в adp
все на триггеры.
да спите себе спокойно.
кода -минимум.
удобства -максимум.
чо изобретать себе работу?
аксесс все это позволяет
делать гораздо
проще. вот и пользуйтесь
этими возможностями.
нет. вот и пишут километры
кода вот и пишут.
в mdb не было транзакций
на уровне таблицы.
вот и приходилось
все вешать накнопки.
в adp от этого можно
спокойно избавится
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349648
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Vitaly223:

Я так делал, способ вполне надежен.

Вариантов несколько, например:
1. Тот же самый отключенный рекордсет.
2. Временная таблица на сервере, общая для всех пользователей, с полем, которое позволит отличить записи разных клиентов.
3. Никаких удалений, только добавления. Т.е. создается копия редактируемой записи, старая помечается неиспользуемой.

Параллельные изменения в процессе редактирования ловятся по timestamp

Реально применял 2-ой способ, тестировал 3-ий.

2Противники кнопки "Отмена": расскажите, чем уж она так вредна?
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349695
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixaCh, как в вашем варианте происходит откат изменений? К примеру, есть 2 таблицы Накладные (ID_Nacl(PK)) и "строки_накладных" (ID_String(PK),ID_NACL(FK),ID_Tovar(FK),Kolich). Источник данных табличной формы - запрос на базе второй таблицы. Пользователь изменил количества (KOLICH) в 5 строках, а потом передумал. Как в этом случае отменить изменения?
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349702
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблемка есть у аксеса при использовании временных таблиц MSSQL - для того, чтобы форма на основе такой таблицы была редактируемой, необходимо наличие прав dbo для базы tempdb. Это для разминки.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349712
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИгорюМ
у меня юзвери
вставляют
по 700-1000 записей
как заказ.
потом говрят "ой"
надо бы отмениь вставку.
опять вставляют, опять
говорят "оЙ"
мне что же по-товему
все записи помечать?
у меня ьаза так раздуется
что караул закричишь
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349718
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
варану
"как в вашем варианте происходит откат изменений?"
если запись правится, то
она правится.
если накладная закрыта
то строки_накладных будут только
для чтения: меняеешь тип набоа
на форме.
проблему тоже мне нашел
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349785
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Pavel: "временная" - здесь это значит, что таблица имеет имя #... и находится в tmpdb. Это обычная таблица на сервере, которая используется для временного хранения изменяемых данных. Сорри за нечеткую формулировку.

2Хам трамвайный: что значит "помечать"? Ты про какой вариант, про 3-ий?

В любом случае, смысл в том, что каждый решает сам, использовать такой функционал или нет. И если он не подходит тебе, то это не значит, что не подходит всем.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349798
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хам трамвайный
Может мы о разных вещах говорим? Я про MDB и табличную форму с контролами, привязанными к источнику данных . Предположим, в форме идут строки:
Товар 1 10 шт
Товар 2 20 шт
Товар 3 15 шт
Пользователь корректирует количества.
Как только пользователь перейдет на другую запись, изменения тут же сохранятся в источнике данных. Например, пользователь исправил 20 на 100 и 15 на 300 , а потом решил оставить все, как было. Но изменения уже внесены в БД, как он узнает, что раньше-то было, он все уже переколбасил.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349824
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если он изменяет чтобы исправить , то если строка правильная - значит он её правил, если строка не правильная значит не исправил.

IMHO Mon$te®
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349876
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4D_Monster, это, конечно, глубокая философская мысль, но ведь речь идет не о том, как исправить единичную запись, а о том, как, исправив Группу записей, затем эти изменения отменить, т.е. вернуть в состояние, которое было до внесения изменений. Мне лично не понятно, как можно с помощью формы, напрямую привязанной к данным, реализовать это.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349881
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть...

1. создана накладная
2. в ней ошибка в позициях 5 - 10 количество товара меньше чем надо клиенту
3. манагер изменяет её в соответствии с необходимостью
4. если в соответствующей позиции теперь стои правильная цифра - ок, иначе исправляем строчку.

теперь или объясни зачем отменять эти изменения , или приведи другой пример

IMHO Mon$te®
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349888
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4d_monster
Я корректирую накладную задним числом, открываю, начинаю исправлять, почти все исправил, и тут замечаю, что исправил не ту накладую, надо все вернуть назад.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349988
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я корректирую накладную задним числом, открываю, начинаю исправлять, почти все исправил, и тут замечаю, что исправил не ту накладую, надо все вернуть назад

Уволить!
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349994
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из моей практики: использование временных таблиц восходит к временам Dos'овских клипперов парадохксов и иже с ними, когда сбой (пропадание питания, зависание и т.д) напрочь рушило редактируемую таблицу. Использование временоой таблицы позволяло частично обойти эту проблему. Со временем некоторые начали находить в этом преимущества, а точнее вколотили себе в голову штамп, что так и нужно делать всегда.
По варианту решения без использования временной таблицы - мы же с СУБД работаем, а стало быть обязаны дружить с математикой, следовательно мыслить логически гибко.
Кто мешает реализовать undo, причем с неограгиченной вложенностью? К примеру при редактировании записи на самом деле не редактировать текущую, а создавать новую и присваивать ей атрибут актуальности, фиксируя дату\время корректировки и ссылку на исходную запись. Теперь undo будет сводится к простой смене признака актуальности у записи. Если кто-то приведет аргумент, что не хочет 1000 раз давить на кнопку undo, то я удивлюсь еще больше и предлоджу прописать довольно простой алгоритм групповой отмены до какого-то chekpoint'а. Кстати, а если работник исправил 10 'не тех' накладных по 1000 позиций в каждой? В предложенном мной варианте откат вполне реализуем, а в варианте с временными (на сакмом деле промежуточными) - нет.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350067
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Драсте...
Просто обожаю, когда вижу на НЕ софтверных фирмах диктат программистов!
"Да мне на$рать, что накладные править надо, и что 700-800 позиций перенабирать заново придется, и что оператор должен трижды перепроверять каждое выполняемое действие, т.к. отсутствует возможность отката или редактирования. Мне вообще на$рать на эффективность работы НЕ софтверной фирмы в целом, лишь бы база не "пухла"..." :)
Мой респект программерам, сумевшим поставить себя именно таким образом.
...ну и соболезнования фирмам, нанявшим таких максималистов от IT.
//не вытерпел
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350111
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуф-нуфДа мне на$рать ... что оператор должен трижды перепроверять каждое выполняемое действие
Достаточно _одного_ раза, ей-богу! Это нам приходится по 10 раз перепроверять, потому что оператору показалось(!), что что-то считается неправильно

нуф-нуфотсутствует возможность отката или редактирования
Во-первых, "откат" <> "редактирование". Во-вторых, откат вполне возможен и в такой схеме. Вот только что-то никто не просит пока...

нуф-нуфМой респект программерам, сумевшим поставить себя именно таким образом
Спасибо ;-)
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350123
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PavelКто мешает реализовать undo, причем с неограгиченной вложенностью? К примеру при редактировании записи на самом деле не редактировать текущую, а создавать новую и присваивать ей атрибут актуальности, фиксируя дату\время корректировки и ссылку на исходную запись. Теперь undo будет сводится к простой смене признака актуальности у записи.

Вчера, 17:40 - способ №3. ;)

Ведь вопрос заключался не во временных таблицах, а в реализации отката и использование промежуточной таблицы - это один из способов, причем, на мой взгляд, не самый плохой.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350173
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 IgorM
Да я ни в коем случае не претендую на авторство...
Кстати, Undo <> Cancel> как справедливо заметил AlexJuice.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350201
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Достаточно _одного_ раза, ей-богу!
Одного раза не достаточно, ибо изменить то, что он (оператор) ввел - нет никакой возможности! Ведь база будет пухнуть...

>отсутствует возможность отката ИЛИ редактирования
ИЛИ подразумевает, что "откат" <> "редактирование". Срочно перепешите ваше "Во-первых".
По поводу "Во-вторых" - если вы заметили, то никакой конкретной схемы реализации или не_реализации я не коснулся, поэтому ваше "...и в такой схеме" для меня загадка. Срочно перепишите "Во-вторых" :)

>Спасибо ;-)
Пожалста /культурный типа :)

Просто работал на одной фирме не программером не сумел объяснить программеру, что фирме нужно название товара в нескольких вариантах. Он ни в какую, мол база пухнуть будет, реляционая избыточность и т.п. :) Пришлось от него избавиться
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350212
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за дельные советы. Я попытаюсь прояснить мою проблему.

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

IMHO Mon$te®
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350258
Tsaryov S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Vitaly223
Попробуйте использовать встроенный механизм транзакций Access
wrkDefault.begintrans
...
If MsgBox("Save all changes?", vbYesNo) = vbYes Then
wrkDefault.CommitTrans
Else
wrkDefault.Rollback
End If

А вообще для серьезных приложений пора переходить на SQL
...
Рейтинг: 0 / 0
25 сообщений из 48, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Корректировка накладной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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