Форум программистов, компьютерный форум, киберфорум
Наши страницы

MS Access

Войти
Регистрация
Восстановить пароль
 
 
wildwolf007
17 / 26 / 3
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
#1

Поиск при наборе и сохранение в связанных таблицах - MS Access

22.11.2015, 21:27. Просмотров 743. Ответов 30
Метки нет (Все метки)

На форме присутствуют данные из двух таблиц. Таблицы между собой связаны отношением один к многим.

1) Нужно что б при наборе текста в поле формы "Корреспондент", производился поиск из таблицы корреспондент и подсвечивался, если такого корреспондента нет, то подсветка прекращалась и пользователь вносил нового контрагента в поле формы.
2) После нажатия кнопки "Ок" при сохранении учитывал идентификатор найденного или созданного нового корреспондента таблицы Корреспондент в поле "Код_корреспондента" таблицы РК.

Такой функционал имеется в Excel при наборе Excel подсказывает ранее набранный текст. Так же такая возможность присутствует в выпадающем списке, но в выпадающем списке невозможно добавить новую запись.

Попытался чето реализовать, но понимаю что получается "не очень красиво". А с поиском не могу понять как его реализовать.
0
Вложения
Тип файла: rar Корреспондент.rar (23.8 Кб, 14 просмотров)
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2015, 21:27
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Поиск при наборе и сохранение в связанных таблицах (MS Access):

Контекстный поиск в связанных таблицах Access - MS Access
Господа! Возможно кто либо, из продвинутых пользователей, сможет дать небольшой, наводящий совет. Есть простенькая база данных Access-2000...

Отбор записей с связанных таблицах - MS Access
Доброго времени суток. Не подскажите, могу ли я отобрать заказы, которые не входят в табличку zakaz_zakaz_eks?

Отбор данных в связанных таблицах - MS Access
Доброго времени суток форумчане. Имеется база данных с информацией о сотрудниках. В базе 4 таблицы: Сотрудники, Приказы, Подразделение,...

Маска ввода в связанных таблицах. ACCESS - MS Access
ACCESS. Надо создать маску ввода в индексированное (ключ) поле (text), чтобы автоматически появлялась буква C (латинская), а потом 4 цифры....

Автоматическое подставление индекса в связанных таблицах - MS Access
Есть две таблицы: "Квартиры" (с полями "Номер квартиры", "Номер дома", "Улица") и "Жители" (с полями "ФИО", "Возраст", "Код ИНН"). В одном...

Необходимо найти запись в связанных таблицах - MS Access
Есть таблица, находим в ней строку, нужно выбрать строки из других таблиц, связанных "один-ко-многим" с этой строкой. Это можно выполнить...

30
VinniPuh
Эксперт MS Access
5806 / 3352 / 333
Регистрация: 27.03.2013
Сообщений: 12,389
23.11.2015, 08:33 #2
Цитата Сообщение от wildwolf007 Посмотреть сообщение
...но в выпадающем списке невозможно добавить новую запись....
Если правильно понял вопрос про поля со списком, и если пойти по несовсем правильному пути и вместа кода писать текст, то можно.
Типа своё поле корреспондент преобразовывайте в поле со списком и в источнике строк пишите:
SQL
1
2
3
4
SELECT Корреспондент.Корреспондент
FROM Корреспондент
GROUP BY Корреспондент.Корреспондент
ORDER BY Корреспондент.Корреспондент;
Тогда вы сможете не только выбирать из списка, но и вводить новые названия, которые после обновления тоже можно будет впоследствии выбирать.
1
wildwolf007
17 / 26 / 3
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
23.11.2015, 08:57  [ТС] #3
Скажит, а какой правильный путь в данной ситуации?
0
VinniPuh
Эксперт MS Access
5806 / 3352 / 333
Регистрация: 27.03.2013
Сообщений: 12,389
23.11.2015, 09:07 #4
Ну так как у меня ваш пример не открывается, т. к. у меня 2000, то делаю только предположения, но обычно всё делаю и ищу и добавляю записи кодом VBA.
0
VinniPuh
Эксперт MS Access
5806 / 3352 / 333
Регистрация: 27.03.2013
Сообщений: 12,389
23.11.2015, 09:20 #5
Пример, как если хочу кого то найти в поле со списком, а его нет, типа нет в списке, то перескакивается на новую запись и можно ввести новые данные.
Смотри процедуру - Отсутствие в списке, у поля - Поиск сотрудника.
В последнее время пользуюсь в омновном такой процедурой.
0
Вложения
Тип файла: rar Сотрудники (Отсутствие в Списке).rar (34.8 Кб, 8 просмотров)
wildwolf007
17 / 26 / 3
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
23.11.2015, 09:42  [ТС] #6
В поле со списком нет возможности использовать Enter. Пишу программу для формирования почтовых реестров и в данное поле как раз будет вписываться корреспондент получатель, который в данном формате будет печататься на конверте. Например:

355000
ПАО Шоколадные конфеты
ул.Циолковского 12
г. Москва

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

