LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Поиск в ф...
 Тема: Поиск в форме. Помогите!
 
 15.06.2007 21:03:23
Валерий
4 сообщения


Тема: Поиск в форме. Помогите!
Здравствуйте! Есть форма, созданная на основе трех таблиц (клиенты, заказы, содержание заказа) с помощью мастера. Форма содержит две подчиненных, в первой показываются заказы, во второй наполнение заказа товарами. На главную форму я поставил поле со списком для выбора клиента. Немного поправил событие "после обновления" поля сосписком, чтобы форма не дергалась во время поиска, и ВСЕ.

Private Sub ПолеСоСписком_AfterUpdate()
' Поиск записи, соответствующей этому элементу управления.
Dim rs As Object
Set rs = Me.Recordset.Clone
Me.Painting = False
rs.FindFirst "[КодКлиента] = " & str(Me![ПолеСоСписком])
Me.Bookmark = rs.Bookmark
Me.Painting = True
Set rs = Nothing
End Sub

Когда выбираю клиента из поля со списком выскакивает сообщение Access:
"Инструкция по адресу "0х65009f45" обратилась по адресу "0x00000004". Память не может быть "read".
И приложение закрывается. Причем происходит это не со всеми клиентами и не всегда. Пробовал запускать ее на других машинах, то же самое.
Для сведения:база разделена на два файла, в одном формы, запросы и т.д., в другом таблицы.
Помогите, пожалуйста! Горит срочная работа.
Заранее благодарен!


P.S. Раздел для новичков
Автор: Валерий от 14.11.2002 17:32:12 Источник ...
 15.06.2007 21:03:23
Алекс
4 сообщения


RE: Поиск в форме. Помогите!
1. Проверьте Recordset.Clone, надо RecordsetClone
2. Примеры поиска есть в файле la_find.mdb



P.S. Раздел для новичков
Автор: Алекс от 15.11.2002 9:09:17 Источник ...
 15.06.2007 21:03:23
Валерий
4 сообщения


RE: Поиск в форме. Помогите!
Спасибо, Алекс.
Поменял как Вы подсказали, но ошибка все равно выскакивает. Ошибка происходит в
Me.Bookmark = rs.Bookmark
это я установил точно. Причем если что-то меняешь в модуле формы глючить начинает только после второго-третьего запуска формы. Главное в базе несколько подобных форм для разного вида товаров и они работают нормально.


P.S. Раздел для новичков
Автор: Валерий от 15.11.2002 11:02:28 Источник ...
 15.06.2007 21:03:23
All
4316 сообщения
1-ый


RE: Поиск в форме. Помогите!
Я бы добавил код:
If rs.NoMatch = False Then _
Me.Bookmark = rs.Bookmark


P.S. Раздел для новичков
Автор: Алекс от 0:00:00 Источник ...
 15.06.2007 21:03:23
Валерий
4 сообщения


RE: Поиск в форме. Помогите!
Алекс, спасибо! Я еще ковырялся с формой и кажется нашел из-за чего это происходит, но как с этим бороться не знаю.
Дело в том, что на событие-"текущая запись" первой подчиненной формы обновляется вторая подчиненная, чтобы просматривать содержание выбранного заказа.То есть:

Sub Form_Current()

Dim ParentDocName As String

On Error Resume Next
ParentDocName = Me.Parent.Name

If Err <> 0 Then
GoTo Form_Current_Exit
Else
On Error GoTo Form_Current_Err
Me.Parent.[Подчиненная_форма2].Requery
End If

Form_Current_Exit:
Exit Sub

Form_Current_Err:
MsgBox Error$
Resume Form_Current_Exit

End Sub

Так вот, когда в поле со списком после обновления выполняется:
Me.Bookmark=rs.Bookmark
тут же начинает выполняться Sub Form_Current()
причем Me.Parent.[Подчиненная_форма2].Requery выполняется огромное количество раз. Я не подсчитывал сколько, но если не вызывает ошибку может выполняться минут 10, и только потом успокоиться. Как с этим бороться я не знаю, и вообще это противоречит тому, что я читал об обработке событий в Access.
Если есть какие нибудь мысли-поделитесь!



P.S. Раздел для новичков
Автор: Валерий от 19.11.2002 12:31:05 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Поиск в ф...
ПоискПоиск  Список форумовСписок форумов  
right