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

Автоматическое заполнение поля таблицы/формы при вводе значения в другое поле

06.06.2019, 16:03. Показов 8025. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, прошу помощи у Гуру ACCESS.
Есть таблицы ЗП_проект и Кадры
А также форма ЗП_проект куда вводится часть поступающей информации с 1-8 поля
Есть необходимость автоматического заполнения последующих полей формы (с 9-16), соответствующими значениями из таблицы Кадры согласно значению введенному в 5 поле «РС_АББ» настоящей формы

Пытался реализовать задачу своими познаниями, но безуспешно. Вроде не сложно, а какой-то критерий в макросе, запросе или функции упускаю. Я в отчаянии.
Буду признателен за подсказку.
Вложения
Тип файла: rar RS_20.rar (1.19 Мб, 12 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.06.2019, 16:03
Ответы с готовыми решениями:

Автоматическое заполнение поля таблицы/формы при вводе значения в другое поле
Добрый день, прошу помощи. Есть таблица Т1ИНДЕКС с полями «Индекс» и «Город». Есть Таблица Т2ЗАГРУЗКА с полями «№ заказа», «Индекс» и...

Как на форме при выборе значения из Поля со списком сделать автоматическое выведение значения в другое Поле?
Вечер добрый, господа. :curtsy: Требуется помощь ваша в MS Access, ибо самостоятельное изучение чуда сего происходит семимильными шагами...

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

21
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,490
06.06.2019, 17:27
Лучший ответ Сообщение было отмечено visavis68 как решение

Решение

Цитата Сообщение от visavis68 Посмотреть сообщение
Пытался реализовать задачу своими познаниями, но безуспешно. Вроде не сложно, а какой-то критерий в макросе, запросе или функции упускаю.
Честно говоря, не заметил ваших попыток.
а...
Visual Basic
1
Me.Карта_АББ_№ = Me.ЗП_проект.Column(2)
это вообще не попытка даже ...


Вот как вариант:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Private Sub РС_АББ_AfterUpdate()
'
'--------------------------------------------------------------------------
Dim s$
Dim rst As DAO.Recordset
Dim sРСАББ As String
 
On Error GoTo РС_АББ_AfterUpdate_Err
    
    'Me.Карта_АББ_№ = Me.ЗП_проект.Column(2) 'что это было ??? :)
    
    Me!Дебит = Null
    Me!Кредит = Null
    Me!Сальдо = Null
    Me![Карта_АББ_№] = Null
    Me!ПИН = Null
    Me!ЛК_АББ_код = Null
    Me![Карта_лич_№] = Null
    Me!Sim_АББ = 0
    Me![Р/С_лич] = Null
    Me!Банк_лич = Null
    Me!Примечание = Null
    '... возможно ещё поля ...
 
    If IsNull(Me!РС_АББ) = True Then GoTo РС_АББ_AfterUpdate_End
    If Len(Me!РС_АББ) <> 20 Then GoTo РС_АББ_AfterUpdate_End
 
    sРСАББ = Me!РС_АББ
    s = "SELECT * FROM Кадры WHERE РС_АББ='" & sРСАББ & "'"
 
    Set rst = CurrentDb.OpenRecordset(s, dbOpenSnapshot)
    If rst.RecordCount = 0 Then GoTo РС_АББ_AfterUpdate_End
    
    With rst
        'Me!Дебит = ???
        'Me!Кредит = ???
        'Me!Сальдо = ???
        Me![Карта_АББ_№] = ![Карта_АББ_№]
        Me!ПИН = !ПИН
        Me!ЛК_АББ_код = !ЛК_АББ_код
        Me![Карта_лич_№] = ![Карта_лич_№]
        'Me!Sim_АББ = ???
        Me![Р/С_лич] = ![Р/С_лич]
        'Me!Банк_лич
        'Me!Примечание = ???
        If IsNull(Me!Дата) Then Me!Дата = Date
    End With
 
 
РС_АББ_AfterUpdate_End:
    On Error Resume Next
    rst.Close
    Set rst = Nothing
    Err.Clear
    Exit Sub
 
РС_АББ_AfterUpdate_Err:
    MsgBox "Error: " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in Sub: РС_АББ_AfterUpdate in module: Form_ЗП_проект", vbCritical, "Error in Application"
    Err.Clear
    Resume РС_АББ_AfterUpdate_End
 
End Sub
Вложения
Тип файла: zip RS_20_v02.zip (335.2 Кб, 11 просмотров)
1
5 / 5 / 0
Регистрация: 24.08.2016
Сообщений: 78
06.06.2019, 19:47  [ТС]
Добрый день Eugene-LS.
Я благодарен за отзыв. Протестирую. Отпишусь.
Тем не менее СПАСИБО.

Добавлено через 1 час 12 минут
Eugene-LS
Маленькая не увязка, которую я упустил.
Загрузка данных в таблицу ЗП_проект 5 поле, загружаются из вне.
При открытии формы ЗП_проект, значения в 5 поле отображаются но автозаполнение не происходит.
Автозаполнение происходит только после повторного изменения в самой форме.
Внести изменение возможно???
Заранее СПАСИБО.

Добавлено через 3 минуты
Все свои попытки я очистил.
По сравнению с Вашими они на 50% отличаются и поэтому смешны.
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,490
06.06.2019, 20:05
Цитата Сообщение от visavis68 Посмотреть сообщение
Внести изменение возможно???
Да возможно.
Конечно - возможно.
Всегда возможно.
Модификации это наше ВСЁ!

Но только я вашей "хотелки" не понял совсем
1
5 / 5 / 0
Регистрация: 24.08.2016
Сообщений: 78
06.06.2019, 22:06  [ТС]
Наверно я не правильно выразился.
Другими словами;
1. вношу новую запись, значение в таблицу ЗП_проект 5 поле, сохраняю
2. открываю форму ЗП_проект, в 5 поле «РС_АББ» значение отображается, а значения в обновляемых полях нет

3. обновляю значения 5 поля прямо в форме, автозаполнение срабатывает.

Автозаполнение происходит только после изменения в самой форме.

Желательно при открытии формы чтобы срабатывало автозаполнение значений в форме согласно внесенных изменений в таблице.

Заранее СПАСИБО.
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,490
06.06.2019, 22:25
Цитата Сообщение от visavis68 Посмотреть сообщение
Желательно при открытии формы чтобы срабатывало автозаполнение значений в форме согласно внесенных изменений в таблице.
Можно!
Стройте запрос на обновление - и на событие OnLoad() формы выполняйте его.
Не вижу сложностей.

С таблицами работать не принято.
1
5 / 5 / 0
Регистрация: 24.08.2016
Сообщений: 78
07.06.2019, 14:49  [ТС]
Добрый день многоуважаемый Гуру Eugene-LS.
Я в очередной раз осознаю свой малый опыт в ACCESSe
разными методами запросов испытывал построить запрос на обновление - и на событие OnLoad() формы
Однако воз и ныне там. Соответствующей информации на страницах инета не нашёл.
Снимаю шляпу и вынужден просить направить на путь истинный.
Извините за назойливость.
Тем не менее СПАСИБО.
С уважением Валентин
Вложения
Тип файла: rar RS_20_v03.rar (320.2 Кб, 9 просмотров)
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
07.06.2019, 15:19
visavis68,

Чтобы тот, к кому Вы обращаетесь, узнал об этом, получив уведомление, делайте так:

Нажмите на логин этого участника, который показан в серой части слева от сообщения.
Этот логин попадет в окно редактирования сообщения и будет снабжен соответствующим тегом.

Или можно по-другому: добавить тег NICK с помощью панели инструментов окна редактирования сообщения -
нажать на значок, похожий на синюю пуговицу или птичий глаз (находится слева от значка "цитата").
0
5 / 5 / 0
Регистрация: 24.08.2016
Сообщений: 78
07.06.2019, 15:23  [ТС]
Capi, Спасибо. Возьмем на вооружение
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,490
07.06.2019, 18:30
Лучший ответ Сообщение было отмечено visavis68 как решение

Решение

visavis68, вот нечто сочинилось ...
Вложения
Тип файла: zip RS_20_v04.zip (347.3 Кб, 38 просмотров)
1
5 / 5 / 0
Регистрация: 24.08.2016
Сообщений: 78
07.06.2019, 20:49  [ТС]
Eugene-LS,
Без помощи я бы не справился.
Приклоняюсь перед Гуру
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,490
07.06.2019, 20:52
Лучший ответ Сообщение было отмечено visavis68 как решение

Решение

Цитата Сообщение от visavis68 Посмотреть сообщение
Без помощи я бы не справился.
Это только вам кажется так.
Кстати, обошлось без запроса на обновление - просто применил тот же метод но уже ко всем записям.
Так настраивать удобнее т.к. всё в одном месте.
1
5 / 5 / 0
Регистрация: 24.08.2016
Сообщений: 78
04.07.2019, 15:45  [ТС]
Eugene-LS,
Добрый день многоуважаемый Гуру
Вынужден просить помощи

Имеется выражение:
Me![Держатель] = !Фамилия & !Имя & !Отчество
но оно отображает
формат: ФамилияИмяОтчество

Подскажите пожалуйста как преобразовать в запросе выражение, чтобы выводились
Фамилия целиком, пробел, инициалы с точкой
то-есть: Фамилия И.О.

Заранее Спасибо.
С уважением Валентин
0
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
04.07.2019, 15:53
Цитата Сообщение от visavis68 Посмотреть сообщение
то-есть: Фамилия И.О.
Фамилия И О:
Visual Basic
1
[Фамилия] & (" "+Left([Имя];1)+". ") & (""+Left([Отчество];1)+".")
1
5 / 5 / 0
Регистрация: 24.08.2016
Сообщений: 78
04.07.2019, 16:57  [ТС]
VinniPuh,

Visual Basic
1
2
3
4
5
With rstSRS
       Me![Держатель] = [Фамилия] & (" " + Left([Имя], 1) + ". ") & ("" + Left([Отчество], 1) + ".")
       Me![Карта_лич_№] = ![Карта_лич_№]
       Me!Sim_АББ = ![Sim_АББ]
End With
Ругается запрос.
Не срабатывает.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
04.07.2019, 17:48
возможно надо
Visual Basic
1
2
3
4
5
With rstSRS
Me.[Держатель] = ![Фамилия] & (" " + Left(![Имя], 1) + ". ") & ("" + Left(![Отчество], 1) + ".")
Me.[Карта_лич_№] = ![Карта_лич_№]
Me.Sim_АББ = ![Sim_АББ]
End With
2
5 / 5 / 0
Регистрация: 24.08.2016
Сообщений: 78
04.07.2019, 19:08  [ТС]
shanemac51,
Сработало!!!
Вот эти знаки (!) меня и мучили.
Спасибо.
С уважением Валентин
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,490
04.07.2019, 19:28
Цитата Сообщение от visavis68 Посмотреть сообщение
Подскажите пожалуйста как преобразовать в запросе выражение, чтобы выводились
Есть такой забавный вариантик:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Public Function GetFIO(vFamilia As Variant, vImja As Variant, vOtchestvo As Variant, _
    Optional bInLongFormat As Boolean) As Variant
'es 19.04.2018
'Возвращает ФИО (Или ничего) по аргументам:
'   vFamilia      = Фамилия
'   vImja         = Имя
'   vOtchestvo    = Отчество
'   bInLongFormat = Краткий или длинный формат = По умолчанию краткий
'       Краткий формат = Пушкин А.С.
'       Длинный формат = Пушкин Александр Сергеевич
'--------------------------------------------------------------------------
On Error GoTo GetFIO_Err
    If Len(vFamilia & "") > 1 Then 'Фамилия указана
        'Простое составление с нормализацией строки
        GetFIO = UCase(Mid(vFamilia, 1, 1)) & LCase(Mid(vFamilia, 2))
    Else
        If bInLongFormat = False Then Exit Function 'Фамилии нет и формат краткий- на выход!
    End If
 
    If Len(vImja & "") > 1 Then 'Имя указано
        If bInLongFormat = False Then
            GetFIO = GetFIO & " " & UCase(Mid(vImja, 1, 1)) & "."
        Else
            'Простое составление с нормализацией строки
            GetFIO = GetFIO & " " & UCase(Mid(vImja, 1, 1)) & LCase(Mid(vImja, 2))
        End If
    Else
        If bInLongFormat = False Then Exit Function
    End If
 
    If Len(vOtchestvo & "") > 1 Then 'Отчество указано
        If bInLongFormat = False Then
            GetFIO = GetFIO & UCase(Mid(vOtchestvo, 1, 1)) & "."
        Else
            'Простое составление с нормализацией строки
            GetFIO = GetFIO & " " & UCase(Mid(vOtchestvo, 1, 1)) & LCase(Mid(vOtchestvo, 2))
 
        End If
    
    End If
 
GetFIO_Bye:
    Exit Function
 
GetFIO_Err:
    Err.Clear
    Resume GetFIO_Bye
End Function

В запросе соответственно: GetFIO([Фамилия];[Имя];[Отчество]) ... ну понятно ...
2
5 / 5 / 0
Регистрация: 24.08.2016
Сообщений: 78
09.07.2019, 15:06  [ТС]
Eugene-LS,
СПАСИБО ОГРОМНОЕ

Добавлено через 2 минуты
Eugene-LS,

Подскажите пожалуйста
Access 2016
ввожу в запросе Mid(фамилия,1,3) выдаёт ошибку синтаксиса
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,490
09.07.2019, 15:19
Цитата Сообщение от visavis68 Посмотреть сообщение
Access 2016 -ввожу в запросе Mid(фамилия,1,3) выдаёт ошибку синтаксиса
И правильно выдаёт!
В запросе вы указываете выражение, а в выражениях аргументы функций указываются через точку с запятой ...
Mid([фамилия];1;3)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.07.2019, 15:19
Помогаю со студенческими работами здесь

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

Автоматическое заполнение поля формы из таблицы
Добрый день господа. Такая вот проблема,с которой бьюсь длительной время.На форуме вроде как есть подсказки по моей теме,но все равно...

Автоматическое занесение данных из поля формы Access в поле таблицы
Задание такое: Дана БД , есть таблица Building, в ней поле Wear. Создана форма. поле формы wear вычисляется автоматически (задано с...

Автоматическое заполнение таблицы при обновлении поля штрихкода
Здравствуйте, Прошу помочь начинающему программисту :) Суть такая, я сделал базу с формами в которой 2 таблицы взаимосвязаны по...

Триггер на заполнение поля в дочерней таблице из другой таблицы при вводе данных в дочернюю
Необходимо заполнить поле date_admission в таблице deliveries(дочерняя), взяв значение date_end из таблицы contractual_deliveries(родитель)...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
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 На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru