Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
28.03.2024, 15:54:08

Войти
На форуме добавлена возможность подписки на RSS-ленты любого раздела форума. Подписаться можно, нажав на иконку RSS , расположенную левее наименования раздела.
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Access и VBA
| | |-+  Excel Addin формула и Access
Страниц: [1]   Вниз
Печать
Автор Тема: Excel Addin формула и Access  (Прочитано 9333 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Gedeon
Гость
« : 28.06.2017, 14:08:37 »

Всем привет.  Улыбка

Хочу создать Addin в Excel, и с ней базу данных в Access. Я не профи, но опыт работы с Excel и Access есть.
Идея такая. Таблица в БД содержит данные курс валют которые обновляются автоматический с помощю VBscript-а, а в Excel-е есть формула который берет эти данные из БД для расчетов.

К примеру в ACCESS таблица выглядит так.
| DATE | CURRENCY | RATE |
А формула в Excel. =GetRate("ISO", "DATE").

Есть много способов, конечно, для решении этой задачи. К примеру, у меня Формула сначало создоет связь с БД, потом берет данные с помощю SELECT, и закрывает БД.
Вопрос в том, чтобы найти самый оптимальный/быстрый способ для этого, поскольку когда в Excel-е Формула используется очень часто, Excel работает медленно.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #1 : 28.06.2017, 14:32:13 »

когда в Excel-е Формула используется очень часто
Так используйте не формулу, а процедуру и вызывайте по требованию(или по событию), записывая курсы на скрытый лист. А потом с этого листа забирайте курсы.
Решение тянуть курсы сначала в Access, а затем в Excel еще больше времени убьет на мой взгляд, чем решение со скрытым листом. Чтобы не тянуть несколько раз за день курсы - можно при первом притягивании в конце ставить в ячейку дату. И потом проверять - если равна текущей, то курсы не тянуть с сайта.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Gedeon
Гость
« Ответ #2 : 28.06.2017, 14:51:35 »

Спасибо за ответ.
Курсы обновляются раз в день и сохроняются для статистики и анализа данных.

Как записать на скрытый лист и сохранить файл если он уже открыт? И если сохранить на листе то Excel файл будет весить больше соответственно и работать будет медленней.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #3 : 28.06.2017, 17:39:10 »

соответственно и работать будет медленней
Вы там курсы за год на все валюты что-ли записываете?
Как записать на скрытый лист
Так же, как и не на скрытый. Обращаетесь к листу по его имени и записываете:
Код: (vb)
a = ThisWorkbook.Sheets("имя листа").Cells(1,1).Value

Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru