Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Программно скрыть таблицу  [new]
Lenabruleva
Member

Откуда:
Сообщений: 4
Здравствуйте! Можно ли программно скрыть таблицу? Т.е. запросом создается таблица, после выполнения запроса нужно данную таблицу скрыть! Только программно, а не в ручную.
Заранее спасибо.
19 фев 19, 13:53    [21814300]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1682
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
19 фев 19, 14:20    [21814327]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 241
Lenabruleva, есть два способа скрыть таблицу.
1. Изменение атрибута объекта вам показали. Метод хорош тем, что юзер никак его не увидит, пока не измените атрибут.
2. В окне навигации выделить таблицу и скрыть через контекстное меню. Такую таблицу можно увидеть серенькой, если в настройках БД установить флажок "Показывать скрытые объекты"
Если вам нужен этот вариант, то копайте в сторону Application.SetHiddenAttribute.
19 фев 19, 15:01    [21814379]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Лапух
Member

Откуда: Стойбище № 7
Сообщений: 813
Кривцов Анатолий, что даже при создании запроса не увидеть скрытую таблицу?
Просто щас нет возможности проверить, а узнать хочется уже сейчас. Картинка с другого сайта.
19 фев 19, 17:44    [21814642]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
vmag
Member

Откуда: MP
Сообщений: 3148
Кривцов Анатолий
Lenabruleva, есть два способа скрыть таблицу.
1. Изменение атрибута объекта вам показали. Метод хорош тем, что юзер никак его не увидит, пока не измените атрибут.


весьма забавно... такую таблицу в запрос не вставить, в конструкоре вообще жесть получается (таблица без имен и без полей)... DAO похоже без проблем... А обратно как вернуть ?
SetHiddenAttribute как то не сгодился, говорит что таблица теперь уже системная...
19 фев 19, 21:00    [21814888]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Игортан
Member

Откуда: Беларусь
Сообщений: 873
vmag,

помнится мне, у меня были проблемы после скрытия.
После того, как я скрывал программно таблицу
у меня были проблемы с бд у клиентов, после передачи.
Вин 7 и моложе и акс 2010 и моложе.
Пока я не импортировал в новую бд все, кроме скрытой таблицы.
А потом Руками создал новую, вместо скрытой....
И только после этого с бд стало возможным запись/изменение
19 фев 19, 23:46    [21814963]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4169
vmag
такую таблицу в запрос не вставить
Открываешь запрос в текстовом режиме и прописываешь руками, после переходишь в графический и хоть из списка выбираешь, хоть перетаскиваешь мышЁй (Access 2003, 2007, 2010).

vmag
А обратно как вернуть ?

Раз скрывает, раз возвращает доступность таблицы (не забываем обновлять окно БД)
Dim db As DAO.Database, tdf As DAO.TableDef

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


Игортан
помнится мне, у меня были проблемы после скрытия.
Единственная проблема про которую я слышал (по моему в версии 97) при сжатии такие таблицы удалялись.
20 фев 19, 04:35    [21815048]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4169
Добавлю навсякей...
Панург
Раз скрывает, раз возвращает доступность таблицы (не забываем обновлять окно БД)
Dim db As DAO.Database, tdf As DAO.TableDef

Set db = CurrentDb
Set tdf = db.TableDefs("Сотрудники")' мучаем Борей
tdf.Attributes = tdf.Attributes Xor dbHiddenObject' тут можно и по другому написать...
Application.RefreshDatabaseWindow
20 фев 19, 04:41    [21815051]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4169
Панург
Единственная проблема про которую я слышал (по моему в версии 97) при сжатии такие таблицы удалялись.
сейчас всё на месте, всё работает (Access 2010 32 En)
20 фев 19, 04:47    [21815055]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
vmag
Member

Откуда: MP
Сообщений: 3148
Панург,

Круто, спасибо, может пригодиться в определенных ситуациях... а то про шифт уже даже те знают, кто больше вообще ничего не знает, а это самое не приятное...
20 фев 19, 12:37    [21815298]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5744
vmag
Панург,

