Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Сохранить значение textbox/Label


Автор: alexIrish 6.12.2007, 12:16
Добрый день.
Подскажите пожалуйста как сохранить значение Textboxa/label чтобы он при следующем открытии формы показывал значение которое присвоили до закрытия формы.
Делаю так:
Код

' some code
Me.lblLastUpdate.Caption = Now()
DoCmd.Save

 
или
Код

' some code
Me.тхтLastUpdate.value= Now()
DoCmd.Save


По выполнению кода техтбокс/лабел показывает то чего надо.
но если форму закрыть и открыть снова то там ничего нет (нулл или пробел - неважно, должно быть дата и время)

Спрашиваю можно ли сохранить ето значение без создания таблицы и последующего связывания значения поля етой таблицы с техтбоксом.

Спасибо.


Автор: Akina 6.12.2007, 13:29
Цитата(alexIrish @  6.12.2007,  13:16 Найти цитируемый пост)
можно ли сохранить ето значение без создания таблицы и последующего связывания значения поля етой таблицы с техтбоксом.

Да, можно. Варианты:
  • Изменение макета формы
  • Сохранение в реестре/внешнем файле
  • Сохранение в существующей таблице.
Во всех случаях, кроме первого, потребуется программное восстановление значения при загрузке формы.

Автор: alexIrish 6.12.2007, 13:35
Спасибо. 
Выбрал третий вариант как смаый простой smile

Автор: Laky 13.1.2011, 23:55
только не бейте сильно за подъем старой темы!
поясните, пожалуйста, лучше ваш ответ в такой части:
какую трочку нужно добавить к представленным кусочкам кода,
чтоб реализовать первый вариант (Изменение макета формы)?

инструкция
docmd.save asform, "1"
облегчения не принесла


Автор: Akina 14.1.2011, 08:44
Laky, тут одной строчкой не обойтись.
Нужно создать процедуру (в другой форме или общем модуле), которая закроет форму, откроет её в режиме макета, внесёт необходимые изменения и сохранит результат. И вызвать эту процедуру нужно асинхронно - если сделать вызов из метода самОй формы, она не даст себя закрыть, т.к. метод не завершил работу.

Автор: Laky 14.1.2011, 20:21
Спасибо за подробный ответ!
Видно все же придется попрощаться с однострочностью сего решения...
Честно говоря, ради хранения даты и времени открытия какой-то одной формы
(чего собственно и требовалось)
не хотелось создавать таблицу или, что еще более странно (при данной задаче) - сторонний файл.
Была надежда хранить это в лейбле или,
на худой конец, в поле (значение по умолчанию, всплывающая подсказка, tag в конце концов),
на самой форме, обновляя ее макет при закрытии.
Пожалуйста, посоветуйте, как наиболее грамотно можно было решить бы данную задачу:
хранить время в глобальной переменной, соответственно перезаписывая переменную в течение одного сеанса,
а при закрытии базы изменять макет нужной формы?
Подходит, на ваш взгляд, как самый достойный вариант, или есть мысль лучше?..
Хочется ж расти, в самом деле)

Автор: FINANSIST 17.1.2011, 13:17
используй реестр винды для хранения констант формы, и програмно запрашивай из него значения на события load
(ну или в таблицы пиши, если предполагается многопользовательность)
реестр - самое "элегантное" решение, меньше всего гемороя

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)