Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Global (как создать глобальную переменную в VBA)  [new]
Gossip
Guest
Не подскажете как создать глобальную переменную в VBA???
Мне нужно прередавать занчение между Subами
8 апр 05, 16:04    [1453041]     Ответить | Цитировать Сообщить модератору
 Re: Global (как создать глобальную переменную в VBA)  [new]
Kelme
Member

Откуда: Riga, Latvia
Сообщений: 1488
а про входные параметры процедур слыхали?
8 апр 05, 16:06    [1453052]     Ответить | Цитировать Сообщить модератору
 Re: Global (как создать глобальную переменную в VBA)  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
public вместо dim
Причем в простом модуле и не в процедуре.
8 апр 05, 16:08    [1453067]     Ответить | Цитировать Сообщить модератору
 Re: Global (как создать глобальную переменную в VBA)  [new]
Gossip
Guest
Подскажите пожалуйста я не претендую на профессионализм но уже 2 дня не могу найти решение
Мне нужно сделать так , чтобы если пользователь внес изменения, то перед переходом на другую запись или выодм из формы ему говорилось вы внесли изменения сохранить??? да или нет соответсвенно да-да нет- старые значения
Не получается ! вот код!

Private Sub Form_BeforeUpdate(Chacel As Integer)



Index = TRBase.Form_AddForm.Index.Value
Obj = TRBase.Form_AddForm.Obj.Value
Org = TRBase.Form_AddForm.Org.Value
Data = TRBase.Form_AddForm.Data.Value
Time = TRBase.Form_AddForm.Time.Value
Year = TRBase.Form_AddForm.Year.Value
Source = TRBase.Form_AddForm.Source.Value
Oper = TRBase.Form_AddForm.Oper.Value
Addres = TRBase.Form_AddForm.Addres.Value
Tel1 = TRBase.Form_AddForm.Tel1.Value
Tel2 = TRBase.Form_AddForm.Tel2.Value
Was = TRBase.Form_AddForm.Was.Value
Trunk = TRBase.Form_AddForm.Trunk.Value
Closed = TRBase.Form_AddForm.Closed.Value
Stat = TRBase.Form_AddForm.Stat.Value
Face = TRBase.Form_AddForm.Face.Value
Now = TRBase.Form_AddForm.Now.Value






End Sub



Private Sub Form_AfterUpdate()

Dim Answer As Integer




Answer = MsgBox("Data was changed! Reload data?", vbOKCancel)

If Answer = vbCancel Then

TRBase.Form_AddForm.Index.Value = Index
TRBase.Form_AddForm.Obj.Value = Obj
TRBase.Form_AddForm.Org.Value = Org
TRBase.Form_AddForm.Data.Value = Data
TRBase.Form_AddForm.Time.Value = Time
TRBase.Form_AddForm.Year.Value = Year
TRBase.Form_AddForm.Source.Value = Source
TRBase.Form_AddForm.Oper.Value = Oper
TRBase.Form_AddForm.Addres.Value = Addres
TRBase.Form_AddForm.Tel1.Value = Tel1
TRBase.Form_AddForm.Tel2.Value = Tel2
TRBase.Form_AddForm.Was.Value = Was
TRBase.Form_AddForm.Trunk.Value = Trunk
TRBase.Form_AddForm.Closed.Value = Closed
TRBase.Form_AddForm.Stat.Value = Stat
TRBase.Form_AddForm.Face.Value = Face
TRBase.Form_AddForm.Now.Value = Now
MsgBox ("Done!")

End If


End Sub



Дело все в том, что проблема в логике!!!!!!!!!!!!!
Index, obj и тп. они должны быть как бы переменными
ну чтобы сохранял значения до их изменения
и потом загружал старые параметры в зависимости от ситуации

Спасибо за помощь!
8 апр 05, 16:33    [1453193]     Ответить | Цитировать Сообщить модератору
 Re: Global (как создать глобальную переменную в VBA)  [new]
ИгорьКл
Member

Откуда: Пермский край
Сообщений: 570
На закрытие или на кнопку, по клику на которой закрывается форма, надо повесить функцию проверяющую изменения в форме. Например:
If Dirty = False Then DoCmd.Close acForm, ("Форма"): Exit Sub 'если изменений нет то выход из функции.
If Dirty = True Then 'если были изменения то запусти сообщение что делать с этой бедой
MsgBox бла бла бла, vbYesNoCancel
If msg = vbYes then сохраняем
If msg = vbNo then DoCmd.RunCommand acCmdUndo выходим без сохранения
If msg = vbCancel then Exit Sub просто выходим из функции или что-то делаем
Вобщем смотри по своей ситуации.
Удачи!!!
9 апр 05, 11:18    [1454416]     Ответить | Цитировать Сообщить модератору
 Re: Global (как создать глобальную переменную в VBA)  [new]
ы
Guest
автор
Мне нужно сделать так , чтобы если пользователь внес изменения, то перед переходом на другую запись или выодм из формы ему говорилось вы внесли изменения сохранить???


ИгорьКл
На закрытие или на кнопку, по клику на которой закрывается форма, надо повесить функцию проверяющую изменения в форме. Например:

Неправильный ответ.
private sub form_beforeupdate()
  cancel=msgbox("Changed. Save?",vbquestion+vbyesno+vbdefaultbutton1)=vbno 
endif
и все.
9 апр 05, 11:28    [1454422]     Ответить | Цитировать Сообщить модератору
 Re: Global (как создать глобальную переменную в VBA)  [new]
ИгорьКл
Member

Откуда: Пермский край
Сообщений: 570
2 Ы
И твой и мой вариант подходит. Просто описал я его в сокращённом варианте. Но в моём варианте при нажатии "отмена" возвращаешься обратно в редактируюмую запись, и при нажатии "нет" у меня просто выходит из функции с отменой всех действий, а утебя при нажатии нет происходит возврат в редактируемую запись. В моём варианте больше выбора для юзера. и т.д. и т.п. Ну а так мы с тобой
МОЛОДЦЫ!
10 апр 05, 11:17    [1455029]     Ответить | Цитировать Сообщить модератору
 Re: Global (как создать глобальную переменную в VBA)  [new]
ы
Guest
В твоем варианте гораздо больше текста, в твоем вариенте не учитывается переход между записями. А про молодцов это да... :)
10 апр 05, 14:59    [1455156]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить