Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
1

Автозаполняемые поля

31.05.2016, 05:18. Показов 1485. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана база. В ней есть таблица и форма "Список преподавателей", там есть поля ФИО, Фамилия, Имя, Отчество. Нужно, чтобы, когда в поля "Фамилия,Имя,Отчество" вводились данные, то поле ФИО автоматически заполнялось так: Фамилия И.О.
Я вроде бы нашла пару полезных тем, но всё сделали в приложенной БД, а скачать и посмотреть не могу.
Пожалуйста помогите.

Добавлено через 25 минут
Я сделала, что бы Фамилия И.О. вызвалялось из тех полей ([Фамилия]+" "+Left([Имя];1)+"."+Left([Отчество];1)+"."). Но остаётся проблема занесения этого в таблицу. Пока что не получается.

Добавлено через 32 минуты
Вот кое-что наляпалось, но оно не работает:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Compare Database
 
Private Sub FIO_AfterUpdate()
 
 
 
End Sub
 
Private Sub Form_BeforeUpdate()
Me.FIO = Me.pole43.Value
 
End Sub
 
Private Sub pole43_AfterUpdate()
Building!FIO = Me.pole43.Value
 
 
End Sub
FIO - это поле в таблице в которую нужно перебросить данные из pole43 (которое в свою очередь вызволяет Фамилия И.О.)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2016, 05:18
Ответы с готовыми решениями:

Автозаполняемые поля в форме
Помогите пжалуйста новичку Нужно в форме создать зависимое поле. Наданный момент создана форма и...

Зависимые поля (список значений одного поля зависит от значения другого поля)
Здравствуйте, Уважаемые участники форума, изучив множество подобных вопросов на разных форумах,...

Как связать между собой два поля (список значений одного поля зависит от значения другого поля)
Есть таблица: предмет, КодТипаМатериала (список), КодМатериала (список) для примера: ...

Как прописать программно поля "Основные поля", "Подчинённые поля"?
Как прописать программно поля "Основные поля"(LinkMasterFields), "Подчинённые...

18
шапоклякистка 8-го дня
3679 / 2239 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
31.05.2016, 06:27 2
Правила раздела Правила раздела

Прикрепляйте к вопросу базу данных:
скопируйте в отдельную базу данных те ее элементы, которые касаются вопроса;
выполните сжатие базы данных (Для 2007 Access-а: значок Microsoft в левом верхнем углу - Управление - Сжать и восстановить базу данных; Для 2010 Access-а: на панели Файл - Сведенья - Сжать и восстановить базу данных)
заархивируйте базу данных любым архиватором;
прикрепляйте заархивированную, сжатую бд на форум
Многие форумчане пользуются Ms Access 2003 формата, поэтому иногда вложения 2007 и 2010 формата (.accdb) просят перевести в 2003 формат (.mdb).
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
31.05.2016, 06:53  [ТС] 3
Таблица с Формой
Вложения
Тип файла: rar BD.rar (192.6 Кб, 14 просмотров)
0
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,572
31.05.2016, 07:14 4
Странное чего то творится.
Ни одна ссылка на вложения не закачивается.
Это только мне так подфартило?
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
31.05.2016, 07:22  [ТС] 5
Тоже такое было, на момент создания темы, но сейчас уже работает
0
шапоклякистка 8-го дня
3679 / 2239 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
31.05.2016, 07:34 6
Лучше вычисления перенести в запрос - источник формы; и для объединения строк использовать & а не +.
Вложения
Тип файла: rar BD.rar (188.9 Кб, 2 просмотров)
0
шапоклякистка 8-го дня
3679 / 2239 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
31.05.2016, 07:36 7
С плюсом вместо амперсанда можно напороться на проблему: непустая строка + пустая строка = пустая строка.

С апмерсандом иначе: непустая строка & пустая строка = непустая строка
0
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,572
31.05.2016, 07:43 8
Цитата Сообщение от Veroninja Посмотреть сообщение
...сейчас уже работает...
Не а.
Так и тормозит.
После обеда посмотрим, а то наверное опять чего ни то на форуме реконструируют и улучшают.
А если по существу вопроса и на сколько понял суть вопроса, то вам в другой форме, в куда вы собираетесь подставлять ФИО нужно просто сделать поле со списком.
В источнике строк откыть запрос в режиме конструктора, первым полем указать поле счетчика из таблицы - Преподаватели, а во втором написать выражение типа как сами выше писали:
Фамилия ИО: [Фамилия] & (" "+Left([Имя];1)+".") & (" "+Left([Отчество];1)+".")
В свойствах указать

Количество столбцов - 2
Ширина столбцов - 0см;4см

Код видно не будет, т. к. его ширина = 0, а ФИО будет видно, т. к. ширина 2-го столбца не равна нулю.
Вот по ФИО и будете выбирать, а вставляться будет код.
И так везде, где у вас будет присутствовать препод.
Если же у вас нет кода в таблице - Преподы и вы вставляете текст (что неправильно), то

Количество столбцов - 1
Ширина столбцов - 4см
и первым стоит выражение.
1
784 / 466 / 79
Регистрация: 18.05.2016
Сообщений: 1,244
Записей в блоге: 4
31.05.2016, 08:51 9
Цитата Сообщение от texnik-san Посмотреть сообщение
С плюсом вместо амперсанда можно напороться на проблему
Я бы даже иначе сказал. Надо принять такое правило, что плюс - это арифметическая операция. Ею мы пытаемся сложить два числа. Если складываемые переменные не числовые - это другая проблема. Надо их преобразовать к числовому формату или сами переменные переделать.... Но из написанного кода понятно, что мы пытаемся именно сложить числа.
А амперсанд - это конкатенация (соединение) строк. Если мы соединяем два числа, то получим не сумму, а сборку из последовательности цифр. 1 и 2 = 12.
В некоторых случаях программе будет всё равно и она постарается сделать невозможное. Но самих себя мы обдурить сможем легко, если будем использовать неправильные приёмы. Через неделю уже забудется, что имел в виду под не той операцией и будет убито много часов, чтоб понять, в чём загвоздка
0
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,572
31.05.2016, 09:38 10
Для И.О. всегда так исмтльзую, т. ,К. ,Текст.
Если например От,ества не будет то и точка не отбразится.
1
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
01.06.2016, 05:02  [ТС] 11
А если по существу вопроса и на сколько понял суть вопроса, то вам в другой форме, в куда вы собираетесь подставлять ФИО нужно просто сделать поле со списком.
В источнике строк откыть запрос в режиме конструктора, первым полем указать поле счетчика из таблицы - Преподаватели, а во втором написать выражение типа как сами выше писали:
Фамилия ИО: [Фамилия] & (" "+Left([Имя];1)+".") & (" "+Left([Отчество];1)+".")
В свойствах указать

Количество столбцов - 2
Ширина столбцов - 0см;4см
Но мне нужно, что бы в основной форме, когда я только ввожу данные автоматически записывалось в поле таблицы это самое "Фамилия И.О.", а потом уже подстановка в другие формы будет т.е. нельзя, что бы пользователь сам вводил полное ФИО (три разных поля), а потом ещё вот это сокращение (Фамилия И.О.) в основной форме.

Добавлено через 1 час 25 минут

слоупок мод офф

Я понял, не сразу, но понял, в принципе проканает, спасибо!
0
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,572
01.06.2016, 05:12 12
Ну и чудненько что поняли.
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
05.06.2016, 09:36  [ТС] 13
Цитата Сообщение от PuhKMV Посмотреть сообщение
Ну и чудненько что поняли.
Не-а, не получается что-то всё таки у меня. Либо я не до понимаю чего-то. Мне всё таки нужно сделать в VBA (как раз для задания в дипломе подойдёт). Мой код в верху темы не работает, вы не можете посмотреть беглым взглядом? Может я что-то упустила
0
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,572
05.06.2016, 09:54 14
Veroninja, щас не могу, ближе к вечеру, когда доберусь до ПК.
Может кто то другой раньше подскажет.
0
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,572
05.06.2016, 17:28 15
Лучший ответ Сообщение было отмечено Veroninja как решение

