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


Тема: Иерархическое представление таблиц
На форме лежит подформа в которой запрос с вложенными запросами. Ну это когда знак "+" напротив каждой записи. Щелчком по "+" мы открываем вложенную таблицу и так далее.
Далее, например я нахожусь на 4 уровне.
Как мне получать доступ к полям и их значениям.
Где вообще можно почитать про это.
Спасибо.


P.S. Общий раздел по таблицам
Автор: Олег от 25.04.2003 11:59:29 Источник ...
 15.06.2007 21:04:00
All
4316 сообщения
1-ый


RE: Иерархическое представление таблиц
1. Если Вы находитесь в модуле подчиненной формы, то ссылка на верхний уровень описывается через parent. Например, A=Me.Parent!Поле1

2. Доступ к открытым запросам можно осуществить через Application.CurrentData. Пример:
Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentData
For Each obj In dbs.AllQueries
If obj.IsLoaded = TRUE then
End If
Next obj

3. Когда объект открыт, то все его свойства, в том числе и поля, будут доступны (см. свойства через F2 или отладчик)



P.S. Общий раздел по таблицам
Автор: Expert от 0:00:00 Источник ...
 15.06.2007 21:04:00
Oleg5
15 сообщения


RE: Иерархическое представление таблиц
Спасибо. Чувствую это добрый совет. Попробую напишу.


P.S. Общий раздел по таблицам
Автор: Олег от 25.04.2003 13:21:36 Источник ...
 15.06.2007 21:04:00
Oleg5
15 сообщения


RE: Иерархическое представление таблиц
Я попробовал. Все запросы базы данных я вижу.

Но почему то для всех запросов возвращается

obj.IsLoaded = FALSE

хотя форма с иерархическим запросом у меня открыта.

Более того, как я понимаю, нужно получить имя запроса в котором стоял курсор до нажатия на кнопку в форме. Ведь загруженных запросов может быть несколько. Так в каком из них я находился последний раз?

Уточню:
1. Открыта Главная форма
2. В ней подформа. В этой подформе есть подформа с иерархическим запросом.

Вообще я могу добраться до 1-го и 2-го уровня иерархического запроса вот так:

Private Sub СведенияОГенгрузе()

Dim MyObj As Object
Set MyObj = Me.ИтогиПоГрузу.Form.ActiveControl

'Используем второй уровень
If Me.ИтогиПоГрузу.Form.ActiveControl.ControlType = 112 Then


Select Case Me.ИтогиПоГрузу.Form.ActiveControl.SourceObject

Case "Запрос.qry_РеестрГенГрузНалПоРодуГрузаПорты2", _
"Запрос.qry_РеестрГенГрузНалПоРодуГрузаПолуч2"


If Nz(MyObj.Controls.Item("Код"), 0) = 0 Then
MsgBox "Укажите генеральный груз"
Else

DoCmd.OpenForm "frm_ГенгрузНаличиеСведения1", , , , , acDialog, MyObj.Controls.Item("Код")

End If
Case Else
MsgBox "Вы не указали генеральный груз"
End Select

Else
MsgBox "Для открытия сведений поставьте курсор на строку с генгрузом"
End If

Set MyObj = Nothing

End Sub


Но я сомневаюсь не громоздко ли это и уже на 3 уровень я не могу так добраться. Пробовал.

Мог бы кто-нибудь поделится примерами на эту тему?
Мой адрес: cab@mail.primorye.ru



P.S. Общий раздел по таблицам
Автор: Олег от 25.04.2003 14:39:43 Источник ...
 15.06.2007 21:04:00
All
4316 сообщения
1-ый


RE: Иерархическое представление таблиц
Если не получается с запросами, то надо поискать открытую таблицу в: Application.CurrentData.AllTables (потому что, нельзя удалить таблицу, если она открыта или используется процессом). Если здесь поиск не поможет, то поиск можно продолжить в системных таблицах. А вообще, "поймать" событие для поля открытой таблицы (не формы), наверное, невозможно.


P.S. Общий раздел по таблицам
Автор: Expert от 0:00:00 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Иерархиче...
ПоискПоиск  Список форумовСписок форумов  
right