|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
Здравствуйте люди добрые. Думаю что задача яйца выеденного не стоит для специалистов и должна нормально гуглится только я вопрос нормально сформулировать не могу :( Ключевая фраза фрагменты которой использовал для поиска - Как в форме Access получить значения расстояния между двумя городами вводя их названия в произвольном порядке и нe делая при этом в таблице двух записей с разной очерёдностью названий и одним и тем-же расстоянием. Имеется таблица. Назовём её [Расстояния_между_городами]. В ней содержатся столбцы: [ID] - Счётчик [Город1] - числовое поле (значение из справочника [Города]) [Город2] - числовое поле (значение из справочника [Города]) [Расстояние] - числовое поле (заполняется вручную) [Город1] не может быть равен [Город2] Задача: 1- В Форме в поле [Город_Отбытия] - выбираем в разворачивающемся списке город (думаю что нужно брать из справочника Города) 2 - В Форме в поле [Город_Прибытия] - выбираем в разворачивающемся списке соответстуещее значение из таблицы [Расстояния_между_городами] Содержаться это значение может и в [Город1] и в [Город2] 3 - В Форме после введения информации в поле [Город_Прибытия] обновляется поле [Расстояние] (значение берется соответственно из [Расстояние Между Городами]![ Расстояние]) Не то чтобы воoбще не вижу никакого решения но в голову всякая фигня лезет. Например 2 раза вводить значения в таблицу [Расстояния_между_городами] в разном порядке. В VBA и SQL не мостак. пользуюсь макросами и конструктором запросов. Тапками пожлуйста не кидайтесь. Пример не выкладываю так как база не на русском и не на английском. Если без примера никак то навояю специально. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 01:22 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
Mushketior1980, в самом простейшем случае воспользуйся запросом на объединение ( UNION ALL ). Возьми одну и ту же таблицу и сделай реверс. Типо так Код: sql 1. 2. 3.
Сделай этот запрос источником для формы и фильтруй по полям [Город1], [Город2] . ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 04:06 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
Mushketior1980, Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 12:30 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
С такой схемой все упростится: ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 12:52 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
Панург, С запросом на объединение всё ок! Спасибо!!! Можно поподробнее о форме... Данные нужно вывести в форме связанной с другой таблицей. Делаю так : 1- поле [Город1] : SELECT Город.ID, Город (справочник) FROM Город; Работает 2- поле [Город2] SELECT Запрос_Город _Объединение.Город_2, Город.Город_Название FROM Город RIGHT JOIN Запрос_Город _Объединение ON Город.ID =Запрос_Город_Объединение.Город2 WHERE ((( Запрос_Город_Объединение.Город1)=[Формы]![Форма_В_Которой_Нужны_Данные]![Город1])); Работает но почему то двоятся данные Теперь вопросы: 1- Как вывести расстояние в отдельное поле? (если бы можно было связать таблицу и запрос всё было бы просто и понятно) 2- Почему двоятся данные в поле Город2 (варианты связи в конструкторе запросов пробовал все) 3- С этого в общем то надо было начать... А не занимаюсь ли я фигнёй? Может всё надо было сделать как-то по другому? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 14:08 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
sdku, Дико благодарен за пример! К сожалению я наверно плохо объяснил какой результат нужно получить или просто ещё не готов воспринять ту мудрость которая в этом примере заключена. Нужно с помощью формы которая построена на таблице Подчинённая_форма _Инвойс_Данные сгенерировать следующую строку "Командировка Город1-Город2" "расстояние" "стоимость за км" "сумма" Очерёдность действий: 1-Выбираем город1 2-Выбираем город2 - после этого обновляеются поля вычислений и текстовое поле которое отвечает за "Командировка Город1-Город2" 3-Жмём кнопку - запись сохраняется, форма закрывается. И вот теперь если можно на промере или текстом по подробнее - К какому именно месту присобачить данный ВБА код. то что на событие после обновления я уже догодался сам :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 14:41 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
вернее так: ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 14:52 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
может что то такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2018, 17:18 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
alecko, Доброго врмени суток! Прошу прощения то что так надолго бросил топик с не закрытым вопросом. Спасибо за пример. Для новичка в ВБА там очень много кода но то с чем борюсь осталось не решенным. Хочется чтобы в таблицу расстояние между городами вводилось только 1 раз (Город 1 - Город2 - Расстояние ) а в форму можно было бы вводить в любом порядке: Город 1 - Город2 =Расстояние Город 2 - Город1 = Расстояние Пока пытаюсь идти таким путём: Private Sub Trip_City_Arrival_Change() Me.Trip_City_Distance = DLookup("[Trip_City_Distance]", "Trip", "[Trip_City_Departure] = " & Me.Trip_City_Departure & " AND [Trip_City_Arrival] = " & Me.Trip_City_Arrival) Me.Invoice_Data_Name = " Iškvietimo mokestis " & DLookup("[Country_City_Name]", " Trip ", "[Country_City_ID]=" & Me.Trip_City_Departure) & " - " & DLookup("[Country_City_Name]", " Trip ", "[Country_City_ID]=" & Me.Trip_City_Arrival) & " " & Me.Ïîëå41 & "%" End Sub Но это без реверса :( ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2018, 03:18 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
alecko, Доброго врмени суток! Прошу прощения то что так надолго бросил топик с не закрытым вопросом. Спасибо за пример. Для новичка в ВБА там очень много кода но то с чем борюсь осталось не решенным. Хочется чтобы в таблицу расстояние между городами вводилось только 1 раз (Город 1 - Город2 - Расстояние ) а в форму можно было бы вводить в любом порядке: Город 1 - Город2 =Расстояние Город 2 - Город1 = Расстояние Пока пытаюсь идти таким путём: Private Sub Trip_City_Arrival_Change() Me.Trip_City_Distance = DLookup("[Trip_City_Distance]", "Trip", "[Trip_City_Departure] = " & Me.Trip_City_Departure & " AND [Trip_City_Arrival] = " & Me.Trip_City_Arrival) Me.Invoice_Data_Name = " Iškvietimo mokestis " & DLookup("[Country_City_Name]", " Trip ", "[Country_City_ID]=" & Me.Trip_City_Departure) & " - " & DLookup("[Country_City_Name]", " Trip ", "[Country_City_ID]=" & Me.Trip_City_Arrival) & " " & Me.Ïîëå41 & "%" End Sub Но это без реверса :( Пробовал таким же образом обратиться не к таблице Trip а к запросу на объединение Trip_union по примеру Панург, но вба ругается. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2018, 03:29 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
Mushketior1980, у меня ошибка была (жертва рефакторинга) поправил и добавил комментарии. десяток строк кода не может быть много, а с комментариями должно быть понятнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2018, 10:21 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
воспользовался предыдущим примером ( 21750916 ), код весь выкинул. Считает во всех направлениях. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2018, 10:53 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
Панург, alecko, И все другие кто был не равнодушен. Спасибо добрые Люди! Простенько и со вкусом :) Как для Access чайника то проще может быть только если кто знает как макрос какой применить :) У меня всё работает , всем доволен. В моем коде обращение к запросу не удавалось потому что между кавычкой и именем запроса пробел был. Вроде и не маленький экран у ноута но начал задумываться о приобретении бу imac 27. Моделька 11 года с и5 гляжу в районе 350 - 400 евро стоит. Походу зрение и время дороже.... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2018, 11:55 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
С реверсом, редактированием, выбрать одинаковые названия городов невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2018, 12:32 |
|
Как в форме Access получить значения расстояния между двумя городами.
|
|||
---|---|---|---|
#18+
alecko, Спасибо ещё раз. для меня пока что разница между этим примером и примером через запрос примерно такая же как для человека не знающего языка объясниться в чужой стране. Через запрос это как - Привет! - показываешь пальцем, чавкаешь - Еда! Ам-Ам. Через твои пример - Извините пожалуйста Уважаемый! Не были бы вы так добры утолить мои голод обедом из трёх блюд и чашечкой кофе!? Да знаю учить ВБА надо но уже столько удалось сделать с помощью макросов что думаю обойтись без него. Итак сил на все нехватет. Взялся за эту задачу просто от безысходности. Трудно попросить кого то сделать то что сам додумываешь в процессе использования. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2018, 14:56 |
|
|
start [/forum/topic.php?fid=45&fpage=40&tid=1611002]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 136ms |
0 / 0 |