Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2013, 14:57   #1
Ягодка
Пользователь
 
Аватар для Ягодка
 
Регистрация: 11.02.2013
Сообщений: 32
Радость Отправить данные из DBGrid в StringGrid и при этом присвоить значение "0" тем строкам, которые НЕ встречаются в одной из таблиц БД

Добрый вечер, уважаемые форумчане!
У меня есть БД (создана в MS Access), схема данных которой изображена на рисунке "bd.jpg".
Там есть таблицы "Поставщики", "Ремонт", "Оборудование". Эти таблицы самые важные) Мне необходимо заполнить таблицу StringGrid следующими данными: "№ поставщика", "Наименование поставщика", "Общее количество техники", "Общая продолжительность гарантии", "Общая стоимость ремонта". Но поставщики-то у меня есть хорошие и нехорошие
Хорошие поставщики не входят в таблицу "Ремонт" моей БД, а нехорошие-в неё заносятся. Проблема в том, что тем поставщикам, кто не входит в таблицу "Ремонт", нужно в поле "Общая стоимость ремонта" в StringGrid-е присвоить значение "0" (они же хорошие и мы не потратили на ремонт их техники наши денежки )
Я смогла сделать следующее - это изображено на скрине моего приложения "exe.jpg":
Отбираются поставщики, чьё оборудование сломалось, и сумма затраченных на ремонт денег.
Это делается с помощью текста запроса:
Код:
Select
[Поставщик].[№ поставщика], [Поставщик.Наименование поставщика],
sum ([Ремонт].[Стоимость]) as [Общая стоимость ремонта]
from [Оборудование], [Поставщик], [Ремонт]
where [Оборудование].[№ серийный]=[Ремонт].[№ серийный]
and [Поставщик].[№ поставщика]=[Оборудование].[№ поставщика]
group by [Поставщик].[№ поставщика],
[Поставщик].[Наименование поставщика]
Отбираются поставщики, чьё оборудование не сломалось.
Это делается с помощью текста запроса:
Код:
Select [Оборудование].[№ серийный], [Оборудование].[Наименование],
[Оборудование].[Количество], [Оборудование].[Стоимость],
[Оборудование].[Продолжительность гарантии],
[Поставщик].[№ поставщика], [Поставщик.Наименование поставщика]
from [Оборудование], [Поставщик]
where [№ серийный] not in (Select [№ серийный] from [Ремонт])
and [Поставщик].[№ поставщика]=[Оборудование].[№ поставщика]
order by [Поставщик].[№ поставщика]
Отбираются все поставщики и общее количество техники и общая продолжительность гарантии, которую они нам предоставили.
Это делается с помощью текста запроса:
Код:
select [Поставщик].[№ поставщика],
[Поставщик].[Наименование поставщика],
sum([Оборудование].[Количество]) as [Общее количество],
sum ([Оборудование].[Продолжительность гарантии]) as [Общая гарантия]
from [Оборудование], [Поставщик]
where [Поставщик].[№ поставщика]=[Оборудование].[№ поставщика]
group by [Поставщик].[№ поставщика],
[Поставщик].[Наименование поставщика]
В StringGrid я сумела занести только "№ поставщика", "Наименование поставщика", "Общее количество техники", "Общая продолжительность гарантии", с помощью вот этого кода:
Код:
var
i,j:integer;
begin
j := 1;
DBGrid3.DataSource.DataSet.First;
while not DBGrid3.DataSource.DataSet.Eof do
begin
for i := 0 to DBGrid3.Columns.Count - 1 do
begin
StringGrid1.Cells[i, j] := DBGrid3.DataSource.DataSet.Fields[i].AsString;
end;
Inc(j);
DBGrid3.DataSource.DataSet.Next;
StringGrid1.RowCount:=StringGrid1.RowCount + 1 ;
end;
StringGrid1.RowCount:=StringGrid1.RowCount -1;
end;
Но как запихнуть последним столбцом в StringGrid поле "Общая стоимость ремонта", да ещё чтоб соответствующим нехорошим поставщикам присваивалась сумма денег, которые мы потратили, ремонтируя их барахло, а хорошим поставщикам-присвоились просто нолики - вот это я не знаю.
П.с.: и кстати, когда жму на кнопку - в StringGrid кроме нужных мне значений почему-то ещё пристраиваются несколько лишних пустых строк.Как избежать этого?
Изображения
Тип файла: jpg bd.jpg (198.2 Кб, 115 просмотров)
Тип файла: jpg exe.jpg (232.3 Кб, 118 просмотров)
Вложения
Тип файла: rar Программа.rar (353.9 Кб, 11 просмотров)
Ягодка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
1. Присвоить переменной значение ячейки, находящейся в ТЕКУЩЕМ ряду в столбце "E" 2.Вопрос по автофильтру Павел-812 Microsoft Office Excel 6 27.07.2011 10:32
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Считывание строк из файла. перемещение по строкам "веред"-"назад" Larkin. Помощь студентам 2 15.06.2009 17:58
как разделить данные в одной ячейке, которые разделены ";", на строки? Margaritka Microsoft Office Excel 2 10.03.2009 20:16
при выполнении запроса в столбце "Дата сдачи" оставить даты, которые соответствуют введенному месяцу klukva666 Microsoft Office Access 5 10.03.2008 17:52