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