Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 14.11.2009
Сообщений: 14

написать процедуру на VBA

14.11.2009, 02:07. Показов 2420. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, плиз, у меня есть таблица Сотрудники (КодСотрудника, ФИО, Должность), форма Сотрудники(с кнопками Открыть, Создать, Закрыть), форма ПодчиненнаяСотрудники (КодСотрудника, ФИО, Должность). При нажатии кнопки Создать, открывается другая форма СведенияОСотруднике и заполняются поля-ФИО, Должность. Так вот как сделать, чтобы при нажатии кнопки ОК на форме СведенияОСотруднике не добавлялся сотрудник, данные которого уже имеются. Пишу на VBA
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Р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
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.11.2009, 02:07
Ответы с готовыми решениями:

Печать отчета через процедуру VBA с выводом окна свойств принтера
Доброго времени суток форумчане! Возникли вопросы по печати отчетов, нужна Ваша помощь! Суть вопроса в следующем: необходимо что бы...

Выполнение VBA процедуры хранящейся в поле типа Мемо с передачей в процедуру параметров
Доброго времени суток уважаемые форумчане! Подскажите пож-та. Существует таблица (хранение файлов) со следующими полями: Код ...

Написать процедуру
Ввести текст. Перед каждой цифрой в тексте вставить знак «+».

7
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
14.11.2009, 09:47
1. IsNull(Me!ФИО) вполне достаточно. Уберите:

Or Me!ФИО = ""

2. Вместо

If ("Сотрудники.ФИО " LIKE “& Me!ФИО”) Then

воспользуйтесь фнкцией DLookUp:

If DLookup("ФИО", "Сотрудники", "ФИО=""" & ФИО & """") Then
0
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
14.11.2009, 11:17
Если критерию не соответствует ни одна запись либо домен не содержит записей, функция DLookup() возвращает пустое значение.
http://support.microsoft.com/kb/208786/ru

так что,
Цитата Сообщение от Михайло_ Посмотреть сообщение
If DLookup("ФИО", "Сотрудники", "ФИО=""" & ФИО & """") Then
неправильно
нужно
Visual Basic
1
If not isnull(DLookup("ФИО", "Сотрудники", "ФИО=""" & ФИО & """")) Then
0
0 / 0 / 0
Регистрация: 14.11.2009
Сообщений: 14
15.11.2009, 00:36  [ТС]
вставила DLookUp, выдает сообщение, что такой сотрудник уже существует, но потом, когда нажимаешь на форме Сотрудники на другую кнопку, то сотрудник, который уже есть, все равно добавляется
0
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
15.11.2009, 00:44
Цитата Сообщение от ehoolu Посмотреть сообщение
но потом, когда нажимаешь на форме Сотрудники на другую кнопку
на какую другую?
0
0 / 0 / 0
Регистрация: 14.11.2009
Сообщений: 14
15.11.2009, 03:09  [ТС]
например Открыть, или Закрыть)) и этот сотрудник появляется в списке
0
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
15.11.2009, 03:15
ehoolu, значит нужно все переделать. т.е.
в поле ФИО формы ввода сотрудника для события BeforeUpdate (до обновления т.е.) написать проверку
Visual Basic
1
If not isnull(DLookup("ФИО", "Сотрудники", "ФИО=""" & ФИО & """")) Then Cancel=1
0
0 / 0 / 0
Регистрация: 14.11.2009
Сообщений: 14
16.11.2009, 01:42  [ТС]
Спасибо огромное, все теперь получилось
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.11.2009, 01:42
Помогаю со студенческими работами здесь

Написать процедуру VBA (плотное копирование, замена буквы)
Господа программисты! Взываю о помощи! Есть две задачи: 1) Написать процедуру, которая копирует числа из столбца A1:A10 Листа1 (между...

VBA Excel: Написать процедуру, которая выполняет указанные действия
Написать процедуру, которая выполняет следующие действия: 1. Запишите в ячейку А1 текст "Аргумент" 2. Запишите в ячейку В1...

Написать на VBA процедуру АКРОСТИХ, организующую ввод с клавиатуры 8 слов как элементов массива
Написать на VBA процедуру АКРОСТИХ, организующую ввод с клавиатуры 8 слов как элементов массива и составление аббревиатуры (слова из ...

Нужно написать простецкую процедуру и простецкую функцию для VBA Excel, подробно о задачах и пр. в теме
1.Функция, которая считает минимальное значение в диапазоне. Во-первых почему-то выделяет For each cell in Selection, мол cell -...

Написать процедуру SortMKinds – процедуру сортировки массива типа string
Нужно написать процедуру SortMKinds – процедуру сортировки массива типа string, содержащего элементы m видов. Деление элементов на m видов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru