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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Исчезла форма
 
 автор: П.Полиграфович   (08.09.2008 в 19:42)   личное сообщение
 
 

"Форменный" баг. В списке форм БД перестала отображаться форма, несмотря на то, что в коллекции AllForms она имеется и программно без проблем открывается. Как восстановить ее видимость в окне базы данных??? Да модуль формы тоже вижу

  Ответить  
 
 автор: Lukas   (08.09.2008 в 19:51)   личное сообщение
 
 

Импорт всего в новый файл должен помочь.

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

А ещё бывает свойство формы = скрытый объект базы

  Ответить  
 
 автор: П.Полиграфович   (09.09.2008 в 21:17)   личное сообщение
 
 

Да, но этот атрибут доступен если доступна форма, т.е. если она отображается в окне БД.
Как добраться до этого св-ва программно, если вообще можно?

  Ответить  
 
 автор: Lukas   (09.09.2008 в 21:55)   личное сообщение
 
 

Для таблицы инвертирует атрибут:

Public Function funReversAttributHiddenObject(tableName As String)

    Select Case CurrentDb(tableName).Attributes
        Case Is = 1
            CurrentDb(tableName).Attributes = 0
        Case Is = 0
            CurrentDb(tableName).Attributes = 1 'dbHiddenObject
    End Select

End Function

  Ответить  
 
 автор: Bellerofont   (09.09.2008 в 23:00)   личное сообщение
 
 

Можно прграммно, см SetHiddenAttribute и GetHiddenAttribute

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

Сервис-парамеирызапуска-отображать скрытые объекты

  Ответить  
 
 автор: П.Полиграфович   (09.09.2008 в 21:13)   личное сообщение
10 Кб.
 
 

Lukas: При импорте одной из форм появляется ошибка (см.прикрепленый .bmp) хотя ни проекта ни модуля одноименного нет! Также при импорте форм, той самой формы, мастер импорта не видит

  Ответить  
 
 автор: Lukas   (09.09.2008 в 21:51)   личное сообщение
 
 

Попробуйте на копии декомпилировать базу, указав свой файл:
Меню Пуск - Выполнить, ввести:
"C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE" C:\file.mdb /decompile
Это для A2003, для других другой путь к Access.

  Ответить  
 
 автор: Lukas   (09.09.2008 в 22:00)   личное сообщение
 
 

У меня такая фигня возникает при попытке сохранить новую форму под именем "Форма1".
Появилась не так давно, причем даже в чистом файле.
Создаю форму без сохранения, сохраняю под другим именем.
Это все происки империалистов!

  Ответить  
 
 автор: П.Полиграфович   (09.09.2008 в 23:08)   личное сообщение
 
 

Декомпайл не помог. Попытался передать в вашу ф-цию аргументом имя формы..ругался на отсутствие объекта, хотя в теле никакой ссылки на коллекцию именно табл не увидел?!
Вот такую инструкцию добавил на кнопку и ФОРМА ПОЯВИЛАСЬ!!!

Application.SetHiddenAttribute acForm, "Имя_формы", False

Спасибо за поддержку ... чудная штука IntelloSense VBE

  Ответить  
 
 автор: Lukas   (09.09.2008 в 23:18)   личное сообщение
 
 

Формы не являются элементами коллекций объекта CurrentDb. Они элементы коллекций
объекта CurrentProject.

  Ответить  
 
 автор: П.Полиграфович   (09.09.2008 в 23:39)   личное сообщение
 
 

Даа.. таблицы, то в объекте CurrentData, а формы - в CurrentProject ТОЧНО но это уже ADO..

  Ответить  
 
 автор: Bellerofont   (10.09.2008 в 10:42)   личное сообщение
 
 

currentproject не ADO, это объект Access

  Ответить  
 
 автор: П.Полиграфович   (10.09.2008 в 11:38)   личное сообщение
 
 

Верно, объектная модель Access. В ADO основной объект Connection.. sorry

  Ответить  
 
 автор: osmor   (10.09.2008 в 10:46)   личное сообщение
 
 

Это не так
попробуйте

? currentdb().containers("Forms").Documents(0).name


Просто будут получет разные объекты,в одном случае DAO.Document, в другом access.AccessObject

  Ответить  
 
 автор: Bellerofont   (10.09.2008 в 10:50)   личное сообщение
 
 

Желательно уточнять, что вы подразумеваете под формами.

Объект Form - это элемент коллекции Forms и относится к Application.
Есть коллекция AllForms (CurrentProject или CodeProject)
Есть коллекция Database.Containers("Forms").Documents

CurrentDb это не объект, а функция, возвращающая ссылку на объект Database.

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