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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Помогите разобраться
 
 автор: час   (23.01.2009 в 22:13)   личное сообщение
23 Кб.
 
 

Вот оригинал - чудесный пример

  Ответить  
 
 автор: час   (23.01.2009 в 22:14)   личное сообщение
24 Кб.
 
 

Пытаюсь добавить группы стран - фиг вам

  Ответить  
 
 автор: Ми   (23.01.2009 в 23:35)   личное сообщение
31 Кб.
 
 

Это то что тебе надо? не совсем понятно... Вообще это не удачный пример дерева...

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

Большое спасибо!!! Ми
А удачный вариант - он как выглядит???

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

А где я был не прав, не справившись с кодом???

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

Я вообще влез на дерево впервые, раньше как то не нужно было обходился, а тут решил попробовать и сразу об ствол лбом бабах.
А добавлять новые элементы ветвей - только вписыванием в таблицы возможно, или в дерево как то можно засовывать?

  Ответить  
 
 автор: Гамлет   (24.01.2009 в 11:29)   личное сообщение
 
 

http://hiprog.com/forum/read.php?id_forum=1&id_theme=3706&page=2

  Ответить  
 
 автор: час   (24.01.2009 в 11:47)   личное сообщение
 
 

Спасибо сходил...
Это я в своё время грыз - не догрыз.
А Вы разобралиись с этим???

  Ответить  
 
 автор: Гамлет   (24.01.2009 в 12:09)   личное сообщение
 
 

Там показано как заполнить дерево
А тебе что надо?

  Ответить  
 
 автор: Ми   (24.01.2009 в 12:26)   личное сообщение
 
 

http://am.rusimport.ru/MSAccess/topic.aspx?ID=128 - помоему это лучший способ реализации дерева ( с одним полем). несложно реализуются все функции (переименование, копирование, добавление, перемещение ....) и запросы по выборке ветки простые. Не прав ты был в том, что не знаешь функцию добавления в дерево: .add(в какую ветку, отношение к ветки, ключ, название и . т.д....) и в массиве не было столбца в какую ветку.

  Ответить  
 
 автор: Ми   (24.01.2009 в 12:31)   личное сообщение
 
 

И в этом тоже всё можно, только это "не правильное дерево"

  Ответить  
 
 автор: Гамлет   (24.01.2009 в 12:37)   личное сообщение
 
 

ник: Ми
И в этом тоже всё можно, только это "не правильное дерево"

В чём в этом ?

  Ответить  
 
 автор: Ми   (24.01.2009 в 13:01)   личное сообщение
 
 

на верху пример прицеплен

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

А в чём его неправильность?


И в этом тоже всё можно

Имеется ввиду в том , что я нашел...
Тут наверху прицепы....

  Ответить  
 
 автор: Ми   (24.01.2009 в 13:18)   личное сообщение
 
 

может быть я не совсем корректно выразился... Дело в том что в "твоём дереве" много таблиц, хотя обычно дерево с помощью одной таблицы делают. И если тебе надо в последнюю ветку (город) добавить ещё одну ветвь, то облом. Если нужно сделать выборку целой ветки, то очень сложный запрос получится, связанный с кучей таблиц. Если нужно скопировать одну ветвь в другую.... всё очень сложно и код будет очень плохо читаемый. И вообще в этом примере даже таблицы не связаны.... Хотя конечно, как ты дерево своё задумал использовать, может и это подойдёт.

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

Ясно.

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

Перенёс к себе в базу
Фигня получилась
For в = 0 To UBound(арОкруг, 2) =0
For б = 0 To UBound(арСтрана, 2) =0
For г = 0 To UBound(арОбласть, 2) =0

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

Перенёс в чистую базу - всё работает
В моей базе таблицы линькованные и всё - это же не повод.......

  Ответить  
 
 автор: Ми   (24.01.2009 в 13:38)   личное сообщение
 
 

запрос смотри

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

кстати о запросе
Dim strSQL As String
strSQL = "SELECT strana.id, strana.strana, strana.territories_nn FROM strana ORDER BY strana.id"

нигде не учавствует и без него работает...

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

используется только вот это:

арСтрана = ПолучитьСтрану

  Set rs = CurrentDb.OpenRecordset("strana")
        ПолучитьСтрану = rs.GetRows(rs.RecordCount)


переходим в форму и там

UBound(арСтрана, 2) = 0

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

В другой базе пашет
В моей


    Dim strSQL As String
    strSQL = "SELECT strana.id, strana.strana, strana.territories_nn FROM strana ORDER BY strana.id"
        Set rs = CurrentDb.OpenRecordset("strana")
        ПолучитьСтрану = rs.GetRows(rs.RecordCount)
         MsgBox UBound(ПолучитьСтрану, 2)
--------------------- 0 ------------------------

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

думал тут собака


Public rsTree As DAO.Recordset



Public Function ПолучитьСтрану() As Variant
    Dim strSQL As String
    strSQL = "SELECT strana.id, strana.strana, strana.territories_nn FROM strana ORDER BY strana.id"
        Set rsTree = CurrentDb.OpenRecordset("strana")
        ПолучитьСтрану = rsTree.GetRows(rsTree.RecordCount)
         MsgBox UBound(ПолучитьСтрану, 2)

ответ = 0

                  rsTree.Close
       Set rsTree = Nothing
End Function


MsgBox rsTree.RecordCount ---------= 5

  Ответить  
 
 автор: Ми   (24.01.2009 в 13:53)   личное сообщение
 
 

так оно и есть, в этом примере запросы не участвуют, тут и так в таблице всего 3 столбика, если будет в таблице много лишнего, то лучше через запрос. Смысл, короче сделать массив с данными для заполнения дерева.

  Ответить  
 
 автор: Ми   (24.01.2009 в 13:55)   личное сообщение
 
 

в массиве должно быть "куда входит ветка" и "название ветки"

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

Ми ,
ха.... как ты думаешь........ почему


        MsgBox rsTree.RecordCount   = 5
         MsgBox UBound(ПолучитьСтрану, 2)   = 0

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

Перенёс таблицы в текущую базу - всё работает , а с прилинькованными - фиг вам
Как понимать????

  Ответить  
 
 автор: Ми   (24.01.2009 в 14:06)   личное сообщение
 
 

Создай массив с помощью запроса и возможно в массиве нужно явно указать, что он двухмерный. Про массивы не помню.

  Ответить  
 
 автор: Ми   (24.01.2009 в 14:03)   личное сообщение
 
 

должно быть 4 .......

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

да ........
должно быть 4

  Ответить  
 
 автор: час   (24.01.2009 в 15:03)   личное сообщение
 
 

вроде все заработало , но с линьковаными не работает ни через запрос ни так

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