powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в списке отобразить все имена моих функций???
25 сообщений из 25, страница 1 из 1
Как в списке отобразить все имена моих функций???
    #37383214
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как все имена таблиц, запросов, форм........ вывести в списке я знаю. Делаю запрос к таблице MSysObjects, а вот как вывести имена всех моих функций я незнаю. Кто знает подскажите пжл.
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383218
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из коллекции Serge Gavrilov

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
Public Function AllProcs()
'Public Function AllProcs(ByVal strModuleName As String)
    'Dim mdl As Module
    Dim strModuleName
    Dim oVBComponent As Object
    Dim mdl As Object
    Dim lngCount As Long
    Dim lngCountDecl As Long
    Dim lngI As Long
    Dim strProcName As String
    'Dim astrProcNames() As String
    Dim colProcNames As Collection
    Dim intI As Integer
    Dim strMsg As String
    Dim lngR As Long
    Dim varItem
    ' Open specified Module object.
    'DoCmd.OpenModule strModuleName
    
    ' Return reference to Module object.
    'Set mdl = Modules(strModuleName)
    Set colProcNames = New Collection
    For Each oVBComponent In Application.VBE.ActiveVBProject.VBComponents
        Set mdl = oVBComponent.CodeModule
        strModuleName = mdl.Name
        ' Count lines in module.
        lngCount = mdl.CountOfLines
        
        ' Count lines in Declaration section in module.
        lngCountDecl = mdl.CountOfDeclarationLines
        
        ' Determine name of first procedure.
        strProcName = mdl.ProcOfLine(lngCountDecl +  1 , lngR)
        
        ' Initialize counter variable.
        intI =  0 
        
        ' Redimension array.
        'ReDim Preserve astrProcNames(intI)
        
        ' Store name of first procedure in array.
        'astrProcNames(intI) = strProcName
        colProcNames.Add mdl.Name & "." & strProcName
        ' Determine procedure name for each line after declarations.
        For lngI = lngCountDecl +  1  To lngCount
            ' Compare procedure name with ProcOfLine property value.
            If strProcName <> mdl.ProcOfLine(lngI, lngR) Then
                ' Increment counter.
                'intI = intI + 1
                strProcName = mdl.ProcOfLine(lngI, lngR)
                'ReDim Preserve astrProcNames(intI)
                ' Assign unique procedure names to array.
                'astrProcNames(intI) = strProcName
                colProcNames.Add mdl.Name & "." & strProcName
                
            End If
        Next lngI
    Next
    
'    strMsg = "Procedures in module '" & strModuleName & "': " & vbCrLf & vbCrLf
'    For intI = 0 To UBound(astrProcNames)
'        strMsg = strMsg & astrProcNames(intI) & vbCrLf
'    Next intI
    
    ' Message box listing all procedures in module.
    'MsgBox strMsg
    For Each varItem In colProcNames
        Debug.Print varItem
    Next
End Function
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383226
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_world, Спасибо работает. вытягивает всё даже то что мне не надо, а как вывести только функции в модулях?
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383228
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_world,
И как сделать чтобы в списке были имена и таблиц, запросов,......и функций?
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383230
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alekxmds_world, Спасибо работает. вытягивает всё даже то что мне не надо, а как вывести только функции в модулях?
Если есть префикс Form или Report, значит находится в модуле формы/отчета
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383232
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekxИ как сделать чтобы в списке были имена и таблиц, запросов,......и функций?
Так вы ж, во первых строках объявили, что умеете получать их имена AlekxКак все имена таблиц, запросов, форм........ вывести в списке я знаю. Делаю запрос к таблице MSysObjects
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383235
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_world, )) умею но как слепить в кучу незнаю
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383237
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alekx,

