powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка при редактировании данных в форме
25 сообщений из 55, страница 2 из 3
Ошибка при редактировании данных в форме
    #32784045
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victosha (интересно - что же это такое - образование?)
Говорят, это то, что остается, когда то, чему учили, прочно забыто.
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32784120
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_Т Victosha (интересно - что же это такое - образование?)
Говорят, это то, что остается, когда то, чему учили, прочно забыто.

да уж...
Зрелище скорби...

Так что - "оно заработало"?
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32784599
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victosha Зрелище скорби...

Так что - "оно заработало"? Трудное детство, деревянные игрушки, скользкий подоконник...
Не получилось.
Уникальная таблица не распознается. "Unique Table is nonexistent or not completely specified".
Если строку rst.Properties("Unique Table") = "dbo.InvoicesComposition" опустить, то обычная ошибка "Row cannot be located for updating. Some values may have been changed since it was last read."
Про IRowset в этом варианте ничего не выскакивает, наверное, это надо считать за прогресс.
Я очень признательна за помощь. Нет у меня программистского образования, есть опыт работы на Access, на это я и нанималась. А приходится работать с SQL, без него никуда, и осваивать приходится на ходу, обеспечивая ежедневную работу базы.
Я так и не разобралась, как работает синхронизация. Задавала вопрос на форуме, как в конкретном случае задать строку синхронизации, мне никто не ответил. Десяток форм, источники которых хранимые процедуры, работают у меня так, разницы я не заметила.
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32784679
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
карандаш намусолил, язык высунул, -сидю, писю любовное письмо...




(с выражением лица)
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32784691
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, если писать
Код: plaintext
rst.Properties("Unique Table")=”InvoicesComposition”
а не
Код: plaintext
rst.Properties("Unique Table")=”[color=red]dbo.[/color]InvoicesComposition”
,
то ругани по поводу уникальной таблицы нет.
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32784718
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_ТВот, если писать
Код: plaintext
rst.Properties("Unique Table")=”InvoicesComposition”
а не
Код: plaintext
rst.Properties("Unique Table")=”[color=red]dbo.[/color]InvoicesComposition”
,
то ругани по поводу уникальной таблицы нет.
:))
вот-вот - пока я напишу у тебя все заработает...

ладно кладу частями..
1)

Предварительные замечания.
«Специалистом» в данном вопросе не являюсь. Рассказываю, что вспомнил, из того, чего не знал.

Совет давал, ковыряя в носу – сам не пробовал.
Про уникальную таблицу.
Возможно, имя уникальной таблицы надо задавать так
rst.Properties("Unique Table") = "InvoicesComposition", а dbo он сам добавит…
(У пользователя права на таблицу должны быть).

У самой таблицы должен быть определен первичный ключ. Как я понимаю – составленный из одного поля.
Про синхронизацию.
Явная потребность в синхронизации возникает как результат комбинации потребности в обновляемом рекордсете на запросе или хранимой процедуре, построенной на соединении таблиц. В предположении, что связь один ко многим, допустимо организовать рекордсет, в котором обновляемыми окажутся поля со стороны «многие». Для этого сначала
задается динамическое свойство рекордсета «Unique Table» (после его открытия).
Само свойство используется в первую очередь для того, чтобы АДО догадался, какое поле в этой таблице является первичным ключем. Явно и жестко задание этого свойства необходимо в случае, когда предполагается удаление строк на рекордсете.
Для Инсертов и апдейтов оно вспомогательное, и, теоретически, можно обойтись только
заданием значения для динамического свойства “Resync Command”
В этом свойстве указывается команда для АДО-рекордсета, которую он должен использовать для повторного считывания (единственного) экземпляра измененной или
добавленной записи из таблицы, которая объявлена как уникальная - сразу после изменения или добавления.
Используется свойство только на обновляемых рекордсетах, которые строятся на запросах или хранимых процедурах «с соединением таблиц». В зависимости от стиля открытия/задания строки команды sql для самого рекордсета и стиля задания команды синхронизации могут быть получены те или иные ошибки, связанные часть которых определяется ошибками в синтаксисе задания команд, а часть – несоответствиями в режимах доступа к серверу.

(продолжнение следует)
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32784726
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ларчик просто открывался, сорри, что полоскала тут всем мозги.
Можно было сразу вычислить, чем одно поле может отличаться от другого такого же.
На этой таблице сто лет висел триггер, наш админ верит в триггеры как единственно надежное средство поддержания целостности данных. Триггер на обновление Quantity писал в ту же строку, и год с лишним это никому не мешало. Ни во View конфликтов не было, ни в процедурах все поля не выводились.
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32784740
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:))
ура

значит, "продолжение" не последует...


(с выражением лица)
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32784817
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так я правильно поняла, что по-хорошему следует написать еще процедуру, достающую одну строку из InvoicesComposition по ее ключу RecordID? Я не понимаю, как можно в форму подвесить такую команду, ведь при обновлении рекордсета в процедуре нужное значение под рукой, а при работе в форме нужно задавать ссылку на элемент формы - а мне это не удавалось, в начале лета попробовала и бросила. Спасибо за лекцию, начинает что-то связываться, попробую еще раз.
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32785146
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуйста, последний рывок!

rst.Properties("Resync Command") = " exec InvoicesCompositionSyncP RecordID"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ALTER                     PROCEDURE InvoicesCompositionSyncP
  @RecordID int
AS 
-- отбирает строку накладной для синхронизации формы

BEGIN
SELECT     OperationID, OperationID_Old, DepartmentID, InvoiceTypeID, WithOperationID, 
*****Все поля, что нужны****
, RecordID
FROM dbo.InvoicesComposition 
INNER JOIN dbo.BooksCatalog WITH (NOLOCK) 
ON dbo.BooksCatalog.EditionID = dbo.InvoicesComposition.EditionID 
WHERE dbo.InvoicesComposition.RecordID = @RecordID 

END
И на
rst.Resync adAffectCurrent
Получаем сообщение
Error converting datatype nvarchar to int.
То есть очевидно вместо значения me.RecordID в аргумент попадает "RecordID".
Подскажите, пожалуйста, правильный синтаксис!
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32785186
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точно не помню, что-то типа

rst.Properties("Resync Command") ="{CALL InvoicesCompositionSyncP(?)}"
вечером гляну в шпаргалку.

(В хелпе на АДО были примеры)


(с выражением лица)
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32785201
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очевидно, это изврат, засылать Resync на OnCurrent, но оно работает.
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32785205
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, ни шиша не работает, при попытке работать со столбцами заполняет все строки одним айтемом.
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32785229
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
руками ресинк вызывать не надо (без специальной потребности). Тем более на форме.
Он должен "сама" работать...
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32785240
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу найти, как в форме задать ключевой параметр.
В рекордсете все шоколадно.
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32785256
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, спасибо, нашла.
rst.Properties("Resync Command") = "exec InvoicesCompositionSyncP ?"
Мне про это отвечали давно, только тогда я не поняла, о чем речь, при чем тут "?".
Теперь все получилось.
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32785383
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_ТСорри, ни шиша не работает, при попытке работать со столбцами заполняет все строки одним айтемом.


rs.Properties("Resync Command") = " exec InvoicesCompositionP 49748, 1, 52"
Debug.Print rst!EditionID & " " & rst!Quantity
rst.MoveNext
Debug.Print rst!EditionID & " " & rst!Quantity
rst!Quantity = rst!Quantity + 5
rst.Update
rs.Resync adAffectCurrent было ведь



ежели хорошенько обработать для наглядности то можно демонстрировать
"как вариант редактирования нередактируемого" (с уточнением - редактирование не всех полей, критерий я пока не понял, времени не було. )
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32785599
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и запары у вас... редактировать нередактируемые...

А разве это так уж сложно? (не подумайте чего... я об адп)
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32785815
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА разве это так уж сложно?


а ты пробовал?
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32785829
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяа ты пробовал?

Кхм... да постоянно с этим приходится дело иметь... не хотелось бы, да приходится
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32786095
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор... да постоянно с этим приходится дело иметь...

дак опиши вариант как ты выкручиваешься

желательно в таком виде чтоб можно было показать для повторения

вопрос появляется часто..
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32786132
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадя, если ты читал тему, основная задача - заставить работать форму, а в процедуре я просто ловила баги рекордсета.
adp - конечно, стоило бы, но проблема в том, что show mast go on.
Любая работа имеет свою стоимость, и масштабная переделка базы под проект означает остановку текущей работы. За это можно браться только тогда, когдя я пойму, что пары выходных или рождествеских каникул мне хватит. Иначе это может обойтись слишком дорого. Ясно, что сбои гарантированы.
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32786142
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_Тмасштабная переделка базы под проект означает остановку текущей работы. За это можно браться только тогда, когдя я пойму, что пары выходных или рождествеских каникул мне хватит.
Это значит - никогда
Причем чем дольше текущий проект развивается в формате mdb - тем более категоричным становится "никогда"
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32786286
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 я полностью согласен с ЛП (в очередной раз... хи-хи)
2 тему я понял. просто решение конкретного вопроса частным образом позволит show mast go on, вопрос о редактировании... очень актуален для всех. и если коллективными усилиями удастся создать правило для его решения позволит и тебе пары выходных или рождествеских каникул мне хватит
...
Рейтинг: 0 / 0
Ошибка при редактировании данных в форме
    #32786354
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадядак опиши вариант как ты выкручиваешься

желательно в таком виде чтоб можно было показать для повторения

вопрос появляется часто..

можно сделать поля свободными, а можно указать unique table (однозначная таблица)

unique table работает только для невычисляемых полей. Вот их можно свободными забацать. А на событии ПослеОбновления Выполнять необходимый апдейт соответствующих записей из таблицы (таблиц).
Сложнее с ленточной формой. Там со свободными полями не получится.
В ленточной форме я обычно выкручиваюсь таким макаром: Чаще всего бывает, что в ленточной форме, для минимизации и конкретизации используются запросы, представляющие данные из таблицы (таблиц) в компактном виде. Вычисляемые поля не редактируются. Есть мысль, что можно поизвращаться с событиями, но мне этого не требовалось пока.

Я для редактирования (если полей в таблице гораздо больше, чем возможно разместить в ленту) создавал простую форму, где собирал все поля из исходного набора (обычно это целиком или почти целиком таблица (лучше view из таблицы)) А внешние ключи - комбобоксы с источниками из связанных таблиц. Там редко когда приходилось пользоваться свободными полями. И в основном только для отображения они нужны были.
По результатам обновления - ресинк ленточной (текущей записи) или откат и не ресинк, если пользователь отменил изменения. Да, чтоб пользователя не смущать, убираю кнопки перехода по записям с этой формы.

Вышеуказанное работает при нормальной структуре БД. Когда отношения между таблицей, что на форме к справочным - многие к 1

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


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