Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2021, 18:53   #1
Vladimir_Der
Пользователь
 
Регистрация: 10.12.2018
Сообщений: 14
По умолчанию Подстановка данных в форму из другой таблицы

Имеется две таблицы, в первой и второй таблицах имеются общие поля, соответственно в формах для ввода данных также имеются общие поля. Необходимо чтобы, по условиям выбора указанных в заголовке формы "Таблица2" автоматически заполнились общие поля (первые три поля) формы "Таблица2".
Первые три поля формы "Таблица2" берут значения из запроса "Таблица1Запрос", запрос отрабатывается данные подтягиваются к соответствующим полям со списком формы"Таблица2", но не отображаются, пока по ним не щёлкнешь.
Простенький файл прилагаю. Таблицы не должны быть связаны. Заранее благодарен.
Вложения
Тип файла: rar Database6.rar (45.7 Кб, 5 просмотров)
Vladimir_Der вне форума Ответить с цитированием
Старый 03.03.2021, 14:50   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,129
По умолчанию

Заменить ВстароенныйМакрос нажатия кнопки на код
Код:
Private Sub Кнопка13_Click()
On Error GoTo Макрос1_Err

    DoCmd.OpenQuery "Таблица1 Запрос", acViewNormal, acEdit
    DoCmd.Close acQuery, "Таблица1 Запрос"
    DoCmd.RunCommand acCmdRefresh
    Form_Таблица2.№_КУСП = Form_Таблица2.№_КУСП.ItemData(0)
    Form_Таблица2.Фамилия = Form_Таблица2.Фамилия.ItemData(0)
    Form_Таблица2.Адрес = Form_Таблица2.Адрес.ItemData(0)

Макрос1_Exit:
    Exit Sub

Макрос1_Err:
    MsgBox Error$
    Resume Макрос1_Exit
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 04.03.2021, 18:45   #3
Vladimir_Der
Пользователь
 
Регистрация: 10.12.2018
Сообщений: 14
Вопрос

Александр огромное спасибо, как всегда всё работает!!!
В реальных формах имеется достаточно много одноименных простых полей и как то не особо хочется переделывать их в поля со списком (не красиво выглядит). В примере форма Таблица2, имеет три одноименных поля с формой Таблица1, два из них на форме Таблица2: №КУСП и Адрес я переделал в простые поля. Возможно сделать, чтобы в эти поля подставлялись данные из запроса Таблица1 Запрос?
Файл уже с Вашим кодом прилагаю.
Примечание: форма Таблица2 может работать как самостоятельно, так и с подстановкой данных.
Вложения
Тип файла: rar Database6.rar (84.5 Кб, 4 просмотров)
Vladimir_Der вне форума Ответить с цитированием
Старый 04.03.2021, 23:09   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,129
По умолчанию

Код:
Private Sub Кнопка13_Click()
On Error GoTo Макрос1_Err
Dim rst As Recordset
Dim sSql As String
sSql = "SELECT Таблица1.[№ КУСП], Таблица1.Фамилия, Таблица1.Адрес " & _
"FROM Таблица1 " & _
"WHERE Таблица1.[№ КУСП]=" & Form_Таблица2.КУСП & " AND Таблица1.Фамилия='" & Form_Таблица2.ФИО & "'"
Set rst = CurrentDb.OpenRecordset(sSql)
If rst.RecordCount > 0 Then
    Form_Таблица2.№_КУСП = rst.Fields(0).Value
    Form_Таблица2.Адрес = rst.Fields(2).Value
Else
    Form_Таблица2.№_КУСП = vbNullString
    Form_Таблица2.Адрес = vbNullString
End If

'Form_Таблица2.Фамилия.RowSourceType = "Table/Query"
'Form_Таблица2.Фамилия.RowSource = "SELECT [Таблица1 Запрос].Фамилия FROM [Таблица1 Запрос]"
'
'    DoCmd.OpenQuery "Таблица1 Запрос", acViewNormal, acEdit
'    DoCmd.Close acQuery, "Таблица1 Запрос"
'    DoCmd.RunCommand acCmdRefresh
'    Form_Таблица2.№_КУСП = Form_Таблица2.№_КУСП.ItemData(0)
'    Form_Таблица2.Фамилия = Form_Таблица2.Фамилия.ItemData(0)
'    Form_Таблица2.Адрес = Form_Таблица2.Адрес.ItemData(0)
'
'If IsNull(№_КУСП) Then
'Form_Таблица2.Фамилия.RowSourceType = "Table/Query"
'Form_Таблица2.Фамилия.RowSource = "SELECT Словарь.ФИО FROM Словарь"
'End If

Макрос1_Exit:
    Exit Sub

Макрос1_Err:
    MsgBox Error$
    Resume Макрос1_Exit

End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 23.03.2021, 19:37   #5
Vladimir_Der
Пользователь
 
Регистрация: 10.12.2018
Сообщений: 14
По умолчанию

Александр огромное спасибо за помощь, использую Ваш первый код т.к. совпадающих полей в 1-ой и 2-ой таблицах более 15, использовать второй код оказалось не по зубам, особенно по строчке кода WHERE
Vladimir_Der вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 20000 рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подстановка данных в форму budajis JavaScript, Ajax 8 11.11.2016 10:18
Сверка и подстановка данных из таблицы makkss Microsoft Office Excel 1 01.10.2015 12:27
Автоматическая подстановка данных из основной таблицы. tema_mogilev Microsoft Office Excel 0 05.02.2015 12:15
Подстановка данных с одного листа на другой по ключевому параметру alexsampler Microsoft Office Excel 1 19.10.2012 13:43
Добавление данных в форму из таблицы связанной с другой формой. Retiree Microsoft Office Access 1 24.09.2010 11:54


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS