|
|
|
| Здравствуйте! Меня мучают несколько вопроса. Помогите кто чем может))))
1. Есть ленточная форма в которой некоторые поля заполняются при помощи DlookUp. Данные в этих полях отображаются замечательно пока не происходит обновление формы... При обновлении все поля, где используется DlookUp, очищаются. Данные появляются только при установки курсора в любое поле с DlookUp. Как сделать так, чтобы данные не пропадали при обновлении формы?
2. При закрытии любой программы выдается сообщение "Сохранить изменения?", как выводить такое сообщение при закрытии формы?
3. Есть многопользовательская база. Для примера используем 2 компьютера. На обоих компьютерах открыта форма Журнал сделок. На одном из пк создается новая сделка, а на другом пк в журнале эта сделка отобразится только после обновления этой формы. Можно ли сделать автоматическое обновление этой формы? | |
|
| |
|
|
|
| 1. Отказаться от DlookUp сделать источник строк формы таким, что бы нужное поле содержалось в нем
2. на событие закрытие формы проверять свойство формы dirty, если истина то выдавать сообщение
3. Событие таймер формы. | |
|
| |
|
|
|
|
а вот я в этот раз сдержался :) | |
|
| |
|
|
|
| им пофиг. у них свой путь "развития". грабли в говне. но это их не останавливает | |
|
| |
|
|
|
| только преодолевая трудности, ты становишся человеком | |
|
| |
|
|
|
| 1. используй команду после обновления формы Requery для каждого поля в котором используешь DlookUp: Me.Поле.Requery | |
|
| |
|
|
|
| Спасибо всем!!! Все получилось)))
P.S: Для тех у кого появился такой же вопрос как у меня. Относится ко второму вопросу.
Dirty проверяет только произошло изменение или нет, а вот OldValue возвращает старое значение поля.
Dim ctlC As Control
If Me.Dirty Then
if msgbox ("Сохранить изменения?", vbYesNo)=vbNo then
For Each ctlC In Me.Controls
If ctlC.ControlType = acTextBox Then
ctlC.Value = ctlC.OldValue
End If
Next ctlC
End if
End If | |
|
| |
|
|
|
|
| Спасибо!!!!!!!!!!!!!!! Намного проще))))
Учимся еще, ничего не поделаешь)))) | |
|
| |