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

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

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

Так вот, проблема в том, как "отловить" событие вставки из буфера (Ctrl+V, Shift+Ins, из панели и меню).
...
Рейтинг: 0 / 0
16.04.2004, 18:40
    #32484987
Geo
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
16.04.2004, 18:59
    #32485010
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить вставку записи в ленточной форме?
Это каким образом можно счетчику дать значение True?
...
Рейтинг: 0 / 0
16.04.2004, 19:01
    #32485014
Roma R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить вставку записи в ленточной форме?
Geo

Пока возникло 3 проблемы
1. В таблице уже есть поле счетчик и оно ключевое
2. Не получается вставить в поле счетчик произвольное значение
3. Значение из невидимого поля не заносится в буфер обмена
...
Рейтинг: 0 / 0
16.04.2004, 19:20
    #32485040
Geo
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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как запретить вставку записи в ленточной форме? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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