|
#1
|
|||
|
|||
Фильтрация
Здравствуйте. В общем, имеется БД MS Access, в которой 4 таблицы: delivery(id, stock_num, asset_name, id_sort, amount, id_units, sum, del_date, id_pic), units(id, unit_name), sort(id, sort_name, sort_number) и pic(id, pic_name, pic_post). Таблицы units, sort и pic являются справочниками для таблицы delivery (думаю, понятно, по каким полям они связаны). В Delphi создал форму для добавления/удаления данных, в которой находится DBGrid, кнопки и компоненты для работы с БД. В ADOTable таблицы delivery для отображения в DBGrid скрыл поля id, id_sort, id_units, id_pic; но добавил LookUp поля sort, units, pic, в которых данные из одноименных таблиц нужных мне полей. Занес данные в таблицу. Далее, на другой форме имеется DBGrid, DBLookupComboBox, ADOQuery и два DataSource. DBLookupComboBox принимает данные из таблицы sort. Мне нужно сделать так, чтобы при выборе в DBLookupComboBox в DBGrid отображались записи, в которых есть выбранное название.
Написал такой код: Код:
procedure TForm1.DBLookupComboBox1Click(Sender: TObject); begin ADOQuery1.SQL.text:='select * from delivery where sort='+char(39)+''+DBLookupComboBox1.text+''+char(39) +''; ADOQuery1.Open; end; Я в БД нуб и, в основном, все делал по примерам. Сорри, если много лишнего написал. |
#2
|
|||
|
|||
Код:
ADOQuery1.SQL.text:='select * from delivery where id_sort=' + DBLookupComboBox1.KeyValue; |
#3
|
|||
|
|||
Сделал. Вылетела ошибка "Could not convert variant of type (UnicodeString) into type (Double)"
Как его использовать? |