Вы хотите в одном списке на форме отобразить все? Зачем, если не секрет?
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383241
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_world, если коротко, то есть таблица в ней поля TypeObject и NameObject. С полем TypeObject все ясно: таблицы, запросы, формы, отчёты, макросы, запуск программы. С полем NameObject тожке всё ясно кроме как получить имя функцыи, но без префикса и только тех которые в модулях. И причём все имена обьектов БД должны выпадать в списке2 в зависимости от того каой тип обьекта выбран в списке1.
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383243
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бобольшому счёту если можно все оьекты Бд вытянуть черес код без MSysObjects так это ещё лучше
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383476
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал следующий код для вывода имён процедур в модулях:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Function AllFunctions()

Dim mdl As String
Dim i As Integer
Dim cm As CodeModule
Dim lngCount As Long
    
    
    For i =  0  To CurrentProject.AllModules.Count -  1 
       
      mdl = CurrentProject.AllModules(i).Name
    
        Set cm = Application.VBE.ActiveVBProject. _
        VBComponents(mdl).CodeModule
      
        lngCount = cm.CountOfDeclarationLines +  1 
    
           Do Until lngCount >= cm.CountOfLines
            Debug.Print cm.ProcOfLine(lngCount, vbext_pk_Proc)
        
            lngCount = lngCount + cm.ProcCountLines( _
            cm.ProcOfLine(lngCount, vbext_pk_Proc), _
            vbext_pk_Proc)
           Loop

    Next i

End Function

имена выводятся, но выскакивает ошибка:

Sub Function not defined

как это подправить?
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383629
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что, так и не сделал до сих пор? Ладно, сейчас, что-нибудь сооружу
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383643
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробуйте
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383671
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
If Left(colMdlNames.Item(i),  4 ) <> "Form" And Left(colMdlNames.Item(i),  6 ) <> "Report" Then
Проще проверить значение VBComponents(n).Type до.
Не?
:)
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383679
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nord-woolfПроще проверить значение VBComponents(n).Type до.
Не?
:)
Красиво. Даже и не подумал о таком решении.
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37383837
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mds_world, Очередной раз БОЛЬШОЕ СПАСИБО !!!
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37412519
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nord-woolf,

В продолжение темы
Что имелось ввиду
авторIf Left(colMdlNames.Item(i), 4) <> "Form" And Left(colMdlNames.Item(i), 6) <> "Report" Then
Проще проверить значение VBComponents(n).Type до.
Не?
:)

Куда и как это писать????
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37412577
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alekx...Куда и как это писать????

Я обычно пишу в текст процедуры модуля
легкими нажатиями пальцев на клавиши клавиатуры.
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37412594
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nord-woolf, ))) Да я тоже так делаю, но помоготе разобраться
Куда это писать VBComponents(n).Type
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37412599
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nord-woolf,

Alekx, было сказано
авторПроще проверить значение VBComponents(n).Type до

Вот я и хочу узнать как это сделать
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37414210
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nord-woolf, подскажите пжл что вы имели ввиду.

авторПроще проверить значение VBComponents(n).Type до
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37414241
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как-то так можно попробовать для начала:
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37414400
Alekx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nord-woolf,

большое спасибо, а можете подсказать код, который бы через Debug.Print strProcName просто вывел все имена функий, процедур которые находятся в модулях (без форм и отчётов) проэкта
...
Рейтинг: 0 / 0
Как в списке отобразить все имена моих функций???
    #37414410
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Легко:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Sub PrintProcedures()
    Dim i As Integer, j As Integer
    
    With New clsModules
        If .IsComplete Then
            For i =  1  To .StandartModules.Count
                For j =  1  To .StandartModules(i).Procedures.Count
                    With .StandartModules(i)
                        Debug.Print .Name, .Procedures(j)
                    End With
                Next j
            Next
        End If
    End With
End Sub
Модули классов взять из предыдущего прицепа.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как в списке отобразить все имена моих функций???
    #39309336
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nord-woolf,

Спасибо!
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в списке отобразить все имена моих функций???
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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