БД и Excel

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Лелик_1044
Сообщения: 339
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

17 янв 2005, 13:42

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


Мне подходит лучше 1 вариант
Как его осуществить
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

17 янв 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... Вот это будет круто!
Лелик_1044
Сообщения: 339
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

19 янв 2005, 14:19

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

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

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

Если не трудно скинь мне свои пример ввода в бд asius@tut.by
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

21 янв 2005, 02:30

Опишите, какие данные нужно вводить (сколько полей и какого типа).
Грид подходит или нет?
В одну таблицу, или в несколько связанных?
Поробую подобрать хороший пример.
Лелик_1044
Сообщения: 339
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

24 янв 2005, 17:33

У меня стоит EHLIB но DBGRID тоже подойдет
допустим

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

Ну что-то типа того (у меня много полей там долго описывать. Я пишу нагрузку для преподователя)
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

01 фев 2005, 21:33

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

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

Вместо стандартного DBNavigator используйте TActionList и тулбар с кнопками. На некоторые действия сделайте дополнительную обработку. Например, на добавление новой записи перемещайте фокус к Фамилии и т.п.
YurikGL
Сообщения: 142
Зарегистрирован: 16 фев 2005, 21:54
Откуда: Уфа
Контактная информация:

16 фев 2005, 22:06

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


Но я настоятельно рекомендую писать своего клиента. Просто пользовать нужно библиотеку EHLib а не стандартные DB-компоненты.
По крайней мере, так будет на порядок проще обрабатывать ошибки.
Junior
Сообщения: 4
Зарегистрирован: 03 апр 2005, 22:37
Откуда: Tashkent
Контактная информация:

10 апр 2005, 22:09

парни у меня вопрос есть мне нужно связать EXCEL и Delphi...
одним словом мне нужно создать тест программку точнее форму для тестов...
нужно чтоб дельфи заходила в эхсель и запускала макрос не открывая документ барала нужные данные и при выходи запускала ещё один макрос...
короче вот что мне нужно возможноли это...
please, help me...
Junioooooor
YurikGL
Сообщения: 142
Зарегистрирован: 16 фев 2005, 21:54
Откуда: Уфа
Контактная информация:

10 апр 2005, 22:13

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