Страница: 1 |
Вопрос: Статика между запусками | Добавлено: 09.02.10 11:20 |
Автор вопроса: ![]() |
В Access есть программа, хранящая некоторые данные (общую информацию по базе, от которой зависит построение некоторых таблиц в формах). Однако эти данные после закрытия Access'а из этих временных хранилищ исчяезают. С одной стороны понятно, что VBA не хранит значения переменных в модулях. Но с другой сохранять их очень надо. Куда их можно запихать, так, чтобы не создавать дополнительных файлов, но при этом, чтобы при запуске Access с этой базы, значения этих переменных можно было восстановить с прошлого запуска? |
Ответы | Всего ответов: 7 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 33 Ответов: 245 |
Профиль | Цитата | #1 | Добавлено: 09.02.10 14:09 |
http://www.codenet.ru/progr/vbasic/registry.php |
Номер ответа: 2 Автор ответа: ![]() ![]() ICQ: 343191665 Вопросов: 51 Ответов: 98 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 09.02.10 14:29 |
Реестр как решение не совсем подходит. Дело в том, что впоследствии эта база будет использоваться в нескольких экземплярах и в каждой копии (а они все будут на одном компьютере) будут разные настройки. Мне бы метод сохранения из в файле самой базы. Есть там куда их запихнуть? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 33 Ответов: 245 |
Профиль | Цитата | #3 | Добавлено: 09.02.10 19:41 |
С одной стороны понятно, что VBA не хранит значения переменных в модулях на сколько я помню, прямо при выполнении макроса можно дописывать строки в модуль, но так - не вспомню, надо погуглить
|
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 09.02.10 22:59 |
Самым логичным при работе с базой данных было бы хранить все необходимые значения в специально созданной таблице базы данных, например в создать таблицу Settings (Настройки) и хранить там по аналогии с реестром ключ (имя переменной), тип (тип даннных: строка, число, дата..), значение. Для значений разных типов можно завести отдельные поля. Как конкретно на VBA это делается - могу показать, я этот механизм уже использовал однажды для хранения настроек программы. Например, чтобы записать папку по умолчанию для импорта новых файлов в базу...
Как хочет AngryBadger можно и текст модулей подменять, только не забывайте, что текст с исполняющейся строке вам не заменить, да и руками надо разрешить доступ к VBProject на каждом компьютере. Скажем так, это возможный, но совсем не очевидный путь. |
Номер ответа: 5 Автор ответа: ![]() ![]() ICQ: 343191665 Вопросов: 51 Ответов: 98 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 10.02.10 17:40 |
AngryBadger
Даа... весело, конечно. Не, такую хитрую систему я отлаживать долго буду. А базу надо доделать до понедельника. mc-black Мысль интересная, если бы у меня переменные не были разных типов. Хотя в принципе, при их прямом использовании они все равно идут как String... |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 10.02.10 22:12 |
Пусть будут разных типов, тогда таблицу с настройками программы сделай так:
При инициализации переменной значением сделаешь функцию, возвращающую Variant, которая будет принимать 2 параметра: ключ (имя переменной например) и тип данных явно, чтобы функция знала из какого поля брать значение. Тогда не понадобится преобразование строк в другие типы и сопутствующих этому хитростей/багов. |
Номер ответа: 7 Автор ответа: ![]() ![]() ICQ: 343191665 Вопросов: 51 Ответов: 98 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 14.02.10 23:12 |
Уловил )))) спасибо )))) |
Страница: 1 |
|