|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
|
Интересный вариант поиска существующей записи19.02.2015, 18:33. Показов 1353. Ответов 9
Метки нет (Все метки)
как реализовать такой вариант?
--есть одиночная форма, данные из таблицы "работники" --при вводе нового работника, в поле "фамилия"(простое поле), выпадал бы список в котором отображалась бы информация о работниках по первым буквам! --информация такая: фамилия, имя отчество и дата рождения работника. и если такой уже существует, то просто выбрать его из списка, а если нет, то добавить нового! понимаю подобных задач много и для меня они не секрет, весь фокус в том что эти действия должны выполняться на лету(!) --юзер берет паспорт работника, вводит фамилию, Иванов, --выпадает список со всеми Ивановыми, --юзер сравнивает, нашего нет. --По клавише энтер (таб или просто мышью), переходит к следующему полю для заполнения! --а если наш есть то просто щелчком мыши выбирает его и остальные поля заполняются данными автоматически. в этих операциях не должно быть никаких кнопок, или других элементов управления. заранее всем спасибо!
0
|
|
| 19.02.2015, 18:33 | |
|
Ответы с готовыми решениями:
9
Insert существующей записи
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 19.02.2015, 19:32 | |
|
sekonya, смотрите вложение. Если в поле со списком нет фамилии, вызовется форма Сотрудники с написаной новой фамилией
1
|
|
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
||||||
| 19.02.2015, 20:16 [ТС] | ||||||
|
mobile, мне нужно именно так как описано в первом посте.
с чем это связанно? на вашем примере, в поле со списком мы вводим фамилию Иванов, там их несколько, но того кого мне надо нет, а соответственно и форма с новым сотрудником не откроется. По этому я хочу чтобы проверка шла в самой форме ввода, и именно в поле фамилия(!) Добавлено через 5 минут если на форме ввода под полем фамилия спрятать поле со списком, и при вводе в поле фамилия набора букв поле со списком бы раскрывалось, такое возможно? Добавлено через 8 минут а нет, пока поле со списком не получит фокус сделать ничего не возможно, но если попробовать элемент список? при вводе если есть какой-то результат, делать его видимым и в зависимости от кол-ва совпадений менять его высоту, как вы на такое решение смотрите? Добавлено через 18 минут mobile, а как в вашем коде узнать кол-во записей результата?
0
|
||||||
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
|
| 19.02.2015, 22:38 [ТС] | |
|
mobile, как то вот так(см. вложение) только чтобы все было на VBA
0
|
|
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
|
| 19.02.2015, 22:39 [ТС] | |
|
форма сотрудники, попробуйте создать новую запись
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 20.02.2015, 22:28 | |
|
sekonya, ставить поле со списком на основную сущность в справочнике это очень опасно, чревато множеством случайных ошибок. Людям свойственно смотреть, что в списке и забывать при этом, что они находятся на уже введенной записи. Начнут смотреть, выберут кого-то, а потом паника - ведь они забыли кто там был.
Смотрите другой вариант заполнения и просмотра справочника с поддержкой Вашей просьбы о просмотре однофамильцев - в главной форме подформа справочника и список внизу. В этом списке фильтруются сотрудники, чья фамилия начинается на фамилию в справочнике (Иванов: Ивановский - Иванова - Иванович и т.д) Переход на новую запись выдает в списке внизу всех сотрудников. Двойной клик по списку - переход к карточке выбранного сотрудника.
1
|
|
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
||||||
| 21.02.2015, 07:36 [ТС] | ||||||
|
mobile, а что за процедура у вас на загрузке формы стоит?
0
|
||||||
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 21.02.2015, 08:44 | |
|
Это осталось от прежнего варианта. Если параметр OpenArgs формы не пуст, то значит форма была вызвана для создания карточки нового сотрудника. В то же время процедура позволяет открывать форму автономно и не будет ошибок и не будет перехода на новую запись.
Вас устраивает новый вариант?
1
|
|
|
609 / 388 / 8
Регистрация: 14.04.2011
Сообщений: 1,324
|
|
| 21.02.2015, 08:51 [ТС] | |
|
да, вариант хороший! а вот про вот эту процедуру на загрузке формы, можете подробнее?
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||||||
| 21.02.2015, 09:26 | |||||||||||
Сообщение было отмечено sekonya как решение
Решение
Посмотрите процедуру Отсутствие в списке (NotInList) поля со списком в форме F1. Там анализирутся введенная фамилия и если такой нет в списке, то вызывается форма Сотрудники для пополнения списка. Но чтобы еще раз не писать фамилию, ее надо передать в форму Сотрудники. Для этого используется параметр OpenAgrs в команде вызова формы. Это последний позиционный параметр в OpenForm. При вызове ему задается значение параметра NewData процедуры NotInList, который содержит значение, отсутствующее в списке:
Кстати, в команде вызова формы Сотрудники есть небольшая ошибка. Параметр sotr лишний, остался от чего-то, не помню чего. Надо изменить вызов
1
|
|||||||||||
| 21.02.2015, 09:26 | |
|
Помогаю со студенческими работами здесь
10
Ограничение на ввод дублера (уже существующей) записи в ПОЛЕ Как узнать, форма открыта для добавления записи или для изменения существующей? Запрет дублирования уже существующей записи в таблице по "поле1" вводимым из формы?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|