Решение

Veroninja, Верно вам было выше сказано, что Фамилия И.О. нужно указывать в запросе являющимся - Источником записей формы. (см. рисунок)
Потом просто укажете это поле в свойстве - Данные. Это стандарт, а так как хотите вы это чем то похоже на извращение.
Но если уж так хотса - VBA, то создал список - Выбери и Найди
Нажимаете на любую ФИО из списка и сразу переходите на эту запись. (Можете преобразовать в поле со списком)
Так же сделал просто - Список, чтобы визуально видеть на какой записи находитесь в данный момент и кто рядом.
(если не нужно просто удалите)
Я обычно перехожу по записям колёсиком мыша, но у вас похоже в высших версиях Аксика это удалили якобы за ненадобностью, типа удалением возможности - усовершенствовали.
В связи с этим повесил процедуры на кнопки перехода по записям.
Миниатюры
Автозаполняемые поля  
Вложения
Тип файла: rar BD-2.rar (30.6 Кб, 4 просмотров)
1
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
06.06.2016, 02:29  [ТС] 16
Цитата Сообщение от PuhKMV Посмотреть сообщение
Veroninja, Верно вам было выше сказано, что Фамилия И.О. нужно указывать в запросе являющимся - Источником записей формы. (см. рисунок)
Потом просто укажете это поле в свойстве - Данные. Это стандарт, а так как хотите вы это чем то похоже на извращение.
Но если уж так хотса - VBA, то создал список - Выбери и Найди
Нажимаете на любую ФИО из списка и сразу переходите на эту запись. (Можете преобразовать в поле со списком)
Так же сделал просто - Список, чтобы визуально видеть на какой записи находитесь в данный момент и кто рядом.
(если не нужно просто удалите)
Я обычно перехожу по записям колёсиком мыша, но у вас похоже в высших версиях Аксика это удалили якобы за ненадобностью, типа удалением возможности - усовершенствовали.
В связи с этим повесил процедуры на кнопки перехода по записям.
Ого, спасибо!
0
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,572
07.06.2016, 09:11 17
Veroninja, вот пример, как вам хотса.
Но еще раз повторяю, вставлять значения в поля таблицы, если их можно просто увидеть запросом, не камильфо и нехорошо, т. к. это дублирование данных и соответственно происходит увеличение объема БД.
Все дальнейшие вопросы только в своей теме, а не в личке.
1
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,572
07.06.2016, 15:19 18
Блин, тока щас заметил, что примерчик то и не приложился.
Вложения
Тип файла: rar BD-3.rar (33.9 Кб, 8 просмотров)
1
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 7
08.06.2016, 05:31  [ТС] 19
PuhKMV, большое Вам спасибо, пусть лучше будет так, времени нет уже разбираться, так как сроки поджимают.
0
08.06.2016, 05:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2016, 05:31
Помогаю со студенческими работами здесь

Ошибка при создании поля таблицы и указании расположения поля в таблице
Пытаюсь создать поле с указанием его расположения в таблице. Пока безрезультатно ALTER TABLE AAA...

Ограничение вариантов заполнения поля в форме на основе уже заполненного поля
Здравствуйте. Сразу к делу- Имеется база, в ней,кроме прочих,существуют таблицы "Структура мест...

Обновление одного поля таблицы, при заполнении поля в другой таблице
Друзья помогите новичку! Есть две таблицы -продажа(id продажи, сумма продажи) -скидка(id скидки,...

Как поместить в отчете галку логического поля в середину поля?
Как поместить в отчете галку логического поля посередине? В свойствах нет выравнивания для такого...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru