Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2012, 17:00   #1
Nightwalker666_1@m
Новичок
Джуниор
 
Регистрация: 11.10.2012
Сообщений: 5
По умолчанию Требуется переделать код функции

Здравствуйте, уважаемые специалисты!

Помогите пожалуйста переправить данный код:

Function haba()
If CurrentDb.Properties("LastUpdatedDa te") < Date Then
MsgBox "Ахтунг !"
Application.Quit
Else
MsgBox "Можете работать"
End If
End Function

Мне нужно чтобы в первом случае (не удовлетворившем условие) вместо информационного сообщения к (в данном примере "Ахтунг") появилось поле ввода для пароля, после ввода которого и совпадения с заранее заданным пользователь мог дальше продолжать работу в программе и автоматически в свойство базы прописался такой код (задающий время выдачи следующего такого сообщения с вводом пароля):

CurrentDb.Properties("LastUpdatedDa te").Value = Date()+120

Помогите, пожалуйста, совсем запутался... Как будет выглядеть код?
Nightwalker666_1@m вне форума Ответить с цитированием
Старый 11.10.2012, 17:05   #2
G-Kyller
Пользователь
 
Регистрация: 11.03.2011
Сообщений: 67
По умолчанию

Помимо msgbox есть еще inputbox, вместо msgbox "aхтунг" пишешь if, где сравнивается твой пароль со значением inputbox
Если помог, жми спасибо
G-Kyller вне форума Ответить с цитированием
Старый 11.10.2012, 22:17   #3
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Nightwalker666_1@m.
"..Мне нужно чтобы.." - желание понятно,
но способ его решения
Цитата:
CurrentDb.Properties("LastUpdatedDa te").Value = Date()+120
не корректен.
В свойствах базы данных не удастся сохранить служебную информацию о дате...
(тем более что свойства LastUpdatedDate не существует).
Данные необходимо хранить в соответствующим хранилище - в месте предназначенном для этой цели.
Хранилищем может быть как таблица текущей или другой базы данных,
так и реестр операционной системы (для подобных целей в нём существует ветка для доступа из VB(A)).
И потому прежде чем задавать вопрос "..Как будет выглядеть код?.." стоит определиться с задачей - где и что, и только потом как.

Евгений.

P.S. для удобочитаемости выкладываемый код заключайте в тэги [соde] ... [/соde]
для этого на панели инструментов размещена кнопка #.
Teslenko_EA вне форума Ответить с цитированием
Старый 11.10.2012, 23:09   #4
Nightwalker666_1@m
Новичок
Джуниор
 
Регистрация: 11.10.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
Здравствуйте Nightwalker666_1@m.
"..Мне нужно чтобы.." - желание понятно,
но способ его решения не корректен.
В свойствах базы данных не удастся сохранить служебную информацию о дате...
(тем более что свойства LastUpdatedDate не существует).
Данные необходимо хранить в соответствующим хранилище - в месте предназначенном для этой цели.
Хранилищем может быть как таблица текущей или другой базы данных,
так и реестр операционной системы (для подобных целей в нём существует ветка для доступа из VB(A)).
И потому прежде чем задавать вопрос "..Как будет выглядеть код?.." стоит определиться с задачей - где и что, и только потом как.

Евгений.

P.S. для удобочитаемости выкладываемый код заключайте в тэги [соde] ... [/соde]
для этого на панели инструментов размещена кнопка #.
Во первых, в базе уже создано такое свойство. которое отслеживает сколько прошло дней с момента создания и запуска такого свойства и все работает. По истечении заданного мной количества дней, пользователю выдается такое сообщение. Вообще оно выдается всегда. Только если дата не удовлетворяет условиям. то приложение закрывается. Прописан макрос AutoExec (в нем запуск программы-модуля с приведенной функцией), который обращается к свойству с приведенной мной функцией.
Мне бы просто хотелось чтобы данная функция не просто выдавала такое сообщение как одно из двух приведенных выше, а запрашивало пароль и если он верный, то прописывало уже, например, по нажатию кнопки "ОК" или автоматом новый параметр свойства. тем самым продляя выдачу такого сообщения с запросом паролея на определенное количество дней с момента предыдущего ввода пароля.
Сейчас это реализовано до момента выдачи таких двух сообщений. Если дата удовлетворяет, то выдается сообщение "Можно работать" и приложение запускается, если нет, то выдается сообщение "Ахтунг !" и закрывается.
Чтобы изменить параметр я просто добавляю через окно отладчика новый параметр, который писал выше. А хотелось бы, чтобы он сам прописывался какой-то командой после ввода правильного пароля, который должен быть прописан в функции.
В этом-то и суть вопроса. Я не знаю как это реализовать. Способ наверняка есть, просто я не совсем силен именно в кодах VBA.
Простите, если непонятно и витиевато описал все. Мне лучше задавать конкретные вопросы Заранее спасибо всем откликнувшимся. Буду рад любой идее...

Последний раз редактировалось Nightwalker666_1@m; 11.10.2012 в 23:13.
Nightwalker666_1@m вне форума Ответить с цитированием
Старый 11.10.2012, 23:17   #5
Nightwalker666_1@m
Новичок
Джуниор
 
Регистрация: 11.10.2012
Сообщений: 5
По умолчанию

Вот как раз этой командой я изменяю свойство базы даннх:
Код:
CurrentDb.Properties("LastUpdatedDa te").Value = Date()+120
Свойство было создано и описано немного отличающейся командой. Если необходимо могу ее представить...
Nightwalker666_1@m вне форума Ответить с цитированием
Старый 11.10.2012, 23:52   #6
Nightwalker666_1@m
Новичок
Джуниор
 
Регистрация: 11.10.2012
Сообщений: 5
По умолчанию

Проверьте, пожалуйста, правильность кода. Я не очень силен в VBA.

Код:
Function haba()
dim pas as string
pas="password"
  If CurrentDb.Properties("LastUpdatedDate") < Date Then
    'MsgBox "Ахтунг !"
if inputbox=pas then
CurrentDb.Properties("LastUpdatedDate").Value = Date()+120
MsgBox "Можете работать"
Else
'MsgBox "Не верно! Обратитесь к администратору!"
    Application.Quit
end if
  Else
    MsgBox "Можете работать"
  End If
End Function
Готов выслушать критику и принять все замечания, если что-то не так. Заранее спасибо.
Nightwalker666_1@m вне форума Ответить с цитированием
Старый 12.10.2012, 08:58   #7
Nightwalker666_1@m
Новичок
Джуниор
 
Регистрация: 11.10.2012
Сообщений: 5
По умолчанию

Код поправил. Все работает как необходимо. Спасибо.
Nightwalker666_1@m вне форума Ответить с цитированием
Старый 13.10.2012, 00:21   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Nightwalker666_1@m.
Мнение: "..в базе уже создано такое свойство..":
мои слова ".. не удастся сохранить служебную информацию.." не о том, что нельзя создать,
технически создать и добавить свойство конечно можно (CreateProperty и Properties.Append)

Базы данных предназначены для хранения информации (иногда даже применяется термин "банк данных").
БД MS Access не блещут устойчивостью к взлому, но способ ограничения доступа который Вы планируете использовать
это даже не ключ от банковской ячейки под ковриком у входной двери, это замок на воротах - при отсутствии забора.
О какой надёжности/сохранности может идти речь.
(это не критика, это мнение)

Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделать в код Delphi!! Настена290 Помощь студентам 2 01.02.2012 15:52
переделать с делфи код в СИ Dezolyator Фриланс 7 24.05.2010 23:19
Как переделать код? P®o©omp@s Помощь студентам 2 26.10.2009 19:21
Переделать код Hepri Работа с сетью в Delphi 3 20.08.2009 20:28
Помогите переделать код stayer Общие вопросы Delphi 3 25.10.2008 21:09