Перерисовка значения в контроле

Bely
Дата: 25.05.2004 18:06:42
Имеем форму с блоком поиска сверху.
Есть, так же 2 кнопки: "Поиск" и "Очистить фильтр"

Если вводим значение для поиска, нажимаем "Поиск", то все работает.
Поиск делается через фильтр.
  ' ... перед этим формируем строку "szAddWhere" ...
  Debug.Print "AddWhere = '" & szAddWhere & "'"
  ' -- Add criteria and requery list --

If szAddWhere = "" Then Me.Filter = "" Me.FilterOn = False Else Me.Filter = szAddWhere Me.FilterOn = True End If Me.Requery

Далее, по нажатию на кнопку "Очистить фильтр" - сбрасывается значение полей поиска и опять вызывается та же функция поиска.
  Me!edtFldVal_1.Value = Empty
  Me!cmbCustomerID.Value = Empty
  Call btSearch_Click

Так вот - все работает замечательно, кроме одного - поле поиска не перерисовывается.
Т.е. значения в нем нет (но на экране оно видно), курсором если в него встать, то оно не пропадает.
Пропадает при насильственной перерисовке (minimize,maximize)

Кто виноват?
Я, access или "тот, кто за дверью"?

BTW: проблему решает добавление кода:
  Me!edtFldVal_1.Visible = False
  Me!edtFldVal_1.Visible = True
Владимир Саныч
Дата: 25.05.2004 18:13:53
Empty - это не то. Обычно в таких случаях используют Null.
Bely
Дата: 25.05.2004 22:09:11
Нет, дело не в этом...
Не работает NULL, не работает "ZZZ". Похоже где-то глубже проблема :(
  Me!edtFldVal_1.Value = Null
  Me!edtFldVal_1.Value = "ZZZ"
Владимир Саныч
Дата: 25.05.2004 22:13:50
А если me.repaint?
Bely
Дата: 26.05.2004 01:30:20
Нет, repaint тоже не помогает.
Выяснилась последовательность действий, приводящая к этому результату:

1) Форма у меня является "Continuous Forms"
2) Если задать поиск, который возврящает хот одну запись, то все работает ОК
3) Если задать поиск, после которого гничего не найдено, то сброс значения поля отрабатывается как описано вначале.

Вот такая фигня... похоже, что мне достался какой-то мелкий баг Access-а.
Bely
Дата: 26.05.2004 02:08:56
Вот, написал точно такую же форму со своим глюком - но сильно урезанную.

Test.ZIP
Темный
Дата: 26.05.2004 02:52:30
Me!edtFldVal_1 = ""
Me.Refresh
Alexander G
Дата: 26.05.2004 03:01:20
Private Sub btClear_Click()
    Me.Filter = ""
    Me.FilterOn = False
    Me!edSrch1 = Null
End Sub

Private Sub btSearch_Click()
  Dim szAddWhere As String
  If Not IsNull(Me!edSrch1) Then
    szAddWhere = " CStr(F1) like '*" & CStr(Me!edSrch1) & "*' "
    Me.Filter = szAddWhere
    Me.FilterOn = True
  End If
End Sub
Темный
Дата: 26.05.2004 03:14:15
Ёшкин кот, откуда эта дурацкая привычка присваиваить Null чему-либо?????
Alexander G
Дата: 26.05.2004 03:36:05
Мы люди северные, дикие, поэтому и пользуем. :). А это большой грех?