Проверка наличия записи, не знаю как?

SecretBob
Дата: 21.11.2006 15:03:02
Имеется главная форма, где вводится Специальность (например, бухучет), подчиненная форма Курс связана с главной.
Добавляю новый курс (текст, например, 3 курс). А в таблице уже есть для этой специальности запись, т.е. у бухучета есть 3 курс, если не делать проверку на наличие записи - 3 курс, то в таблицу добавится еще одна такая же запись - бухучет, 3 курс.
На подчиненной форме Курс, рядом с полем, где отображаются записи Курс, есть кнопка -- добавить курс, при нажатию на которой поле Курс очишается, и курсор стоит для ввода новой записи. Новая запись Курс добавляется с помощью макроса.
Как проверить наличие уже существующей записи? Т.е. на главной форме выбрана запись Специальность - бухучет, нажав на кнопку Добавить курс, я ввожу, например, 3 курс (а запись для специальности бухучет уже существует), должно появится сообщение, что такая запись существует, и поле Курс очищается для ввода нового курса...
Я новичок...В форуме читал про это, но применить к себе никак не удалось! Помогите!
proposed amendment
Дата: 21.11.2006 15:07:31
SecretBob
Как проверить наличие уже существующей записи?


в таблице сделать уникальный составной индекс не позволяющий вводить для одной специальности два одинаковых курса
rok
Дата: 21.11.2006 15:35:56
SecretBob
Как проверить наличие уже существующей записи?

Dlookup или Dcount
Это даст возможность вывести Ваше сообщение, а не стандартное сообщение Access которое пользователь далекий от компьютера вжисть не поймет и с упорством осла будет пытаться ввести недопустимую запись
BULK INSERT
Дата: 21.11.2006 15:39:47
rok
и с упорством осла будет пытаться ввести недопустимую запись


или переключится в режим отображения таблицы и спокойно эту запись введет, если не установлены ограничения на уровне таблиц

(как вариант - прилинкуется к таблицам, выполнит AppendQuery, выполнит UpdateQuery... n)
rok
Дата: 21.11.2006 16:04:37
BULK INSERT
rok
и с упорством осла будет пытаться ввести недопустимую запись


или переключится в режим отображения таблицы и спокойно эту запись введет, если не установлены ограничения на уровне таблиц


А на фига его пускать к таблицам? Но это уже другая история-самое простое скрыть окно БД для всех, кроме admina, защита от shift, защита БД и т.д
SecretBob
Дата: 22.11.2006 10:37:26
А как составной индекс делается?

Пример для DLookUp ожно привести?
toly_m
Дата: 22.11.2006 11:05:04
Сделать составной индекс - в таблице в режиме конструктора выделить мышкой сразу два столбца и нажать в меню на ключик.


dlookup("Поле","Таблица","Условие")
Поле, таблица - те, в которых ищется, условие - условия поиска

strKurs = dlookup("ПолеКурса","ТаблицаКурсов","ПолеКурса=" & me!ПолеКурса)
me!ПолеКурса - ссылка на поле формы, где вводится новый курс.

if len(strKurs)>0 then
msgbox "Такая запись существует!"
end if

Удачи!
SecretBob
Дата: 22.11.2006 14:06:44
Спасибо! Попробую...Нужно только после сообщения, что такая запись существует, очистить поле и передать управление опять для ввода нового значения! И еще...Этот код пишется в событии после обновления или другом?
toly_m
Дата: 22.11.2006 15:13:35
У вас база mdb? Если да, то быстрее можно решить вопрос, если ее выложите сюда (с усеченными данными, в заархивированном виде).
SecretBob
Дата: 22.11.2006 21:16:30
нет, проект adp