powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как запретить вставку записи в ленточной форме?
14 сообщений из 14, страница 1 из 1
Как запретить вставку записи в ленточной форме?
    #32484265
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ленточная форма. Пользователь копирует запись в буфер.
Как сделать так, чтобы пользователь мог вставить запись из буфера в новую, но не мог вставить вместо уже имеющихся?
Заранее благодарен
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32484285
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может так:
AllowAdditions = True
AllowEdits = False
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32484305
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kelme

Запретить нужно вставку целой записи, возможность же редактирования отдельных полей необходимо оставить
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32484310
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
AllowDeletions = False
- как раз запретит стирание существующих записей.
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32484312
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Событие Form_Dirty:
Код: plaintext
1.
2.
3.
If not isnull(me!MyField) then
msgbox  "Изменение записи запрещено" 
me.undo
end if
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32484324
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для защиты имеющихся хорошо бы использовать механизм защиты на уровне схемы данных
раз такая необходимость есть :
делаешь доп табличку для которой запись которую нельзя изменить является внешним ключем по полю которое нельзя менять

и фиг ты изменишь такую запись хоть из формы хоть из таблицы
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32484347
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что записи можно редактировать, удалять, добавлять без ограничений. Единственное, что нужно, это лишить пользователей возможности вставить из буфера обмена запись целиком вместо уже имеющейся записи.
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32484354
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Если можно удалять и можно добавлять, то почему нельзя заменять?
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32484355
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Противоречивые условия.
авторможно редактировать, удалять, добавлять без ограничений
и
авторлишить пользователей возможности вставить из буфера обмена запись целиком .
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32484518
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему нельзя заменять?
Потому, что ести люди, мягко говоря с кривыми руками, которые таким образом копируют записи в буфер и вставляют их поверх уже имеющихся, а потом предъявляют претензии "Вот программа глючит" и доказать им что-то практически невозможно. Поэтому хотелось бы лишить их такой возможности (вставки именно поверх существующей записи).

Так вот, проблема в том, как "отловить" событие вставки из буфера (Ctrl+V, Shift+Ins, из панели и меню).
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32484987
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать так (это для мдб):

1. В таблице делаем поле-счетчик, не ключевое
2. Создаем это поле на форме, делаем его невидимым, ставим ему значение по умолчанию, например, True.
2. В Form_beforeUpdate пишем:
Код: plaintext
1.
2.
3.
4.
5.
if not me.newrecord then
  if me.ПолеПС1<>me.ПолеПС1.oldValue then
    msgbox  "Запись была вставлена из буфера поверх старой" 
  endif
endif
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32485010
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Это каким образом можно счетчику дать значение True?
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32485014
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geo

Пока возникло 3 проблемы
1. В таблице уже есть поле счетчик и оно ключевое
2. Не получается вставить в поле счетчик произвольное значение
3. Значение из невидимого поля не заносится в буфер обмена
...
Рейтинг: 0 / 0
Как запретить вставку записи в ленточной форме?
    #32485040
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ВС
Это я пошутил. О другом думал, звиняйте.

2РомаР
> 1. В таблице уже есть поле счетчик и оно ключевое

В принципе можно и без счетчика. Нам важно, чтобы у каждой записи было уникальное (более-менее) значение. Т.е. примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
if not me.newrecord then
  if me.ПолеПС1<>me.ПолеПС1.oldValue then
    msgbox  "Запись была вставлена из буфера поверх старой" 
  endif
else
  me.ПолеПС1 = clng(rnd* 1000000 )
endif


> 3. Значение из невидимого поля не заносится в буфер обмена

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


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