Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2010, 14:38   #1
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию Перебрать циклом формы

Добрый день,подскажите как перебрать циклом все формы

пробую так но....
Код:
dim frm as form
for each  frm in forms
msgbox frm.name
next frm
перебирает только открытые а надо все не открывая
как быть?
Заранее спасибо
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 10.11.2010 в 22:51.
R Dmitry вне форума Ответить с цитированием
Старый 10.11.2010, 15:28   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте R Dmitry.
да действительно в коллекцию Forms попадают только открытые формы
но получить список всех форм всё-же можно, например так:
Код:
Sub ListForm()
Const sQ = "SELECT Name FROM MSysObjects WHERE Type=-32768"
Dim d As DAO.Database, r As DAO.Recordset
Set d = CurrentDb
Set r = d.OpenRecordset(sQ)
Do Until r.EOF
    Debug.Print r(0)
    'MsgBox r(0)
    r.MoveNext
Loop
r.Close
Set r = Nothing: Set d = Nothing
End Sub
Евгений.

P.S. для удобочитаемости выкладываемый код заключайте в тэги - [соde]...[/соde]
Teslenko_EA вне форума Ответить с цитированием
Старый 10.11.2010, 22:48   #3
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
Здравствуйте R Dmitry.
да действительно в коллекцию Forms попадают только открытые формы
но получить список всех форм всё-же можно, например так:
Код:
Sub ListForm()
Const sQ = "SELECT Name FROM MSysObjects WHERE Type=-32768"
Dim d As DAO.Database, r As DAO.Recordset
Set d = CurrentDb
Set r = d.OpenRecordset(sQ)
Do Until r.EOF
    Debug.Print r(0)
    'MsgBox r(0)
    r.MoveNext
Loop
r.Close
Set r = Nothing: Set d = Nothing
End Sub
Евгений.

P.S. для удобочитаемости выкладываемый код заключайте в тэги - [соde]...[/соde]
Евгений, спасибо. Мне нужно немного не это....
может я не туда копаю
Есть форма в ней около 20 подчиненных форм
мне необходимо программно дать или убрать доступ к редактированию данных
меняю свойства (false,true)
Код:
AllowAdditions
AllowEdits
AllowDeletions
Можно конечно ручками прописать все формы и их свойства но это как то неправильно
Может еще какие нибудь варианты есть,
Ведь в Вашем случае мы получаем строковое значение имени объекта, а нужен сам объект Form

как то так
зы.... писал код выше прямо в форум поэтому и некрасивый такой
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 11.11.2010, 19:54   #4
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

разобрался
Код:
Sub frm_s()
Dim Frm As AccessObject
For Each Frm In CurrentProject.AllForms
Debug.Print Frm.Name
Next Frm
End Sub
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перебрать двумерный массив с шагом rubik Общие вопросы Delphi 1 17.04.2010 23:46
Макрос( перебрать строки таблицы) fateev_max Microsoft Office Excel 14 24.02.2010 20:08
Как программно перебрать в цикле все формы в приложении? chandrasecar Общие вопросы Delphi 18 11.09.2009 12:14
как перебрать все элементы на форме? Аlex Общие вопросы C/C++ 1 07.02.2009 03:46
перебрать все варианты перестановки строк sv_mix Помощь студентам 2 26.07.2008 17:48