powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Макросы и Запросы access
16 сообщений из 16, страница 1 из 1
Макросы и Запросы access
    #39941325
Danil_255555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть проблема.
Существует форма про писателей, в которой есть поля (ФИО, дата рождения, дата смерти, Страна). Есть две связанных таблицы: авторы и страны. В авторах указывается ФИО, Годы рождения и смерти и код страны, а в таблице страны: код (счетчик) и название. Соответственно связь осуществляется по полям Код_страны(авторы) ---Код(страны).
По заданию необходимо, чтобы при изменении в форме в поле Страна происходило изменение Код_страны в таблице авторы. Для решение нужно использовать только запросы и макросы. Понимаю, что нужно по названию страны на форме определить ее код, поместить это значение во временную переменную и потом задать его в таблицу авторы в столбец Код_страны. Но не могу реализовать на практике. Не совсем понимаю с помощью какой функции можно по названию страны определить ее код. Буду благодарен за помощь
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941368
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danil_255555,
Если Вы измените страну в таблице со стороны 1(тбл.страны) то уже записанному коду будет соответствовать страна соответствующая коду в тбл.авторы. В форме же на тбл.авторы поле [кодСтраны]должно быть полем подстановки -меняйте страну в записи сколь угодно.
Фсё...
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941375
Danil_255555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku, Вы не совсем верно поняли вопрос. На форме есть Поле Комбинированное, в котором содержится код автора и идет выборка всех остальных параметров (ФИО, рожд, умер, страна). Соотвественно просто изменив страну в форме, в таблице Авторы код страны не изменится.
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941402
Давайте уточним..
Ваша "форма про писателей" - что является ее источником данных? Таблица "авторы"?
Что представляет из себя поле "Страна"? Поле со списком? Если да, то его источник строк - таблица "страны"? Связанный столбец - "код" (счетчик)?
Если все так, то ничего больше не надо. Когда вы в списке выбрали другую страну, то ее код запишется в поле "Код_страны" источника, т.е. таблицы "авторы".

Если я угадал, то опишите подробнее о "На форме есть Поле Комбинированное, в котором содержится код автора и идет выборка всех остальных параметров (ФИО, рожд, умер, страна).". Я этого не понял.

ЗЫ. "Для решение нужно использовать только запросы и макросы." - что за дебильное задание? О макросах я вообще молчу, но как же функции? Например, зная название страны, ее код можно получить функцией DLookup и использовать ее в запросе на обновление.
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941410
Danil_255555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий,

Источником данных является таблица Авторы, поле страна это элемент Поле. его значение определяется следующим кодом:
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. В таблице Страны есть три колонки: Код, Название, Флаг. В таблице Авторы имеются поля: Фамилия, Имя, Отчество, Родился, Умер, Код_страны.
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941434
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще ничего не понятно-Вы лучше выложите,что наработали
(сдается мне что Вы все усложняете и "заблудились в 3 соснах")
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941445
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что записывается (какое значение) и что является данными поля Me.Комбинированная0? И что за Me.поле17
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941452
Danil_255555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Me.Комбинированная0.RowSource = _
" SELECT А.Код, А.Фамилия, А.Имя, А.Отчество, А.Год_рождения, А.Год_смерти, А.Код_страны" & _
" FROM Авторы as А INNER JOIN Произведения as П ON А.Код = П.Код_автора" & _
" WHERE " & century19 & " OR " & century20 & " OR " & century21 & _
" GROUP BY А.Код, А.Фамилия, А.Имя, А.Отчество, А.Год_рождения, А.Год_смерти, А.Код_страны" & _
" HAVING " & country & _
" ORDER BY Фамилия"
В Поле17 отображается название страны.
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941454
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danil_255555
.....Я думал насчет функции Dlookup, но не совсем понимаю, как с ее помощью по названию страны определить ее код.
Код: vbnet
1.
2.
названиеСтраны=Dlookup("страна","тблСтраны","код=" & Me.combo)
код=Dlookup("код","тблСтраны","страна='" & StrNazv & "'"

при этом в COMBO должен записываться код,а уж отображать в нем можете любое поле
Рекомендую почитать HELP про COMBOBOX и понять его работу
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941457
Danil_255555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
в combobox и записан код автора
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941458
Danil_255555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
я не могу выложить сюда базу, даже в виде архива
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941459
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941465
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danil_255555
sdku,
в combobox и записан код автора
код автора записан в поле [код].[[авторы],а в это поле должен быть записан кодСтраны-коль речь о стране
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941467
Danil_255555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku, прочитай еще раз оба отрывка кода и поймешь
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941470
Danil_255555, вы эту форму сами создавали или получили в виде задания?
Если "Источником данных является таблица Авторы", то все поля на форме (Имя,Отчество.родился и т.д.) можно привязать непосредственно к полям источника и благополучно редактировать. А "Страна" должно быть поле со списком (как писалось выше).
Вот это ваше "Комбинированная0" в привычных терминах, видимо, тоже поле со списком или список. Зачем так сделано - не понимаю, если конечно, таблица Авторы не служит источником строк этого списка, а форма свободная (без источника записей).
Может базу выложите?

Насчет Dlookup:
Код: vbnet
1.
Код = Dlookup('[Код]","[страны]","[название]='" & "РФ" & "'")


Эта конструкция вернет вам значение кода из записи с названием "РФ".
...
Рейтинг: 0 / 0
Макросы и Запросы access
    #39941504
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danil_255555

....Источником данных является таблица Авторы, поле страна это элемент Поле. его значение определяется следующим кодом:...
Значение поля не должно определяться каким либо кодом(кроме проверки валидности) или вычислениями. Наличие в таблице вычисляемого поля есть ооочень не правильно и все поля таблиц должны хранить данные,заносимые ручками оператора, и не зависеть от данных в других полях(таблицах)-одно из основных правил "базостроения"
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Макросы и Запросы access
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]