Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проверка на наличие
 
 автор: joka   (15.06.2009 в 11:49)   личное сообщение
 
 

Разбирающиеся люди помогите пожалуйста. Сижу и никак не могу понять как же решить одну проблему.
Есть таблица сотрудников, в ней есть ФИО.
есть связная с этой таблицей форма форма.
необходимо реализовать проверку после ввода фио на форме (видимо используя Dlookup я думаю). И при наличии такого ФИО в таблице отменять сохранение и выводить оператору уведомление что "такой чувак уже есть, хотите продолжить сохранение или нет" и ну либо по "ОК" сохранить, либо отменить совсем....

не могу сообразить как правильно это реализовать на какеи события какие куски кода разместить...

  Ответить  
 
 автор: snipe   (15.06.2009 в 12:05)   личное сообщение
 
 

Не все так просто как кажется.......

Сколько примерно записей в таблице сотрудников?

  Ответить  
 
 автор: joka   (15.06.2009 в 12:10)   личное сообщение
 
 

я понимаю что не все так просто... поэтому и обратился, к Вам (людям с большим опытом)!
ну скажем до 1500...

а еще вижу проблему что например если тупо при наличии такоего ФИО обрубать сохранение, например используя в BeforUpdate Cancel = true и Me.Undo: Undo... я лишаюсь возможности сохранять изменение в уже существующих записях....

вообщем sos и хелп:)

  Ответить  
 
 автор: snipe   (15.06.2009 в 12:13)   личное сообщение
 
 

Закинь мне на Аську или на мыло свой адрес куда можно скинуть примерчик и пояснения по этому поводу......только у меня не люди а предприятия - одинаково приятно в данном случае

  Ответить  
 
 автор: joka   (15.06.2009 в 12:15)   личное сообщение
 
 

отправил личное сообщение

  Ответить  
 
 автор: Кабан   (15.06.2009 в 13:05)   личное сообщение
 
 

а уникальный индекс по полю ФИО?

  Ответить  
 
 автор: joka   (15.06.2009 в 13:31)   личное сообщение
 
 

а поподробнее можно? или где почитать?

  Ответить  
 
 автор: snipe   (15.06.2009 в 13:47)   личное сообщение
 
 

joka - я отправил файл и достаточно уже давно

  Ответить  
 
 автор: Denis V.   (15.06.2009 в 14:40)   личное сообщение
 
 

остальным тоже интересно! файл в студию! Пожалуйста :-)

  Ответить  
 
 автор: joka   (15.06.2009 в 14:46)   личное сообщение
 
 

вижу спасибо! щас почитаю разберусь если что спрошу! спасибо еще раз за помощь!

  Ответить  
 
 автор: joka   (15.06.2009 в 15:05)   личное сообщение
 
 

кто нибудь еще решал подобную задачу??? или все кто писал такие базы с ФИО, не заморачивались на проверки и защиты от повторов ФИО??? просто если два оператора, то такие повторы возникнуть могут с 90 % вероятностью :(:(

  Ответить  
 
 автор: Lukas   (15.06.2009 в 15:48)   личное сообщение
 
 

В нашей небольшой деревне (около 12000 человек) имеются 2 полных моих тезки. Итого нас трое, с одинаковыми Именами Отчествами и Фамилиями.
Что-ж нам теперь в одной базе "не жить"?

  Ответить  
 
 автор: joka   (15.06.2009 в 19:54)   личное сообщение
 
 


уведомление что "такой чувак уже есть, хотите продолжить сохранение или нет" и ну либо по "ОК" сохранить, либо отменить совсем....

  Ответить  
 
 автор: Lukas   (15.06.2009 в 20:52)   личное сообщение
 
 

Ну и как оператор примет решение?
Да есть такой "чувак". И что?
Это тот, которого он вводит или другой, или третий?
Одного ФИО для принятия решения оператору недостаточно.
Должны быть доступны для просмотра еще характеристики найденных в справочнике "чуваков", которые позволят однозначно идентифицировать "чувака".

  Ответить  
 
 автор: snipe   (16.06.2009 в 07:54)   личное сообщение
32 Кб.
 
 

Ох .....примером пока назвать трудно ...
Так фиксация идеи ..... по использованию функции нечеткого сравнения строк
там еще делать и делать......
(например блокировать доступ к таблице если она существует - одна из таблиц удаляется и создается постоянно и продолжить только после того как таблица будет удалена - это что бы юзеры не боданулись ).....
удалять эту временную таблицу перед закрытием тоже не реализовано.......
более того считаю что на больших базах будет тормозить - мне это не грозит т.к. базки маленькие

  Ответить  
 
 автор: snipe   (16.06.2009 в 08:02)   личное сообщение
32 Кб.
 
 

удалено

  Ответить  
 
 автор: joka   (16.06.2009 в 09:10)   личное сообщение
 
 

Должны быть доступны для просмотра еще характеристики найденных в справочнике "чуваков", которые позволят однозначно идентифицировать "чувака".


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

так что? только у snipe есть вариант? без дополнительных таблиц и форм, нет проще ничего? что то типа просто сказать такое уже есть, создать запись или отменить? не показывая похожие варианты? просто у меня например ФИО это три поля в таблице + дата, впринципе этого должно хватать чтобы различать людей...
по идее наверно должно хватать dlookup + какая нибудь переменная которая отслеживает идет редактирование существующей или создается новая...??? но это пока мысли не знаю как реализовывать!
p.s. да кстати у меня форма хоть и связная но сохраняется запись только при нажатии на кнопку сохранить:) так что весь код надо будет вешать на эту кнопку!

ладно если у кого еще есть решения.. пишите... А пока спасибо snipe за пример, буду разбираться!

  Ответить  
 
 автор: joka   (16.06.2009 в 10:59)   личное сообщение
 
 

Если кому интересно то в своем случае нашел способ боле простого решения которое меня устраивает.

алгоритм примерно такой. на кнопку "сохранить" вешаю код
if isnull(dlookup("[id]","people_tab","[фио]=' " & me.ПолеФИО & " ' ") then
saverec:
.....
далее само сохранение
.....
else
if msgbox(....тут информирование с предложением продолжить сохранение нажать ok или no)=vbOk then goto saverec
end if

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

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList