Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
wildwolf007
17 / 26 / 0
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
1

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

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

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

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

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

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

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

Отбор данных в связанных таблицах
Доброго времени суток форумчане. Имеется база данных с информацией о...

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

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

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

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

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

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

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

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

Добавлено через 54 секунды
Я имею ввиду в поле со списком использовать enter
0
VinniPuh
Эксперт MS Access
6265 / 3568 / 361
Регистрация: 27.03.2013
Сообщений: 13,064
23.11.2015, 09:57 9
Попробуйте в моём примере ввести заведомо несуществующие данные сотрудника в поле - Поиск и нажать Enter
0
wildwolf007
17 / 26 / 0
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
23.11.2015, 10:38  [ТС] 10
Попробовал он перескакивает в новое поле, а мне нужно просто что б оставался в этом поле и потом когда пользователь нажмет кнопку ок тогда должно произойти везде сохранение.
У меня в моей базе появляется сообщение "введенный текст не соответствуетни одному из элементов списка..."
Наверное как я хочу не получится?
0
VinniPuh
Эксперт MS Access
6265 / 3568 / 361
Регистрация: 27.03.2013
Сообщений: 13,064
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 / 0
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
23.11.2015, 11:03  [ТС] 12
Ну, а я думаю может как-то можно находу???

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

Добавлено через 1 минуту
Если не получится, то ожидайте у кого ваш пример откроется, мне лично виртуально затруднительно подсказывать по процедурам.
Удачи.
0
wildwolf007
17 / 26 / 0
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
23.11.2015, 11:14  [ТС] 14
Ну и еще небольшое уточнение в формате текста присутствует enter и в выпадающем списке отображается только первая строка, а можно вывести все значение хранящиеся с учетом enter в даннойячейке?
0
alvk
Эксперт MS Access
5601 / 3496 / 169
Регистрация: 12.08.2011
Сообщений: 8,915
24.11.2015, 03:12 15
Надо же, ещё один ячейки нашёл в Акцессе, 8 лет ищу и не могу найти никак.
0
wildwolf007
17 / 26 / 0
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
24.11.2015, 09:34  [ТС] 16
А я смотрю за 8 лет Вы научились не решать проблемы, а только "тролить" неточности в формировании вопросов у новичков. Уж и сложная у Вас жизненная миссия изо дня в день выискивать слово "ячейки" на ветке форума MS Access и самоутверждаться в том, что как только родились знали, что слово ячейки неупотребимо в контексте баз данных. Почему не можете просто поправить мою неточность и помочь в решении возникающих при освоении новое предметной области? Или Ваше самолюбие может быть задето, что б не "потролить"?

Ваше замечание я услышал спасибо.
0
texnik-san
шапоклякистка 8-го дня
3630 / 2191 / 389
Регистрация: 26.06.2015
Сообщений: 4,648
Записей в блоге: 1
24.11.2015, 09:45 17
При чем тут "троллить"? Формулировки отражают сетпень каши в голове спрашивающего. Как отвечать вопрос, ошибочный по своей глубинной сути?
0
wildwolf007
17 / 26 / 0
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
24.11.2015, 10:48  [ТС] 18
Почему тогда не переспросить вопрос? Или не задать наводящий вопрос? Или не поправить слово?
Скажите, что не понятно в моем вопросе?
0
mobile
Эксперт MS Access
22914 / 12990 / 2688
Регистрация: 28.04.2012
Сообщений: 14,227
24.11.2015, 10:52 19
Цитата Сообщение от wildwolf007 Посмотреть сообщение
можно вывести все значение хранящиеся с учетом enter в даннойячейке?
Вопрос предположительно о многострочном тексте в поле со списком. Если так, то ответ однозначный - аксовский комбо не показывает многострочные тексты.
Если же имелось в виду иное, то что именно?
1
wildwolf007
17 / 26 / 0
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
24.11.2015, 10:52  [ТС] 20
Прилагаю скрин ошибки.
0
Миниатюры
Поиск при наборе и сохранение в связанных таблицах  
24.11.2015, 10:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2015, 10:52

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

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

Удаление цепочки строк в связанных таблицах
Здравствуйте, Уважаемые форумчане! Подскажите, пожалуйста: как удалять...


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

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

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