Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2009, 17:27   #1
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию Идентификатор строки

Здравствуйте. У меня есть таблица в Excele. Ее копия хранится в БД, т.е. таблица с такой же структурой и теми же данными. Мне нужно, чтобы при изменении данных в какой-либо ячейке на листе Excel в БД обновлялась тоже только одна ячейка, соответствующая екселевской. Вопрос, есть ли какой-нибудь уникальный идентификатор у строк в Excele?
eda вне форума Ответить с цитированием
Старый 24.08.2009, 19:13   #2
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Открою страшную тайну. Уникальным идентификатором строки на рабочем листе является её номер (в предположении что данные добавляются только в конец и строки не удаляются).
Aent вне форума Ответить с цитированием
Старый 24.08.2009, 19:22   #3
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию

Я имела в виду помимо номера. Как раз удаление строки - это и есть для меня главная проблема.
eda вне форума Ответить с цитированием
Старый 24.08.2009, 19:46   #4
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Тогда, IMHO, проще всего завести свою колонку для ID.
Aent вне форума Ответить с цитированием
Старый 24.08.2009, 21:26   #5
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Другой вариант: при удалении строки запускать скрипт, обновляющий значение номера строки в БД для всех строк ниже удаленной.
motorway вне форума Ответить с цитированием
Старый 24.08.2009, 21:38   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте eda.
если используемая БД MS Access, и таблица Excel имеет вид поддерживаемый БД, Ваша задача может быть решена созданием Связанной таблицы в БД с таблицей "копией" и запросом обновляющим "копию".
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 25.08.2009, 10:15   #7
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию

Спасибо за советы! У меня MySQL. Таблица Excel содержит 2000 строк как минимум, поэтому обновлять полностью при изменении одной ячейки занимает очень много времени.
eda вне форума Ответить с цитированием
Старый 25.08.2009, 18:09   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте eda.
"занимает очень много времени" Вы правы только в случае если выполнять обновление перебором. это не касается случая с подключением библиотеки ADO и выполнения SQL запросов.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 25.08.2009, 18:45   #9
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию

Евгений, не могли бы Вы подробнее описать решение с помощью связанной таблицы?
eda вне форума Ответить с цитированием
Старый 25.08.2009, 21:56   #10
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

последовательность действий может быть такой:
1. создать БД MS Access (файл .MDB)
2. поместить в ней таблицу "копия"
3. создать прилинкованную таблицу с листом Excel (меню Файл / Внешние данные / Связь с таблицами...)
4. создать запрос на обновление измененных(!) записей в таблице "копия" из связанной таблицы Excel
И это все, открыв файл БД и выполнив запрос на обновление (одним кликом) данные в таблице - "копия" будут обновлены. При использовании БД MySql конструкция усложняется, таблица "копия" тоже должна быть прилинкованной (связаной) таблицей, но с применением ODBC - драйвер MySql (распространяется бесплатно).
примерно так.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Идентификатор в DBF mixer94 БД в Delphi 10 14.07.2009 13:56
Ругаемся, говорим неизвестный идентификатор, хотя работало. Alex Cones Общие вопросы Delphi 6 21.04.2009 21:07
cout: необъявленный идентификатор alone_guy Общие вопросы C/C++ 1 13.02.2009 13:44
Как делают уникальный идентификатор строки в БД? sergey113 Помощь студентам 3 05.08.2008 17:48
Уникальный идентификатор romets Win Api 9 03.02.2008 02:30