|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.11.2009, 02:02 | #1 |
Регистрация: 14.11.2009
Сообщений: 5
|
Помогите написать процедуру
Помогите, плиз, у меня есть таблица Сотрудники (КодСотрудника, ФИО, Должность), форма Сотрудники(с кнопками Открыть, Создать, Закрыть), форма ПодчиненнаяСотрудники (КодСотрудника, ФИО, Должность). При нажатии кнопки Создать, открывается другая форма СведенияОСотруднике и заполняются поля-ФИО, Должность. Так вот как сделать, чтобы при нажатии кнопки ОК на форме СведенияОСотруднике не добавлялся сотрудник, данные которого уже имеются. Пишу на VBA
Рrivate Sub ОК_Click() If Not IsNull(Me!КодСотрудника) And (IsNull(Me!ФИО) Or Me!ФИО = "") Then MsgBox "Введите ФИО Сотрудника!", vbOKOnly + vbExclamation Else If ("Сотрудники.ФИО " LIKE “& Me!ФИО”) Then ‘--не работает MsgBox "ФИО Сотрудника уже существует!", vbOKOnly + vbExclamation Else Forms!Сотрудники!ПодчиненнаяСотрудн ики.Form.Requery DoCmd.Close acForm, "СведенияОСотруднике" End If End If End Sub |
14.11.2009, 08:54 | #2 |
Форумчанин
Регистрация: 26.04.2008
Сообщений: 487
|
Прежде чем исправлять Ваш код, попробуйте ответить сами себе на несколько вопросов (для понимания сути):
- У Вас должности сотрудников - константа, как дата рождения? Иными словами, разве сотрудник, принятый на определенную должность, не может быть переведен на другую? (подозреваю, что нужно вернуться к продумыванию структуры бд)... - Попытайтесь объяснить себе смысл этого выражения. "На всякий случай" налепили? - И не будет работать.. Вы где ищете? |
17.11.2009, 15:36 | #3 |
Пользователь
Регистрация: 22.09.2009
Сообщений: 20
|
ehoolu, может быть, просто нужно в таблице данных о сотрудниках , добавить новое ключевое поле, обязательное к заполнению , к примеру , ИНН , а на форме СведенияОСотруднике выделить такое поле для заполнения 1-м :-)) (Ну чтоб наверняка не пропустить) при заведении нового клиента .
ИНН- 10 числовых символов, 2-х одинаковых гарантировано нет. Я так и сделал у себя . Нужен пример ,обращайтесь.
Стучите господа , и вам откроют.
С уважением Александр. |
18.11.2009, 21:07 | #4 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте ehoolu.
проверить существование записи строкой If ("Сотрудники.ФИО " LIKE “& Me!ФИО”) Then ‘--не работает нельзя, возможно поможет следующая доработка: замените строку которая "не работает" подобной строкой If bRecExists(Me, "ФИО", Me!ФИО & "”) Then '(текущую форму Me заменить на форму данные которой обрабатываются) и разместите в проекте функцию: Код:
Евгений. |
20.11.2009, 06:58 | #5 |
Регистрация: 14.11.2009
Сообщений: 5
|
Спасибо всем, у меня уже все получилось. Сдела так : в форме "СведениеОСоттруднике" на поле ФИО повесила процедуру :
Private Sub ФИО_BeforeUpdate(Cancel As Integer) If Not IsNull(DLookup("ФИО", "Сотрудники", "ФИО=""" & ФИО & """")) Then Cancel = 1 MsgBox "Такой Сотрудник уже существует!", vbOKOnly + vbExclamation DoCmd.Close acForm, "СведенияОСотруднике" End If End Sub А для кнопки "Добавить"(на той же форме) процедуру: Private Sub ОК_Click() If IsNull(Me!КодСотрудника) And (IsNull(Me!ФИО) Or Me!ФИО = "") Then MsgBox "Введите ФИО Сотрудника!", vbOKOnly + vbExclamation Else Forms!Сотрудники!ПодчиненнаяСотрудн ики.Form.Requery End If DoCmd.Close acForm, "СведенияОСотруднике" End Sub |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите написать процедуру на delphi для работы со звуком | smalsvoloch | Помощь студентам | 2 | 14.10.2009 21:48 |
Помогите правильно написать процедуру | seasanya | Microsoft Office Access | 1 | 26.01.2009 22:02 |
Помогите написать процедуру на кнопку | evrey | Общие вопросы Delphi | 1 | 16.06.2008 22:25 |
Как правильно написать процедуру | Cold Went | Компоненты Delphi | 1 | 29.04.2008 14:21 |