Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Как сделать привязку Excel к Combobox?  [new]
EasyCode
Member

Откуда:
Сообщений: 7
Здравствуйте.
Имеется таблица Excel и 2 комбобокса.
Вопрос: как связать excel и combobox следующим образом: чтобы в каждом из комбобоксов можно было выбрать любой город из списка excel. То есть допустим Анапа(1 комбобокс) и Альметьевск(2 комбобокс) И чтобы значение пересекающегося между этими ячейками поля было присвоено какой-либо переменной, например X. То есть X будет в данном случае "1958". Это для примера.
Скрин части таблицы: https://ibb.co/fVfoDA
23 окт 18, 21:58    [21712822]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать привязку Excel к Combobox?  [new]
rgreat
Member

Откуда:
Сообщений: 4498
http://www.delphisources.ru/pages/faq/base/excel_work.html
23 окт 18, 22:31    [21712838]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать привязку Excel к Combobox?  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3862
ADOConnection можно подключить к файлу с экселем и дальше использовать его как таблицу базы, выведя данные в тот же DBComboBox.
23 окт 18, 22:33    [21712839]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать привязку Excel к Combobox?  [new]
EasyCode
Member

Откуда:
Сообщений: 7
Добрый день.
Возникла проблема еще одна. Уже подключил Excel к форме через AdoConnection, добавил DataSource и DataSet.
Как добавить SQL запрос такой, чтобы при нажатии на кнопку Button1 (которая располагается на главной форме), в Label1 выводилось значение пересечения между столбцом и строкой. Это все при условии, что мы выбрали имя столбца в первом комбобоксе, а имя строки во втором комбобоксе (т.е. название 1 города - выбран в 1 комбобоксе (столбец), а название 2 города выбрано во 2 комбобоксе(строка). Спасибо за ответы. Очень нужна помощь!

Форма с элементами - http://prntscr.com/leki9h
5 ноя 18, 14:24    [21724208]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать привязку Excel к Combobox?  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3862
Датасет или все же query? Если в датасете таблица, то запросы не нужны:

if dataset.Lookup(comboboxCity.Text, 'Город', []) then
editResult.Text = dataset.FieldByName(comboboxCity2.Text).Value
5 ноя 18, 14:33    [21724214]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать привязку Excel к Combobox?  [new]
EasyCode
Member

Откуда:
Сообщений: 7
JaDi,

Какая-то непонятная ошибка в этом коде.
Возможно потому что у вас Dataset просто, а у меня AdoDataSet.
И еще у меня в DataSet привязка к AdoConnection идет, а в самом DataSet добавлены все значения таблицы (http://prntscr.com/lekoom), только я не пойму, это значения первой строки или первого столбца, т.к. у меня таблица с одинаковыми значениями (http://prntscr.com/lekozp). Возможно я что-то не так делаю с привязками.
5 ноя 18, 14:41    [21724224]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать привязку Excel к Combobox?  [new]
EasyCode
Member

Откуда:
Сообщений: 7
Также в AdoDataSet такая настройка (это было в инструкции по тому, как настраивать этот элемент)
http://prntscr.com/lekqb3
5 ноя 18, 14:44    [21724228]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать привязку Excel к Combobox?  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3862
EasyCode,

dataset.Locate(имя первого столбца, значение первого столбца, []) -- будет искать по F1 значение с названием города и поставит курсор на эту строчку. Это первый город.

dataset.FieldByName(имя столбца = имя города) -- получит значение из колонки со вторым городом. То самое расстояние.
5 ноя 18, 14:51    [21724236]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать привязку Excel к Combobox?  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3862
Кстати, можно и одной командой через dataset.Lookup


расстояние = dataset.Lookup('F1', comboCity1.Text, comboCity2.Text);
5 ноя 18, 14:54    [21724240]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать привязку Excel к Combobox?  [new]
EasyCode
Member

Откуда:
Сообщений: 7
JaDi,
а значение (расстояние), которое найдется с помощью этой команды будет в int или str?
Просто пытаюсь приравнять это значение к Label1 и ничего не получается. Вот такая ошибка:
http://prntscr.com/lekxix
http://prntscr.com/lekxmi
5 ноя 18, 15:02    [21724247]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать привязку Excel к Combobox?  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3862
EasyCode,

null -- значит либо не найдено это сочетание, либо там пустое значение
5 ноя 18, 15:07    [21724253]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать привязку Excel к Combobox?  [new]
EasyCode
Member

Откуда:
Сообщений: 7
JaDi,
Но в таблице значение есть.
http://prntscr.com/lel0er
Может влияет то, что таблица доступна только в режиме чтения?
5 ноя 18, 15:09    [21724258]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать привязку Excel к Combobox?  [new]
EasyCode
Member

Откуда:
Сообщений: 7
EasyCode,

И еще - когда компилирую код, где нет привязки к Label1, то при нажатии на кнопку ошибки такой нет.
5 ноя 18, 15:12    [21724262]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить