|
Вопрос # 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-а
Приложение: Переключить в обычный режим- procedure TForm1.GetNames();
- var
- x: TStrings;
- i: integer;
- begin
- x:=TstringList.Create;
- ADOConnection.GetTableNames(x,false);
- for i := 0 to x.Count - 1 do
- begin
- ComboBox.Items.Add(x.Strings[i]);
- end;
- ComboBox.ItemIndex:=-1;
- x.Free;
- end;
-
- procedure TForm1.ComboBoxChange(Sender: TObject);
- var
- str: string;
- begin
- ADOQuery.Close;
- ADOQuery.SQL.Clear;
- str:='select * from '+ComboBox1.Items[ComboBox1.ItemIndex];
- ADOQuery.SQL.Add(str);
- ADOQuery.Open;
- end;
-
-
 |
Ответ отправил: Чернышев (статус: 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: Статус вопроса изменён на решённый (изменил автор вопроса — Анучин)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|