Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подчинённая форма
 
 автор: час   (06.09.2008 в 12:12)   личное сообщение
 
 

Forms![FRM_Channel]- основная форма
[territory]. - подчинённая
id_territory поле идентификатор


  Forms![FRM_Channel]![territory].RecordsetClone.FindFirst "id_territory = " & Me![KOD]
        Forms![FRM_Channel]![territory].Bookmark = "id_territory = " & Me![KOD].RecordsetClone.Bookmark


почему ов ответ - бъект не поддерживает это свойство или метод?

  Ответить  
 
 автор: Lukas   (06.09.2008 в 14:23)   личное сообщение
 
 

Вот что предлагает мастер элементов управления по этой теме:

Private Sub ПолеСоСписком8_AfterUpdate()
    ' Поиск записи, соответствующей этому элементу управления.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[IDProduct] = " & Str(Nz(Me![ПолеСоСписком8], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

  Ответить  
 
 автор: час   (06.09.2008 в 16:12)   личное сообщение
 
 

Спасибо!!!
Я в момент создаеия клонов нахожусь в сторонней форме.
Хотя открытой остаётся и основная форма и подчинённая в ней.
А зазатем мне подчинённую форму необходимо открыть на записи, согласно коду , выбранному на сторонней форме.
вот есть покруче, но не хочет работать.....

Public Function SetFormRecord(frm As Object, Optional strCriteria As String, _
                                    Optional blToFirst As Boolean = False)
'es 22.11.04
'Производит поиск записи по заданным критериям в форме(подчиненной форме)
'и ставит фокус на найденную запись - если оно найдено конечно
'если искомое не найдено - переход на Первую|Последнюю запись в зависимости
'от аргумента blToFirst (по умолчанию переход на последнюю запись)
'------------------------------------------------------------------------------
On Error GoTo SetFormRecordErr
    With frm
        .RecordsetClone.FindFirst strCriteria
        If .RecordsetClone.NoMatch Then
            If blToFirst = False Then
                .RecordsetClone.MoveLast
            Else
                .RecordsetClone.MoveFirst
            End If
        End If
        .Bookmark = .RecordsetClone.Bookmark
    End With
SetFormRecordBye:
    On Error Resume Next
    Set frm = Nothing
    Exit Function
SetFormRecordErr:
    Err.Clear
    Resume SetFormRecordBye
End Function

  Ответить  
 
 автор: Lukas   (06.09.2008 в 16:44)   личное сообщение
 
 

Код рабочий.

  Ответить  
 
 автор: час   (06.09.2008 в 16:22)   личное сообщение
 
 

Ой чё эт я такое написал......

может так надо:
   Dim RSt As DAO.Recordset

   Set RSt = CurrentDb.OpenRecordset(Forms![FRM_Channel].[territory].Form.RecordSource)
    RSt.FindFirst "id_territory = " & Me!KOD
    RSt.Bookmark = RSt.Bookmark

  Ответить  
 
 автор: Lukas   (06.09.2008 в 16:55)   личное сообщение
37 Кб.
 
 

Так не надо, надо так как в Zip.

  Ответить  
 
 автор: Lukas   (06.09.2008 в 17:05)   личное сообщение
37 Кб.
 
 

Или так для Сторонней формы

  Ответить  
 
 автор: час   (06.09.2008 в 17:09)   личное сообщение
 
 

Спасибо Вам - так, как в Zip чудесно работает.
SetFormRecord Forms![FRM_Channel].[territory].Form, "[id_territory] = 60", False

  Ответить  
 
 автор: Lukas   (06.09.2008 в 17:12)   личное сообщение
 
 

Да не за что.

  Ответить  
 
 автор: час   (06.09.2008 в 17:21)   личное сообщение
 
 

  Ответить  
 
 автор: час   (07.09.2008 в 10:55)   личное сообщение
 
 

А если ещё глубже возможно?
Если - да - тогда скажите как?

Call SetFormRecord(Forms![FRM_Channel].Form![territory].Form![FRM_Region_Period].Form, "[Region_Air] = " & Me!Region_Air, False)

  Ответить  
 
 автор: час   (08.09.2008 в 09:23)   личное сообщение
 
 

А если ещё глубже возможно?
Если - да - тогда скажите как?

Call SetFormRecord(Forms![FRM_Channel].Form![territory].Form![FRM_Region_Period].Form, "[Region_Air] = " & Me!Region_Air, False)

  Ответить  
 
 автор: час   (09.09.2008 в 13:22)   личное сообщение
 
 

А если ещё глубже возможно?

  Ответить  
 
 автор: Lukas   (09.09.2008 в 13:25)   личное сообщение
 
 

Если Sub форма на форму лезет, значит возможно. Где-то видел ограничение
на количество уровней вложений.

  Ответить  
 
 автор: час   (09.09.2008 в 13:35)   личное сообщение
 
 

Lukas, тогда подскажите как?
Как во второе вложение влезть, и установить курсор на искомом?

  Ответить  
 
 автор: Lukas   (09.09.2008 в 13:58)   личное сообщение
 
 

Обратиться ко второму вложению просто:

SetFormRecord Me.frmMain.Form.frmProductSub.Form, "[IDProduct] = " & Str(Nz(Me![ПолеСоСписком8], 0)), False

Кстати это должно быть во втором примере.

  Ответить  
 
 автор: час   (09.09.2008 в 14:16)   личное сообщение
 
 

Спасибо!!!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList