|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
Есть проблема. Существует форма про писателей, в которой есть поля (ФИО, дата рождения, дата смерти, Страна). Есть две связанных таблицы: авторы и страны. В авторах указывается ФИО, Годы рождения и смерти и код страны, а в таблице страны: код (счетчик) и название. Соответственно связь осуществляется по полям Код_страны(авторы) ---Код(страны). По заданию необходимо, чтобы при изменении в форме в поле Страна происходило изменение Код_страны в таблице авторы. Для решение нужно использовать только запросы и макросы. Понимаю, что нужно по названию страны на форме определить ее код, поместить это значение во временную переменную и потом задать его в таблицу авторы в столбец Код_страны. Но не могу реализовать на практике. Не совсем понимаю с помощью какой функции можно по названию страны определить ее код. Буду благодарен за помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 13:17 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
Danil_255555, Если Вы измените страну в таблице со стороны 1(тбл.страны) то уже записанному коду будет соответствовать страна соответствующая коду в тбл.авторы. В форме же на тбл.авторы поле [кодСтраны]должно быть полем подстановки -меняйте страну в записи сколь угодно. Фсё... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 14:47 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
sdku, Вы не совсем верно поняли вопрос. На форме есть Поле Комбинированное, в котором содержится код автора и идет выборка всех остальных параметров (ФИО, рожд, умер, страна). Соотвественно просто изменив страну в форме, в таблице Авторы код страны не изменится. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 14:53 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
Давайте уточним.. Ваша "форма про писателей" - что является ее источником данных? Таблица "авторы"? Что представляет из себя поле "Страна"? Поле со списком? Если да, то его источник строк - таблица "страны"? Связанный столбец - "код" (счетчик)? Если все так, то ничего больше не надо. Когда вы в списке выбрали другую страну, то ее код запишется в поле "Код_страны" источника, т.е. таблицы "авторы". Если я угадал, то опишите подробнее о "На форме есть Поле Комбинированное, в котором содержится код автора и идет выборка всех остальных параметров (ФИО, рожд, умер, страна).". Я этого не понял. ЗЫ. "Для решение нужно использовать только запросы и макросы." - что за дебильное задание? О макросах я вообще молчу, но как же функции? Например, зная название страны, ее код можно получить функцией DLookup и использовать ее в запросе на обновление. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 15:27 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, Источником данных является таблица Авторы, поле страна это элемент Поле. его значение определяется следующим кодом: arg = "SELECT Название, Флаг FROM Страны WHERE Код = " & Me.Комбинированная0.Column(6) Set rst = CurrentDb.OpenRecordset(arg) Me.Поле17 = rst!Название rst.Close Выбор Остальных полей через поле комбинированное идет следующим образом: Me.Поле5 = Me.Комбинированная0.Column(2) (Имя) Me.Поле7 = Me.Комбинированная0.Column(3) (Отчество) Me.Поле9 = Me.Комбинированная0.Column(4) (родился) Me.Поле11 = Me.Комбинированная0.Column(5) (умер) В самом комбинированном поле отображается фамилия. Функции тоже можно использовать, это не запрещается. Я думал насчет функции Dlookup, но не совсем понимаю, как с ее помощью по названию страны определить ее код. Если подскажите как составить ее, то буду благодарен. Название страны указывается в Поле17. В таблице Страны есть три колонки: Код, Название, Флаг. В таблице Авторы имеются поля: Фамилия, Имя, Отчество, Родился, Умер, Код_страны. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 15:39 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
Вообще ничего не понятно-Вы лучше выложите,что наработали (сдается мне что Вы все усложняете и "заблудились в 3 соснах") ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 16:24 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
А что записывается (какое значение) и что является данными поля Me.Комбинированная0? И что за Me.поле17 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 16:46 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
sdku, Me.Комбинированная0.RowSource = _ " SELECT А.Код, А.Фамилия, А.Имя, А.Отчество, А.Год_рождения, А.Год_смерти, А.Код_страны" & _ " FROM Авторы as А INNER JOIN Произведения as П ON А.Код = П.Код_автора" & _ " WHERE " & century19 & " OR " & century20 & " OR " & century21 & _ " GROUP BY А.Код, А.Фамилия, А.Имя, А.Отчество, А.Год_рождения, А.Год_смерти, А.Код_страны" & _ " HAVING " & country & _ " ORDER BY Фамилия" В Поле17 отображается название страны. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 17:01 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
Danil_255555 .....Я думал насчет функции Dlookup, но не совсем понимаю, как с ее помощью по названию страны определить ее код. Код: vbnet 1. 2.
при этом в COMBO должен записываться код,а уж отображать в нем можете любое поле Рекомендую почитать HELP про COMBOBOX и понять его работу ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 17:05 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
sdku, в combobox и записан код автора ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 17:18 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
sdku, я не могу выложить сюда базу, даже в виде архива ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 17:19 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
Danil_255555 sdku, в combobox и записан код автора ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 17:34 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
sdku, прочитай еще раз оба отрывка кода и поймешь ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 17:36 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
Danil_255555, вы эту форму сами создавали или получили в виде задания? Если "Источником данных является таблица Авторы", то все поля на форме (Имя,Отчество.родился и т.д.) можно привязать непосредственно к полям источника и благополучно редактировать. А "Страна" должно быть поле со списком (как писалось выше). Вот это ваше "Комбинированная0" в привычных терминах, видимо, тоже поле со списком или список. Зачем так сделано - не понимаю, если конечно, таблица Авторы не служит источником строк этого списка, а форма свободная (без источника записей). Может базу выложите? Насчет Dlookup: Код: vbnet 1.
Эта конструкция вернет вам значение кода из записи с названием "РФ". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 17:41 |
|
Макросы и Запросы access
|
|||
---|---|---|---|
#18+
Danil_255555 ....Источником данных является таблица Авторы, поле страна это элемент Поле. его значение определяется следующим кодом:... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2020, 20:04 |
|
|
start [/forum/topic.php?fid=45&fpage=19&tid=1610161]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 130ms |
0 / 0 |