Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос в Access из приложения / 12 сообщений из 12, страница 1 из 1
08.11.2017, 20:58
    #39549889
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Access из приложения
Здравствуйте!

Есть маленькая база данных Access и разрабатывается приложение на VB.Net в Visual Studio.

Если запустить такой запрос в Access, то результат как в скриншоте
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT
	Т1.Бренд,
	Т1.Город,
	Т1.Январь,
	Т1.Февраль,
	Т1.Март,
	Т1.Апрель,
	Т1.Май,
	Т1.Июнь,
	Т1.Июль,
	Т1.Август,
	Т1.Сентябрь,
	Т1.Октябрь,
	Т1.Ноябрь,
	Т1.Декабрь
FROM
	План Т1


Но если запустить такой запрос из приложения, то в полях "Бренд" и "Город" присутствуют коды, но не подстановки.

Написал другие варианты запросов, где добавляю колонки "Бренд" и "Город" как наименования.
Первый вариант запроса
Код: sql
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.
SELECT
	ТТТ1.Бренд,
	ТТТ1.Город,
	ТТТ1.Январь,
	ТТТ1.Февраль,
	ТТТ1.Март,
	ТТТ1.Апрель,
	ТТТ1.Май,
	ТТТ1.Июнь,
	ТТТ1.Июль,
	ТТТ1.Август,
	ТТТ1.Сентябрь,
	ТТТ1.Октябрь,
	ТТТ1.Ноябрь,
	ТТТ1.Декабрь,
	ТТТ1.[Наименование бренда],
	ТТТ2.Наименование AS [Наименование города]
FROM
	(SELECT
		ТТ1.Бренд,
		ТТ1.Город,
		ТТ1.Январь,
		ТТ1.Февраль,
		ТТ1.Март,
		ТТ1.Апрель,
		ТТ1.Май,
		ТТ1.Июнь,
		ТТ1.Июль,
		ТТ1.Август,
		ТТ1.Сентябрь,
		ТТ1.Октябрь,
		ТТ1.Ноябрь,
		ТТ1.Декабрь,
		ТТ2.Наименование AS [Наименование бренда]
	FROM	
		(SELECT
			Т1.Бренд,
			Т1.Город,
			Т1.Январь,
			Т1.Февраль,
			Т1.Март,
			Т1.Апрель,
			Т1.Май,
			Т1.Июнь,
			Т1.Июль,
			Т1.Август,
			Т1.Сентябрь,
			Т1.Октябрь,
			Т1.Ноябрь,
			Т1.Декабрь
		FROM
			План Т1) AS ТТ1
	LEFT JOIN
		Бренды  ТТ2
	ON
		ТТ1.Бренд=ТТ2.Код) AS ТТТ1
LEFT JOIN
	Города ТТТ2
ON
	ТТТ1.Город=ТТТ2.Код

Второй вариант запроса
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT
	Т1.Бренд,
	Т1.Город,
	Т1.Январь,
	Т1.Февраль,
	Т1.Март,
	Т1.Апрель,
	Т1.Май,
	Т1.Июнь,
	Т1.Июль,
	Т1.Август,
	Т1.Сентябрь,
	Т1.Октябрь,
	Т1.Ноябрь,
	Т1.Декабрь,
	(SELECT Наименование FROM Бренды WHERE Код = Т1.Бренд) AS [Наименование бренда],
	(SELECT Наименование FROM Города WHERE Код = Т1.Город) AS [Наименование города]
FROM
	План Т1


Скажите, как правильно запускать запрос из приложения, чтобы присутствовали подстановки? Может быть не надо в запросе добавлять еще два поля? Может быть в Visual Studio есть специальное функциональность для учета данного случая, типа своя система подстановок?
...
Рейтинг: 0 / 0
08.11.2017, 21:02
    #39549890
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Access из приложения
...
Рейтинг: 0 / 0
08.11.2017, 21:37
    #39549903
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Access из приложения
Построй запрос в построителе... рисовать коды - не твоё.

В построитель три таблицы, нужные поля связать, нужные поля вывода выбрать, проверить результат, посмотреть SQL-код запроса.
...
Рейтинг: 0 / 0
08.11.2017, 21:54
    #39549911
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Access из приложения
AkinaПострой запрос в построителе.Первый вариант запроса сложный получился.
А построитель так построил
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
SELECT
	План.Бренд,
	План.Город,
	План.Январь, 
	План.Февраль,
	План.Март,
	План.Апрель,
	План.Май,
	План.Июнь,
	План.Июль,
	План.Август,
	План.Сентябрь,
	План.Октябрь,
	План.Ноябрь,
	План.Декабрь
FROM 
	Города 
INNER JOIN 
	(Бренды 
		INNER JOIN План
	ON
		Бренды.Код = План.Город)
ON
	Города.Код = План.Бренд;

...
Рейтинг: 0 / 0
08.11.2017, 22:37
    #39549935
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Access из приложения
ferzmikkпостроитель так построилНу вообще-то первые два поля следовало брать немного из других таблиц...
...
Рейтинг: 0 / 0
09.11.2017, 08:34
    #39550002
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Access из приложения
Akinaferzmikkпостроитель так построилНу вообще-то первые два поля следовало брать немного из других таблиц...
так если
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SELECT 
	План.Бренд, 
	План.Город,
	Бренды.Наименование, 
	Города.Наименование,
	План.Январь, 
	План.Февраль,
	План.Март,
	План.Апрель,
	План.Май,
	План.Июнь,
	План.Июль,
	План.Август,
	План.Сентябрь,
	План.Октябрь,
	План.Ноябрь,
	План.Декабрь
FROM
	Города 
INNER JOIN 
	(Бренды 
		INNER JOIN План ON Бренды.Код = План.Город) ON Города.Код = План.Бренд;

...
Рейтинг: 0 / 0
09.11.2017, 10:13
    #39550045
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Access из приложения
Наверное, всё-таки типа
Код: sql
1.
2.
3.
4.
5.
SELECT 
	Бренды.Наименование AS Бренд, 
	Города.Наименование AS Город,
	План.Январь, 
...
...
Рейтинг: 0 / 0
09.11.2017, 10:39
    #39550054
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Access из приложения
AkinaНаверное, всё-таки типа
Код: sql
1.
2.
3.
4.
5.
SELECT 
	Бренды.Наименование AS Бренд, 
	Города.Наименование AS Город,
	План.Январь, 
...


Из приложения VB.Net с помощью запроса выгружаю таблицу и отображается в DataGridView. Но если надо будет отредактировать строку или удалить, то здесь будут нужны сами коды. Не думаю, что ориентироваться по наименованию это правильно.
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT 
	План.Бренд, 
	План.Город,
	Бренды.Наименование, 
	Города.Наименование,
	План.Январь,
...


Если ошибаюсь, то поправьте меня.
...
Рейтинг: 0 / 0
09.11.2017, 21:51
    #39550581
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Access из приложения
Пусть в приложении на форме есть ComboBox. С помощью объекта OleDbDataReader элементы заполняются запросом
Код: sql
1.
SELECT Наименование From Бренды


Дальше пользователь выбрал конкретный Бренд. Теперь из выбранного бренда нужно выгрузить таблицу в DataGridView запросом
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
SELECT 
	План.Бренд, 
	План.Город,
	Бренды.Наименование, 
	Города.Наименование,
	План.Январь, 
	План.Февраль,
	План.Март,
	План.Апрель,
	План.Май,
	План.Июнь,
	План.Июль,
	План.Август,
	План.Сентябрь,
	План.Октябрь,
	План.Ноябрь,
	План.Декабрь
FROM
	Города 
INNER JOIN 
	(Бренды 
		INNER JOIN План ON Бренды.Код = План.Город) ON Города.Код = План.Бренд;
WHERE
	План.Бренд=SELECT Код FROM Бренды WHERE Наименование ='Бренд1'


Получается через выбранное наименование бренда определяю код бренда. Или как сделать более правильно?
...
Рейтинг: 0 / 0
11.11.2017, 14:50
    #39551469
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Access из приложения
А построитель так построил
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SELECT 
	План.Бренд, 
	План.Город,
	Бренды.Наименование, 
	Города.Наименование,
	План.Январь, 
	План.Февраль,
	План.Март,
	План.Апрель,
	План.Май,
	План.Июнь,
	План.Июль,
	План.Август,
	План.Сентябрь,
	План.Октябрь,
	План.Ноябрь,
	План.Декабрь
FROM
	Города 
INNER JOIN 
	(Бренды 
		INNER JOIN План ON Бренды.Код = План.Город) ON Города.Код = План.Бренд


Кстати, построитель странно построил таблицу. Надо взять главную таблицу "План", а взял справочную - "Города". Да еще INNER использует. В условие ON не соответствующее. В результате по некоторым городам строки отсутствуют.
...
Рейтинг: 0 / 0
11.11.2017, 14:55
    #39551471
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Access из приложения
Обратил внимание, что в конструкторе при построении запроса не соответствие. А в таблице "План" для полей "Бренд" и "Город" подстановки правильные. Почему так?
...
Рейтинг: 0 / 0
11.11.2017, 14:57
    #39551474
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в Access из приложения
Хотя ранее подстановку менял у обоих полей. Может после изменения в подстановке надо еще где то и что то менять, чтобы связи правильные сохранялись?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос в Access из приложения / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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