Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Vik
В свое время была похожая задачка. Таблица административных единиц KOATUU (область/район/сельсовет/населеный пункт) отображалась через TreeViev.
При выборе любой админединицы необходимо было отобразить информацию по всех входящив в нее "детях".
Решил следующим образом:
1. Таблицу дополнил полем Cheked (Boolean) для меток выделенных записей, которое в начале равно Fаlse.
2. При выделении узла поле Cheked этой записи получает значение True.
3. Дальше выполнялся через .Execute запрос на обновление, который менял Cheked на True для всех записей, являющихся дочерними (в Вашем случае - родительскими) относительно записей, в которых Cheked = True.
4. Execute повторно выполняется до того времени, пока количество обновленных записей (.RecordsAffected) > 0 .
5. В результате быстро, качественно и недорого в таблице все необходимые Вам записи имеют Cheked = True.


    strSQL1 = "UPDATE Koatuu SET Koatuu.Checked = True " _
    & "WHERE ((Koatuu.Key) = '" & CurKey & "');"
    
    strSQL2 = "UPDATE Koatuu SET Koatuu.Checked = True " _
    & "WHERE (((Koatuu.Checked)=False) AND ((Koatuu.Parent) " _
    & " In (SELECT Koatuu.Key FROM Koatuu WHERE (((Koatuu.Checked)=True)))));"

    Set qdf = dbs.QueryDefs("Temp")
    qdf.SQL = strSQL1
    qdf.Execute
            
    qdf.SQL = strSQL2
    
Do
    DoCmd.SetWarnings False
        qdf.Execute
    DoCmd.SetWarnings True
Loop While qdf.RecordsAffected > 0


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.