работа с таблицами DBGrid

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
eHexe
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 17
Зарегистрирован: 17.02.2011 (Чт) 12:26
Откуда: замкадыш

работа с таблицами DBGrid

Сообщение eHexe » 22.02.2011 (Вт) 15:27

Подскажите, пожалуйста:
В базе на Аксесс в Табл.2 Поле_N2 подтягивается 2 значения из Табл.1 — Поле_N1 и Поле_N1_ID (второе скрытое).
При работе в самой базе Аксесс нормально выбираются данные из видимого поля Поле_N1, а вот при выполнении SQL-запросов или работе элементов типа DBGrid, отображаются элементы поля Поле_N1_ID.
Вопрос: возможно ли отображать необходимые данные или придется убирать Поле_N1_ID из Поля_N2?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: работа с таблицами DBGrid

Сообщение Денис » 24.02.2011 (Чт) 9:05

Текст запроса в студию!
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

eHexe
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 17
Зарегистрирован: 17.02.2011 (Чт) 12:26
Откуда: замкадыш

Re: работа с таблицами DBGrid

Сообщение eHexe » 24.02.2011 (Чт) 9:30

В данном случае запроса нет. DBGrid отображает всю таблицу Аксесс, но в колонках содержащих ключевое поле + текстовое поле, отображает ключевое, вместо текстового
таблица в Аксесс выглядит так:
Изображение

а в DBGrid так:
Изображение

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: работа с таблицами DBGrid

Сообщение Денис » 24.02.2011 (Чт) 10:40

eHexe писал(а):ключевое поле + текстовое поле

Что это значит? Как может быть в одной "колонке" два поля?

Из рисунков не видно, что у тебя есть, что тебе нужно, и что не устраивает.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

eHexe
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 17
Зарегистрирован: 17.02.2011 (Чт) 12:26
Откуда: замкадыш

Re: работа с таблицами DBGrid

Сообщение eHexe » 24.02.2011 (Чт) 10:46

Аксесс позволяет, с помощью мастера подстановок, в один столбец новой таблицы выбрать несколько столбцов из связанной и сделать ключевой невидимым. Это удобно, например для проверки прав пользователя, когда в Vb передается код, вместо текста. А стоит ли это делать с другими данными, я не знаю :) Может, где-то потребуется.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: работа с таблицами DBGrid

Сообщение Денис » 24.02.2011 (Чт) 11:08

eHexe писал(а):Аксесс позволяет, с помощью мастера подстановок, в один столбец новой таблицы выбрать несколько столбцов из связанной

Хорошо, что получается в результате работы мастера? Таблица в таблицах или запрос в запросах? Если запрос, то идем в запросы, открываем запрос в SQL режиме и смотрим, что там нагородил мастер, поправляем.

Второе, как грид выводится в VB? Предполагаю, в качестве источника ему приписывается вышеуказанный запрос (или таблица)? Тогда - СЮРПРИЗ - можно конструировать запросы ручками на языке SQL прямо в VB и результат грузить в гриды.

В общем, резюме такое: если уж начала работать с БД, начинай потихоньку изучать SQL. Хотя бы на базовом уровне, типа strS1 = "SELECT " & strF1 & ", " & strF2 & " FROM " & strT1
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

eHexe
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 17
Зарегистрирован: 17.02.2011 (Чт) 12:26
Откуда: замкадыш

Re: работа с таблицами DBGrid

Сообщение eHexe » 24.02.2011 (Чт) 11:18

запросы-то не столь сложно написать, а вот как связать с гридом... Тем более, что в моей версии Vb нормального DBGrig не было, скачала *.OCX, прописала в реестре, он добавляется, но работает криво, пришлось установить True DBGrid, а его описание найти не могу.
в Аксесс запрос выглядит так:
Код: Выделить всё
SELECT [Sotrudniki].[Sotrudnik_ID], [Sotrudniki].[Sotrudnik] FROM Sotrudniki ORDER BY [Sotrudnik];

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: работа с таблицами DBGrid

Сообщение Денис » 24.02.2011 (Чт) 11:36

eHexe писал(а):в Аксесс запрос выглядит так

Ну и? Что тут неясного? Убираем [Sotrudniki].[Sotrudnik_ID] и получаем то, что нам нужно...
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

eHexe
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 17
Зарегистрирован: 17.02.2011 (Чт) 12:26
Откуда: замкадыш

Re: работа с таблицами DBGrid

Сообщение eHexe » 24.02.2011 (Чт) 11:43

А где этот запрос прописывать? Я просто в визуальном режиме в свойстве Data Source элемента True DBGrid выбираю ADO-элемент, в котором указан путь к таблице и вся таблица отображается.
В самом Аксессе убрать не проблема, но а вдруг, где-то понадобится именно ключевое поле?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: работа с таблицами DBGrid

Сообщение Денис » 24.02.2011 (Чт) 11:51

eHexe писал(а):ADO-элемент, в котором указан путь к таблице

Вот у этого элемента есть метод SQL. Если в него вбить текст запроса (или программно собранный присвоить) мы получим на выходе набор записей (recordset по английски) такой же набор записей, который возвращает акцессовский запрос в режиме таблицы.

Если потребуются ключевые поля, а они несомненно потребуются, то их нужно включать в те запросы, которые их потребуют. Не все запросы нужно выводить в гриды, так ведь? В грид же мы выводим визуальные данные и всё. Рассчеты, выборки, поиски, все это делается в программе и скрыто от конечного пользователя.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

eHexe
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 17
Зарегистрирован: 17.02.2011 (Чт) 12:26
Откуда: замкадыш

Re: работа с таблицами DBGrid

Сообщение eHexe » 24.02.2011 (Чт) 16:11

Спасибо, Денис!
Нашла в проперти грида, установки свойств столбцов.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: работа с таблицами DBGrid

Сообщение Денис » 27.02.2011 (Вс) 16:39

eHexe писал(а):Спасибо, Денис!

Эээ... ну, как бы, не за что. Работает и ладно, да?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 76

    TopList