Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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


Ответ
 
Опции темы
Старый 20.02.2010, 19:35   #1
deadneoo
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 16
По умолчанию КАК открыть базу данных находящихся в другой форме

Программа запускается но база данных не показывается что не правильно:
Код:
procedure TForm3.Button1Click(Sender: TObject);
var DBLookupComboBox1:string;
begin
if  DBLookupComboBox1 = 'комбинат' then begin
 form4.adotable2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\диплом\20093rv;Persist Security Info=False';
 form4.adotable2.Active:=true;
end;
end;
У нас принято оформлять код специальным тэгом - при помощи кнопочки "#".
Только...
И не значком #.
И не РНР-кодом.
И не значком цитаты.
И не собственными "ручками".
Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор

Последний раз редактировалось Stilet; 22.02.2010 в 10:47.
deadneoo вне форума Ответить с цитированием
Старый 20.02.2010, 20:15   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,916
По умолчанию

DBLookupComboBox1 - внутренняя переменная процедуры Button1Click, как ей присваивается значение 'комбинат' ?
Просто условие тогда не выполниться.
Кому iPhone и Swarovski, кому Афон и Саровский...
Kotofff вне форума Ответить с цитированием
Старый 20.02.2010, 20:40   #3
deadneoo
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 16
По умолчанию

Подскажите или намекните как сделать мне очень надо, а если через dbcombobox

Последний раз редактировалось deadneoo; 20.02.2010 в 21:14.
deadneoo вне форума Ответить с цитированием
Старый 22.02.2010, 09:47   #4
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Цитата:
Подскажите или намекните как сделать мне очень надо, а если через dbcombobox
если можно детельно опиши что тебе нужно получить и из чего
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 22.02.2010, 18:56   #5
deadneoo
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 16
По умолчанию

У меня просто надо выбрать из таблицы название предприятие и включить на другой форме базу данных
deadneoo вне форума Ответить с цитированием
Старый 23.02.2010, 09:59   #6
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Код:
while not adotable1.eof do
 begin
  combobox1.items.add(adotable1.fieldbyname('[имя _поля_с_названиями_предприятий]').value);
 adotable1.next;
 end;
таким образом заполняется combobox1 названия всех предприятий что есть в таблице adotable1.

на событие combobox1 onChange вешаем такой код:
Код:
if combobox1.text='[название_предприятия]'
 then 
  begin
    form4.adotable2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\диплом\20093rv\'+combobx1.text+'.mdb'+';Persist Security Info=False'; // это при условии что ты используешь СУБД access и для каждого предприятия у тебя создана отдельно база.
    form4.Adotable2.tablename:='[имя_таблицы_к_которой_нужно_подключить_компонент ]' ;
    form4.adotable2.active:=true;
  end;
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 23.02.2010, 17:20   #7
deadneoo
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 16
По умолчанию

И большое спасибо !!!!У меня еще один вопрос а если их будет два или три combobox как тогда.
Просто мне надо из одного combobox выбрать предприятие из другого год, а из третьего квартал и только тогда запустить базу данных
И еще мне надо посчитать сумму по столбцам в базе данной и записать в саму бд это возможно

Последний раз редактировалось deadneoo; 23.02.2010 в 17:25.
deadneoo вне форума Ответить с цитированием
Старый 23.02.2010, 19:17   #8
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 306
По умолчанию

вижу Вы храните таблици в разных базах, ИМХО это зря.
для того что бы усложнить условия выборка по году\предприятию лучше делать через SQL точнее компонент ADOQuery, выглядеть будет примерно так:


Код:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM firms where year=' + year_edit.text + ' and firm_name=' + firm_name.text);
ADOQuery1.Open;
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!
DarkEvil вне форума Ответить с цитированием
Старый 23.02.2010, 19:18   #9
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

исправлюсь, в предыдущем посте можно обойтись и без If
Код:
     form4.adotable2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\диплом\20093rv\'+combobx1.text+'.mdb'+';Persist Security Info=False'; // это при условии что ты используешь СУБД access и для каждого предприятия у тебя создана отдельно база.
    form4.Adotable2.tablename:='[имя_таблицы_к_которой_нужно_подключить_компонент ]' ;
    form4.adotable2.active:=true;

Цитата:
У меня еще один вопрос а если их будет два или три combobox как тогда.
тада можно использовать вот такой SQLь:
Код:
 
  select <указать_поля которые_нужно отобразить> from [имя_таблицы]
   where [поле_с_названием_предприятия]=<название_предприятия>
   and [поле_с_годами]=<год> 
   and [поле_с_кварталами]=<квартал>
ну что-то типа такого...
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 24.02.2010, 14:35   #10
deadneoo
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 16
По умолчанию

Спасибо огромное выручили у меня еще один вопрос как посчитать сумму столбцов и записать в базу данных типа итого
deadneoo вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме от 7000 рублей в месяц



Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Много форм в проекте. Как открыть одну из другой? TwiX Общие вопросы Delphi 7 25.08.2009 20:59
Как программу интегрировать (открыть, показать) в другой программе rangel Общие вопросы Delphi 2 06.05.2009 10:57
Access 97, открыть базу данных Access alexhol Microsoft Office Access 0 27.04.2009 11:10
Открыть базу данных MogilShik Помощь студентам 3 11.10.2007 16:11


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Скидки на курсы GeekBrains 40%, выбирайте программу для себя