К сожалению не смог пересохранить в более старый формат оказывается так низя.

Вроде суть Вы правильно поняли. Спасибо за Ваше предложение. Если будет еще идея прошу подсказать.
0
VinniPuh
Эксперт MS Access
5806 / 3352 / 333
Регистрация: 27.03.2013
Сообщений: 12,389
23.11.2015, 09:51 #7
Цитата Сообщение от wildwolf007 Посмотреть сообщение
...нет возможности использовать Enter...
Странно, мне всегда казалось, что у любой клавиатуры есть - Enter, а на некоторых даже по два раза.
0
wildwolf007
17 / 26 / 3
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
23.11.2015, 09:54  [ТС] #8
Пардон можно использовать ctrl+ enter

Добавлено через 54 секунды
Я имею ввиду в поле со списком использовать enter
0
VinniPuh
Эксперт MS Access
5806 / 3352 / 333
Регистрация: 27.03.2013
Сообщений: 12,389
23.11.2015, 09:57 #9
Попробуйте в моём примере ввести заведомо несуществующие данные сотрудника в поле - Поиск и нажать Enter
0
wildwolf007
17 / 26 / 3
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
23.11.2015, 10:38  [ТС] #10
Попробовал он перескакивает в новое поле, а мне нужно просто что б оставался в этом поле и потом когда пользователь нажмет кнопку ок тогда должно произойти везде сохранение.
У меня в моей базе появляется сообщение "введенный текст не соответствуетни одному из элементов списка..."
Наверное как я хочу не получится?
0
VinniPuh
Эксперт MS Access
5806 / 3352 / 333
Регистрация: 27.03.2013
Сообщений: 12,389
23.11.2015, 10:48 #11
Цитата Сообщение от wildwolf007 Посмотреть сообщение
...не соответствуетни одному из элементов списка...
Если его ещё нет, то естественно так и будет не соответствовать.
А если введете новую запись, то уже будет соответствовать.
А по идее нужно заранее вводить, то, что расчитываешь выбирать впоследствии, а не на ходу.

Добавлено через 2 минуты
Попробуйте вот такую процедуру
Естественно изменив под себя имена таблицы и поля
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub КодСпециализация_NotInList(NewData As String, Response As Integer)
    Dim s
    s = "Специализации '" & NewData & "' нет в списке. " & vbCrLf _
    & " Внести - ОК;  Вернуться для выбора - Отмена"
    If MsgBox(s, vbOKCancel) = vbOK Then
        CurrentDb.Execute "insert into Специализация(Специализация) values('" & NewData & "')"
        Response = acDataErrAdded
    Else
        Response = acDataErrContinue
    End If
End Sub
1
wildwolf007
17 / 26 / 3
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
23.11.2015, 11:03  [ТС] #12
Ну, а я думаю может как-то можно находу???

Добавлено через 13 минут
Спасибо все супер. А я как раз думал по данной менюшке отсутствие в списке. Но добавил без условия ничего не получилось, а с Вашим решением все супер. Решение проблемы 2 и 11 пост.
0
VinniPuh
Эксперт MS Access
5806 / 3352 / 333
Регистрация: 27.03.2013
Сообщений: 12,389
23.11.2015, 11:06 #13
Цитата Сообщение от wildwolf007 Посмотреть сообщение
...как-то можно находу?...
На ходу, это подгоняйте на себя последную процедуру, типа ИСТИННЫЕ ИМЕНА свои вставьте, всего 4 имени вставить свои.

Добавлено через 1 минуту
Если не получится, то ожидайте у кого ваш пример откроется, мне лично виртуально затруднительно подсказывать по процедурам.
Удачи.
0
wildwolf007
17 / 26 / 3
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
23.11.2015, 11:14  [ТС] #14
Ну и еще небольшое уточнение в формате текста присутствует enter и в выпадающем списке отображается только первая строка, а можно вывести все значение хранящиеся с учетом enter в даннойячейке?
0
alvk
Эксперт MS Access
5474 / 3372 / 163
Регистрация: 12.08.2011
Сообщений: 8,500
24.11.2015, 03:12 #15
Надо же, ещё один ячейки нашёл в Акцессе, 8 лет ищу и не могу найти никак.
0
24.11.2015, 03:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2015, 03:12
Привет! Вот еще темы с ответами:

сортировка в связанных таблицах после разделения базы - MS Access
После разделения базы неправильно выполняется сортировка в таблицах Что надо было сделать при разделении или после этого ?

Получить возможность добавлять новые данные в связанных таблицах - MS Access
Доброго времени, есть такой вопрос, возможно он уже был освещен, но я не смог грамотно сформулировать (за это прошу прощения) и создал...

Сохранение данных сразу в двух таблицах - MS Access
Доброе время суток всем, Возникла еще одна проблема. Есть форма "Form_warehouse", в которой вводятся данные о поступлении...

Поиск в сводных таблицах - MS Access
Добрый день, подскажите пожалуйста как лучше сделать, есть 5 таблиц (5 разных складов), в которых поля: 1. номер детали и 2. наличие на...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru