Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit) / 19 сообщений из 19, страница 1 из 1
21.09.2017, 11:19
    #39524232
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
Вот на сайте JKP Application Development Services Нашел статью An MSForms (All VBA) Treeview Introduction В ней написано о создании аналога TreeView без использования OCX. Выложены примеры в исходных кодах для Access (mdb), Excel и Word.

Написано, что разработка проверена для

Excel 2000
Excel 2003
Excel 2010
Excel 2010 (64 bit)
Excel 2011 (MAC Office)
Excel 2013 (32 bit)

Access 2003
Access 2010 (32 bit)
Access 2010 (64 bit)

Я скачал себе пример для Access. Запустил в Access 2010 (32 бит) Красиво. Правда есть какой-то глюк в AutoExec. У меня вылетала ошибка 13 Type mismatch. Но при запуске формы frmDemo никаких ошибок не было.

Сейчас сижу, разбираюсь. Возможно это неплохая альтернатива TreeView. Особенно если пишешь универсальные программы для 32-х/64-х разрядных Офисов.

Скачанный пример не прикладываю, т.к. его размер (280К) превышает разрешенный.

Может кому пригодится.
...
Рейтинг: 0 / 0
21.09.2017, 11:46
    #39524262
\\\\
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
...
Рейтинг: 0 / 0
21.09.2017, 11:48
    #39524266
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
Jossесть какой-то глюк в AutoExec. У меня вылетала ошибка 13 Type mismatch.
Так эти дятлы залупили в макрос проверку условия
Код: vbnet
1.
[CurrentProject].[Application].[Version]<=12


А то, что CurrentProject].[Application].[Version], сцуко, имеет строковый тип, им никто не сказал...

В общем, достаточно окавычить значение, с которым сравниваем (в обоих условиях).
...
Рейтинг: 0 / 0
21.09.2017, 12:05
    #39524279
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
Мда-а-а-а... Лопухнулся. Не проверил поиском. Прошу прощения.
...
Рейтинг: 0 / 0
21.09.2017, 12:16
    #39524286
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
AkinaJossесть какой-то глюк в AutoExec. У меня вылетала ошибка 13 Type mismatch.
Так эти дятлы залупили в макрос проверку условия
Код: vbnet
1.
[CurrentProject].[Application].[Version]<=12


А то, что CurrentProject].[Application].[Version], сцуко, имеет строковый тип, им никто не сказал...

В общем, достаточно окавычить значение, с которым сравниваем (в обоих условиях).Лично я предпочёл сделать так
Код: vbnet
1.
Val([CurrentProject].[Application].[Version])<=12

Меня вот заинтересовало, почему в обоих случаях условия не строгие? >= и <= ?
...
Рейтинг: 0 / 0
21.09.2017, 12:38
    #39524303
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
JossЛично я предпочёл сделать такВо-первых, неразумно. String - более универсальный тип.
Во-вторых, в общем случае это просто неправильно. Хорошо, что в MS Access разделитель разрядов субверсий - точка, хорошо, что нет (емнип) такой версии, как 12.1...
...
Рейтинг: 0 / 0
21.09.2017, 13:14
    #39524321
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
А что Вы скажете вот на это их произведение искусства?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Form_Load()
    If Application.Version >= 12# Then
        Me.Filter = "HelpID=1"
    Else
        Me.Filter = "HelpID=2"
    End If
    Me.FilterOn = True
End Sub

Форма frmHelp. Опять же 13 Type Mismatch
...
Рейтинг: 0 / 0
21.09.2017, 13:26
    #39524325
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
JossЛично я предпочёл сделать так
Код: vbnet
1.
Val([CurrentProject].[Application].[Version])<=12

Более корректно чем Val() работает функция Csng() . Ей всё равно, какой разделитель (.) или (,) , но вот в макросе она работать отказывается, а Val() работает.
...
Рейтинг: 0 / 0
14.08.2018, 13:39
    #39687452
studieren
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
JossJossЛично я предпочёл сделать так
Код: vbnet
1.
Val([CurrentProject].[Application].[Version])<=12

Более корректно чем Val() работает функция Csng() . Ей всё равно, какой разделитель (.) или (,) , но вот в макросе она работать отказывается, а Val() работает.
А почему Вы решили, что для CSng точка или запятая не имеет значения?
У меня вот так не работает
Код: vbnet
1.
?CSng("123.12")


А так без проблем
Код: vbnet
1.
?CSng("123,12")


Точка или запятая - смотря какие настройки Windows я полагаю.
Или Вы имели ввиду что-то другое?
...
Рейтинг: 0 / 0
14.08.2018, 14:33
    #39687515
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
Да, лопухнулся я тут
Код: vbnet
1.
?Val("123.12")

равно 123,12
А
Код: vbnet
1.
?Val("123,12")

равно 123.
С CSng("123.12") так же как у Вас. Error 13 Type mismatch
...
Рейтинг: 0 / 0
14.08.2018, 23:39
    #39687784
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
Бесплатная версия - медленные и жрущая память. А платная - хорошая, но платная.
...
Рейтинг: 0 / 0
15.08.2018, 09:49
    #39687864
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
Я вчера видел раков по пять рублей.
Но больших, Но по пять рублей...
...
а сегодня были по три,
но маленькие, но по три...
....
Вот и выбирай,
по пять, очень большие, но вчера,
либо по три, маленькие, но сегодня, понял?
...
(с) М.Жванецкий "Я видел раков"
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
25.06.2020, 14:24
    #39973174
vremennyy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
Как побороть сообщение "Отсутствует объект в данном элементе управления", которое ругается при загрузке на выражение:
Код: vbnet
1.
Set mfrImages = Me.subTreeView.Form.Controls("frImages").Object


При это сам объект frImage существует (отображается пустым прямоугольником в конструкторе). Подозреваю, что причина в Tools/References, но исправить проблему не знаю как. Помогите, пожалуйста.

З.Ы. Access 2003, Windows7-32. Библиотека Microsoft Forms 2.0 Object Library подключена.
...
Рейтинг: 0 / 0
25.06.2020, 16:54
    #39973246
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
vremennyy
Как побороть сообщение "Отсутствует объект в данном элементе управления", которое ругается при загрузке на выражение:
Код: vbnet
1.
Set mfrImages = Me.subTreeView.Form.Controls("frImages").Object


При это сам объект frImage существует (отображается пустым прямоугольником в конструкторе). Подозреваю, что причина в Tools/References, но исправить проблему не знаю как. Помогите, пожалуйста.

З.Ы. Access 2003, Windows7-32. Библиотека Microsoft Forms 2.0 Object Library подключена.

А оно работало и сломалось или вообще не работало?
Вот жеж - все я перепутал........
С этим у меня таких проблем не было.....
...
Рейтинг: 0 / 0
26.06.2020, 10:03
    #39973446
vremennyy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
Serg197311

А оно работало и сломалось или вообще не работало?
Вот жеж - все я перепутал........
С этим у меня таких проблем не было.....


Вообще не работало.
...
Рейтинг: 0 / 0
26.06.2020, 11:09
    #39973483
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
Код: vbnet
1.
2.
3.
4.
Set mctree = New clsTreeView
  With mctree
         Set .TreeControl = Me.frTreeControl
         Set .Images = Me.frmImageBox


И так далее
Me.frTreeControl - image
Может нет на форме ImageBox а?
...
Рейтинг: 0 / 0
26.06.2020, 12:54
    #39973529
vremennyy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
Serg197311

Может нет на форме ImageBox а?


frImages - есть на форме.
...
Рейтинг: 0 / 0
26.06.2020, 13:34
    #39973554
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
"При это сам объект frImage существует (отображается пустым прямоугольником в конструкторе)."
да, наконец-то я прочитал...
A MSCOMCTL.OCX добавить в ссылки не пробовал?
(И зарегисстрировать при необходимости)
Мне кажется почему-то что этот контрол оттуда...
...
Рейтинг: 0 / 0
30.06.2020, 12:25
    #39974509
vremennyy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)
Serg197311
A MSCOMCTL.OCX добавить в ссылки не пробовал?
(И зарегисстрировать при необходимости)
Мне кажется почему-то что этот контрол оттуда...


Не помогло (
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit) / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]