powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программно скрыть таблицу
25 сообщений из 29, страница 1 из 2
Программно скрыть таблицу
    #39776168
Lenabruleva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Можно ли программно скрыть таблицу? Т.е. запросом создается таблица, после выполнения запроса нужно данную таблицу скрыть! Только программно, а не в ручную.
Заранее спасибо.
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39776182
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LenabrulevaЗдравствуйте! Можно ли программно скрыть таблицу? Т.е. запросом создается таблица, после выполнения запроса нужно данную таблицу скрыть! Только программно, а не в ручную.
Заранее спасибо.
https://www.sql.ru/forum/496498/atributy-tablicy?hl=?????? ???????
а вобще-то прежде чем создавать тему пользуйтесь поиском ну иFAQ
https://www.sql.ru/forum/139276/rekomendacii-po-publikacii-soobshheniy-chitayte-faq-a-takzhe
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39776202
Lenabruleva, есть два способа скрыть таблицу.
1. Изменение атрибута объекта вам показали. Метод хорош тем, что юзер никак его не увидит, пока не измените атрибут.
2. В окне навигации выделить таблицу и скрыть через контекстное меню. Такую таблицу можно увидеть серенькой, если в настройках БД установить флажок "Показывать скрытые объекты"
Если вам нужен этот вариант, то копайте в сторону Application.SetHiddenAttribute.
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39776353
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий, что даже при создании запроса не увидеть скрытую таблицу?
Просто щас нет возможности проверить, а узнать хочется уже сейчас.
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39776461
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов АнатолийLenabruleva, есть два способа скрыть таблицу.
1. Изменение атрибута объекта вам показали. Метод хорош тем, что юзер никак его не увидит, пока не измените атрибут.

весьма забавно... такую таблицу в запрос не вставить, в конструкоре вообще жесть получается (таблица без имен и без полей)... DAO похоже без проблем... А обратно как вернуть ?
SetHiddenAttribute как то не сгодился, говорит что таблица теперь уже системная...
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39776501
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

помнится мне, у меня были проблемы после скрытия.
После того, как я скрывал программно таблицу
у меня были проблемы с бд у клиентов, после передачи.
Вин 7 и моложе и акс 2010 и моложе.
Пока я не импортировал в новую бд все, кроме скрытой таблицы.
А потом Руками создал новую, вместо скрытой....
И только после этого с бд стало возможным запись/изменение
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39776530
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagтакую таблицу в запрос не вставитьОткрываешь запрос в текстовом режиме и прописываешь руками, после переходишь в графический и хоть из списка выбираешь, хоть перетаскиваешь мышЁй (Access 2003, 2007, 2010).

vmagА обратно как вернуть ?
Раз скрывает, раз возвращает доступность таблицы (не забываем обновлять окно БД)
Код: vbnet
1.
2.
3.
4.
5.
Dim db As DAO.Database, tdf As DAO.TableDef

Set db = CurrentDb
Set tdf = db.TableDefs("Сотрудники")' мучаем Борей
tdf.Attributes = tdf.Attributes Xor dbHiddenObject' тут можно и по другому написать...



Игортанпомнится мне, у меня были проблемы после скрытия.Единственная проблема про которую я слышал (по моему в версии 97) при сжатии такие таблицы удалялись.
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39776532
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю навсякей...
ПанургРаз скрывает, раз возвращает доступность таблицы ( не забываем обновлять окно БД )
Код: vbnet
1.
2.
3.
4.
5.
6.
Dim db As DAO.Database, tdf As DAO.TableDef

Set db = CurrentDb
Set tdf = db.TableDefs("Сотрудники")' мучаем Борей
tdf.Attributes = tdf.Attributes Xor dbHiddenObject' тут можно и по другому написать...
Application.RefreshDatabaseWindow
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39776533
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургЕдинственная проблема про которую я слышал (по моему в версии 97) при сжатии такие таблицы удалялись.сейчас всё на месте, всё работает (Access 2010 32 En)
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39776680
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,

Круто, спасибо, может пригодиться в определенных ситуациях... а то про шифт уже даже те знают, кто больше вообще ничего не знает, а это самое не приятное...
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39776735
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagПанург,

... а то про шифт уже даже те знают, кто больше вообще ничего не знает...
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39778328
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuvmagПанург,

... а то про шифт уже даже те знают, кто больше вообще ничего не знает...Согласен. Есть защита от шифта.
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39788427
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург...
Раз скрывает, раз возвращает доступность таблицы (не забываем обновлять окно БД)
Код: vbnet
1.
2.
3.
4.
5.
Dim db As DAO.Database, tdf As DAO.TableDef

Set db = CurrentDb
Set tdf = db.TableDefs("Сотрудники")' мучаем Борей
tdf.Attributes = tdf.Attributes Xor dbHiddenObject' тут можно и по другому написать...


А почему не запускать вот такой простой код?
Код: vbnet
1.
2.
CurrentDb.TableDefs("Сотрудники").Attributes = 0
Application.RefreshDatabaseWindow


Если же хотим наоборот скрыть, то вместо 0 пишем 1 (ибо dbHiddenObject = 1).
Я не понимаю, зачем вот это?
tdf.Attributes Xor dbHiddenObject
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39788459
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
studierenЯ не понимаю, зачем вот это?это же пример. одна и та же строка кода попеременно прячет и показывает таблицу. studierenЕсли же хотим наоборот скрыть, то вместо 0 пишем 1
Ничего переписывать ненужно. Что тут может быть непонятно?
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39788466
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
studierenА почему не запускать вот такой простой код?Или тебя интересует зачем объявлены переменные? Так опять же - это пример. Объявленные переменные наглядно демонстрируют, что используются объекты и методы библиотеки DAO.

Это не соревнования - у кого короче...
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39788495
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скрывать-отображать ТАБЛИЦУ - от лукавого все это
(скрыть от юзера навсегда и забыть.Пусть этим занимается тот кому разрешено,а так как, при правильно спроектированной базе, необходимость править таблицу возникает редко, то можно и ручками,без VBA)
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39788501
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку:для получения каких-либо данных временно есть рекордсет
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39788507
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuскрывать-отображать ТАБЛИЦУ - от лукавого все этоещё один...

б..., это ПРИМЕР
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39788511
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuвдогонку:для получения каких-либо данных временно есть рекордсетС рекордсетом не получится работать с помощью SQL
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39788521
studierenА почему не запускать вот такой простой код?
Код: vbnet
1.
2.
CurrentDb.TableDefs("Сотрудники").Attributes = 0
Application.RefreshDatabaseWindow

Если же хотим наоборот скрыть, то вместо 0 пишем 1 (ибо dbHiddenObject = 1).
Я не понимаю, зачем вот это?
tdf.Attributes Xor dbHiddenObject
Attributes - битовая маска, где каждый бит может за что-то отвечать.
Признак скрытости может быть не единственным в маске и простое присвоение 1 или 0 обнулит все остальные биты.
Поэтому:
tdf.Attributes = tdf.Attributes Or dbHiddenObject (или Or 1)
пишет 1 в первый бит, не трогая остальные, а
tdf.Attributes = Not (tdf.Attributes And dbHiddenObject)
обнуляет только этот бит.

Конструкцией tdf.Attributes = tdf.Attributes Xor dbHiddenObject я раньше не пользовался.
Проверил, работает (Панург, спасибо):
Код: vbnet
1.
2.
3.
4.
?7 xor 1
 6 
?6 xor 1
 7

Но, если атрибут, уже имеет нужное значение, то конструкции, приведенные выше, ничего не меняют (что и требуется), а вариант с XOR всегда меняет значение бита на обратное.
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39788523
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов АнатолийAttributes - битовая маска, где каждый бит может за что-то отвечать.спасибо за дополнение, я как-то не подумал этот момент осветить.
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39788553
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургsdkuскрывать-отображать ТАБЛИЦУ - от лукавого все этоещё один...
б..., это ПРИМЕР хороший пример того, что сделать можно,но не нужно
(как,например,поля подстановки в таблицах)
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39788572
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuхороший пример того, что сделать можно,но не нужно
(как,например,поля подстановки в таблицах)никогда не поноси чем не пользуешься. Это говорит только о твоей ограниченности.
Полями с подстановкой я тоже пользуюсь.
Как-то так...
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39788640
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургПолями с подстановкой я тоже пользуюсь.
Как-то так...Да лишь бы на здоровье
...
Рейтинг: 0 / 0
Программно скрыть таблицу
    #39806021
Lenabruleva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программно скрыть таблицу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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