Я использую офис 2013 и SQLServer 2008 R2. У меня есть процедура Excel VBA, которая вставляет список комиссий за продажи в базу данных. Один из столбцов — SalesRepID, который явно должен быть действительным. Когда это было написано, у нас была довольно статичная команда по продажам, но с тех пор мы приобрели две другие компании, которые занимаются менее специализированной работой, так что сейчас в отделе продаж произошли небольшие изменения.
Текущие методы имеют список торговых представителей и имен в отсортированном именованном диапазоне, который затем используется в качестве критерия проверки: пользователю предоставляется список торговых представителей в раскрывающемся списке в Excel, и когда они выбирают один, он использует VLookup для вставки SalesRepID в скрытой ячейке. Затем это используется в операции вставки.
Что я хочу сделать сейчас, так это дать пользователям кнопку обновления (и в идеале запускать обновление при открытии). Некоторые биллеры работают дома по выходным, поэтому это должно работать в автономном режиме (очевидно, если новый представитель добавлен и они не обновились, они не увидят нового представителя).
Я не хочу определять что-либо вроде источников ODBC на физической машине пользователя.
Я пытаюсь найти способ решить эту проблему. Один из способов — добавить кнопку обновления, которая будет выполнять запрос, вставить текущий список торговых представителей и обновить диапазон (или использовать динамический диапазон), чтобы он соответствовал текущему количеству возвращенных записей. (Я предполагаю, что могу обновить адрес именованного диапазона или динамический диапазон будет обновляться, если данные будут вставлены из SQL-запроса)
Например:
Начальный диапазон
1 Tom
2 Dick
3 Harry
Диапазон торговых представителей = A1:B3
User Hits Refresh: Удаляет содержимое старых диапазонов. вставить новый список
Новый диапазон
1 Tom
2 Dick
3 Harry
4 Fred
Диапазон торговых представителей = A1:B4
Может ли кто-нибудь придумать лучший способ для этого?
С Уважением
Отметка