powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос в Access из приложения
12 сообщений из 12, страница 1 из 1
Запрос в Access из приложения
    #39549889
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Есть маленькая база данных 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
Запрос в Access из приложения
    #39549890
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запрос в Access из приложения
    #39549903
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Построй запрос в построителе... рисовать коды - не твоё.

В построитель три таблицы, нужные поля связать, нужные поля вывода выбрать, проверить результат, посмотреть SQL-код запроса.
...
Рейтинг: 0 / 0
Запрос в Access из приложения
    #39549911
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Запрос в Access из приложения
    #39549935
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkпостроитель так построилНу вообще-то первые два поля следовало брать немного из других таблиц...
...
Рейтинг: 0 / 0
Запрос в Access из приложения
    #39550002
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Запрос в Access из приложения
    #39550045
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное, всё-таки типа
Код: sql
1.
2.
3.
4.
5.
SELECT 
	Бренды.Наименование AS Бренд, 
	Города.Наименование AS Город,
	План.Январь, 
...
...
Рейтинг: 0 / 0
Запрос в Access из приложения
    #39550054
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaНаверное, всё-таки типа
Код: sql
1.
2.
3.
4.
5.
SELECT 
	Бренды.Наименование AS Бренд, 
	Города.Наименование AS Город,
	План.Январь, 
...


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


Если ошибаюсь, то поправьте меня.
...
Рейтинг: 0 / 0
Запрос в Access из приложения
    #39550581
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пусть в приложении на форме есть 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
Запрос в Access из приложения
    #39551469
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А построитель так построил
Код: 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
Запрос в Access из приложения
    #39551471
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обратил внимание, что в конструкторе при построении запроса не соответствие. А в таблице "План" для полей "Бренд" и "Город" подстановки правильные. Почему так?
...
Рейтинг: 0 / 0
Запрос в Access из приложения
    #39551474
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя ранее подстановку менял у обоих полей. Может после изменения в подстановке надо еще где то и что то менять, чтобы связи правильные сохранялись?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос в Access из приложения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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