Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 104

/ вопрос решён /

Здравствуйте, уважаемые эксперты!Подскажите как связать DBCombobox c базой Access, чтобы в нем отображался список таблиц из базы, а после выбора таблицы содержимое появлялось в DBGrid????ПОМОГИТЕ ПЛИЗ!!!!

Анучин Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Анучин (статус: Посетитель)
Вопрос отправлен: 19 марта 2011, 14:23
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: Чернышев

Здравствуйте, Анучин!
для примера у вас на форме находятся:
- ADOConnection
- AdoQuery (подключенный к ADOConnection)
- DataSourse (подключенный к ADOQuery)
- DBGrid (подключенный к DataSourse)
- ComboBox

Здесь 2 процедурыЖ
- GetNames (заполняет ComboBox именами таблиц из базы данных)
- процедура на событие OnChange ComboBox-а

Приложение:
  1. procedure TForm1.GetNames();
  2. var
  3. x: TStrings;
  4. i: integer;
  5. begin
  6. x:=TstringList.Create;
  7. ADOConnection.GetTableNames(x,false);
  8. for i := 0 to x.Count - 1 do
  9. begin
  10. ComboBox.Items.Add(x.Strings[i]);
  11. end;
  12. ComboBox.ItemIndex:=-1;
  13. x.Free;
  14. end;
  15.  
  16. procedure TForm1.ComboBoxChange(Sender: TObject);
  17. var
  18. str: string;
  19. begin
  20. ADOQuery.Close;
  21. ADOQuery.SQL.Clear;
  22. str:='select * from '+ComboBox1.Items[ComboBox1.ItemIndex];
  23. ADOQuery.SQL.Add(str);
  24. ADOQuery.Open;
  25. end;
  26.  
  27.  


Ответ отправил: Чернышев (статус: 1-ый класс)
Время отправки: 19 марта 2011, 15:48
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 10; последнее сообщение — 19 марта 2011, 21:38; участников в обсуждении: 2.

19 марта 2011, 16:24: Вопрос перемещён из тематического раздела Delphi » Прочее в раздел Delphi » Программирование баз данных (БД) модератором Ерёмин А.А.

Анучин

Анучин (статус: Посетитель), 19 марта 2011, 19:25 [#1]:

Чернышев: Незнаю, вроде ввел все так вы написали, но в combobox ничего не появляется(((((((
Анучин

Анучин (статус: Посетитель), 19 марта 2011, 20:54 [#2]:

Народ помогите кто чем может!!!!!
Чернышев

Чернышев (статус: 1-ый класс), 19 марта 2011, 21:01 [#3]:

напиши еще на событие формы OnShow

procedure TForm1.FormShow(Sender: TObject);
begin
  GetNames;
end;
Анучин

Анучин (статус: Посетитель), 19 марта 2011, 21:19 [#4]:

то же не помогает пишет ошибка синтексиса приложении FROM
Анучин

Анучин (статус: Посетитель), 19 марта 2011, 21:22 [#5]:

* в предложении FROM*
Чернышев

Чернышев (статус: 1-ый класс), 19 марта 2011, 21:27 [#6]:

пробел после from не забыл поставить?
Анучин

Анучин (статус: Посетитель), 19 марта 2011, 21:30 [#7]:

нет не забыл
Чернышев

Чернышев (статус: 1-ый класс), 19 марта 2011, 21:31 [#8]:

у меня в это строчке ошибка

str:='select * from '+ComboBox1.Items[ComboBox1.ItemIndex];

не ComboBox1, а ComboBox
и проверь чтоб имена твоих элементов совпадали с теми к которым обращаешься в коде
Анучин

Анучин (статус: Посетитель), 19 марта 2011, 21:32 [#9]:

прога теперь отображает в Combobox названия таблиц, но не показывает их содержимое в DBGrid и выдает эту ошибку: ошибка синтексиса в предложении FROM
Чернышев

Чернышев (статус: 1-ый класс), 19 марта 2011, 21:38 [#10]:

я понял
ошибка происходит вот в этом куске:

str:='select * from '+ComboBox.Items[ComboBox.ItemIndex];

поставь останов на эту строку кода и посмотри чему у тебя равна переменная str

19 марта 2011, 22:08: Статус вопроса изменён на решённый (изменил автор вопроса — Анучин)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:27
Выполнено за 0.03 сек.