PDA

Просмотр полной версии : БД и Excel



Лелик
17.01.2005, 13:42
Есть такая проблема
Все знаею что вводить данные в БД в дельфи не удобно
Самое просто это ввести все данные в Excel(даже ламеру это под силу) а потом просто засунуть их в программу. Как это можно сделать
Есть идеи
1)Скопировать всю БД в Excel. очистить в делфи всю бд. потом редактировать бд в excel. потом гнать все назад в делфи
2)Просто ввести новые записи в excel и потом загнать в делфи. если будут повторы выдовать сообщение.


Мне подходит лучше 1 вариант
Как его осуществить

Naeel Maqsudov
17.01.2005, 23:43
Все знаею что вводить данные в БД в дельфи не удобно

Вот это для меня потрясающая новость.
Я всегда пытался строить максимально удобный интерфейс, для каждого случая по возможности свой:
Где TCtrlGrid, где TDBGrid, где еще что-нибудь. Например начало записи слева в узком гриде, а детальная информация справа от этого грида в панельке... Гриды переделывал неоднократно. Горячие клавиши в гридах и DBAware-контролах определял (TActionList очень рекомендую начиная с D5). НИКТО из пользователей на жаловался. Напротив, всегда хвалили.


Есть идеи
1)Скопировать всю БД в Excel. очистить в делфи всю бд. потом редактировать бд в excel. потом гнать все назад в делфи
2)Просто ввести новые записи в excel и потом загнать в делфи. если будут повторы выдовать сообщение.

Вы очень нелюбите Ваших пользователей! Учитель строить дружественный интерфейс!


Мне подходит лучше 1 вариант
Как его осуществить

Начиная с D5 или даже 4 на палитре, на закладке Servers имеются компоненты TExcelApplication, TExcelWorkSheet и т.д.

После создания экземпляра TExcelApplication можно воспользоваться свойством Visible, чтобы сделать окно видимым.
См. также примеры из стандартной поставки. Там показано как с ячейками работать.

Но я настоятельно не рекомендую идти этим путем.
Сделайте нормальный интерфейс, а еще плюс к тому предусмотрите возможность импорта и экспорта данных в различных форматах (dbf, xls, txt(csv) и т.д.) Нажал File/Import вываливается диалоговое окно: Select file... Вот это будет круто!

Лелик
19.01.2005, 14:19
Но я настоятельно не рекомендую идти этим путем.
Сделайте нормальный интерфейс, а еще плюс к тому предусмотрите возможность импорта и экспорта данных в различных форматах (dbf, xls, txt(csv) и т.д.) Нажал File/Import вываливается диалоговое окно: Select file... Вот это будет круто!

Вот это мне и надо КАК ЭТО СДЕАЛТЬ

Почему неудобно вводить бд в делфи потому что стандартный навигатор не удобен.

Если не трудно скинь мне свои пример ввода в бд asius@tut.by

Naeel Maqsudov
21.01.2005, 02:30
Опишите, какие данные нужно вводить (сколько полей и какого типа).
Грид подходит или нет?
В одну таблицу, или в несколько связанных?
Поробую подобрать хороший пример.

Лелик
24.01.2005, 17:33
У меня стоит EHLIB но DBGRID тоже подойдет
допустим

ФИО
Телефон
Адрес
Интересы

Ну что-то типа того (у меня много полей там долго описывать. Я пишу нагрузку для преподователя)

Naeel Maqsudov
01.02.2005, 21:33
Ага, если полей много, то делайте так:
Возьмите TPanel и положите на нее с выравниванием влево узенький DBGrid. (Он вообще может быть ReadOnly) Он будет в основном не для редактирования, а в качестве браузера, поэтому в него добавьте только самое важное №,ФИО.... Справа от грида положите в красивом и удобном порядке TDBEdit-ы прочие DBAware-редакторы для каждого из полей (чтобы получилось что-то вроде карточки на эту персону). Ну а к гриду прикрутите разные сортировки и поиск.

На потерю фокуса у панели напишите обработчик с ТАБЛИЦА.CheckBrowseMode, причем не забудьте поймать эксепшн.

Вместо стандартного DBNavigator используйте TActionList и тулбар с кнопками. На некоторые действия сделайте дополнительную обработку. Например, на добавление новой записи перемещайте фокус к Фамилии и т.п.

YurikGL
16.02.2005, 22:06
1) Можно к екселю достучаться через OLE (Яндес + TExcelApplication)
2) Можно в екселе начиная с XP сохранять в виде XML, далее, чтение из файла становится элементарным.
3) К таблице Excel можно обращаться через SQL. Как - не помню.


Но я настоятельно рекомендую писать своего клиента. Просто пользовать нужно библиотеку EHLib а не стандартные DB-компоненты.
По крайней мере, так будет на порядок проще обрабатывать ошибки.

Junior
10.04.2005, 22:09
парни у меня вопрос есть мне нужно связать EXCEL и Delphi...
одним словом мне нужно создать тест программку точнее форму для тестов...
нужно чтоб дельфи заходила в эхсель и запускала макрос не открывая документ барала нужные данные и при выходи запускала ещё один макрос...
короче вот что мне нужно возможноли это...
please, help me...

YurikGL
10.04.2005, 22:13
На Королевстве Делфи есть цикл статей, "По волнам интеграции". Тебе туда.