... а то про шифт уже даже те знают, кто больше вообще ничего не знает...
20 фев 19, 13:59    [21815410]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 4840
sdku
vmag
Панург,

... а то про шифт уже даже те знают, кто больше вообще ничего не знает...
Согласен. Есть защита от шифта.
23 фев 19, 18:43    [21817941]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
studieren
Member

Откуда: Tashkent, Uzbekistan
Сообщений: 2823
Панург
...
Раз скрывает, раз возвращает доступность таблицы (не забываем обновлять окно БД)
Dim db As DAO.Database, tdf As DAO.TableDef

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

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

Если же хотим наоборот скрыть, то вместо 0 пишем 1 (ибо dbHiddenObject = 1).
Я не понимаю, зачем вот это?
tdf.Attributes Xor dbHiddenObject
19 мар 19, 14:01    [21837325]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4169
studieren
Я не понимаю, зачем вот это?
это же пример. одна и та же строка кода попеременно прячет и показывает таблицу.
studieren
Если же хотим наоборот скрыть, то вместо 0 пишем 1

Ничего переписывать ненужно. Что тут может быть непонятно?
19 мар 19, 14:30    [21837364]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4169
studieren
А почему не запускать вот такой простой код?
Или тебя интересует зачем объявлены переменные? Так опять же - это пример. Объявленные переменные наглядно демонстрируют, что используются объекты и методы библиотеки DAO.

Это не соревнования - у кого короче...
19 мар 19, 14:37    [21837377]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5744
скрывать-отображать ТАБЛИЦУ - от лукавого все это
(скрыть от юзера навсегда и забыть.Пусть этим занимается тот кому разрешено,а так как, при правильно спроектированной базе, необходимость править таблицу возникает редко, то можно и ручками,без VBA)
19 мар 19, 15:21    [21837440]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5744
вдогонку:для получения каких-либо данных временно есть рекордсет
19 мар 19, 15:26    [21837447]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4169
sdku
скрывать-отображать ТАБЛИЦУ - от лукавого все это
ещё один...

б..., это ПРИМЕР
19 мар 19, 15:34    [21837458]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4169
sdku
вдогонку:для получения каких-либо данных временно есть рекордсет
С рекордсетом не получится работать с помощью SQL
19 мар 19, 15:37    [21837464]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 241
studieren
А почему не запускать вот такой простой код?
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 я раньше не пользовался.
Проверил, работает (Панург, спасибо):
?7 xor 1
 6 
?6 xor 1
 7
Но, если атрибут, уже имеет нужное значение, то конструкции, приведенные выше, ничего не меняют (что и требуется), а вариант с XOR всегда меняет значение бита на обратное.
19 мар 19, 15:49    [21837483]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4169
Кривцов Анатолий
Attributes - битовая маска, где каждый бит может за что-то отвечать.
спасибо за дополнение, я как-то не подумал этот момент осветить.
19 мар 19, 15:54    [21837491]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5744
Панург
sdku
скрывать-отображать ТАБЛИЦУ - от лукавого все это
ещё один...
б..., это ПРИМЕР
хороший пример того, что сделать можно,но не нужно
(как,например,поля подстановки в таблицах)
19 мар 19, 17:00    [21837576]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4169
sdku
хороший пример того, что сделать можно,но не нужно
(как,например,поля подстановки в таблицах)
никогда не поноси чем не пользуешься. Это говорит только о твоей ограниченности.
Полями с подстановкой я тоже пользуюсь.
Как-то так...
19 мар 19, 17:46    [21837620]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5744
Панург
Полями с подстановкой я тоже пользуюсь.
Как-то так...
Да лишь бы на здоровье
19 мар 19, 20:09    [21837745]     Ответить | Цитировать Сообщить модератору
 Re: Программно скрыть таблицу  [new]
Lenabruleva
Member

Откуда:
Сообщений: 4
Спасибо большое
25 апр 19, 10:01    [21871261]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить