Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программно скрыть таблицу / 25 сообщений из 29, страница 1 из 2
19.02.2019, 13:53
    #39776168
Lenabruleva
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
Здравствуйте! Можно ли программно скрыть таблицу? Т.е. запросом создается таблица, после выполнения запроса нужно данную таблицу скрыть! Только программно, а не в ручную.
Заранее спасибо.
...
Рейтинг: 0 / 0
19.02.2019, 14:20
    #39776182
ROI
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
19.02.2019, 15:01
    #39776202
Программно скрыть таблицу
Lenabruleva, есть два способа скрыть таблицу.
1. Изменение атрибута объекта вам показали. Метод хорош тем, что юзер никак его не увидит, пока не измените атрибут.
2. В окне навигации выделить таблицу и скрыть через контекстное меню. Такую таблицу можно увидеть серенькой, если в настройках БД установить флажок "Показывать скрытые объекты"
Если вам нужен этот вариант, то копайте в сторону Application.SetHiddenAttribute.
...
Рейтинг: 0 / 0
19.02.2019, 17:44
    #39776353
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
Кривцов Анатолий, что даже при создании запроса не увидеть скрытую таблицу?
Просто щас нет возможности проверить, а узнать хочется уже сейчас.
...
Рейтинг: 0 / 0
19.02.2019, 21:00
    #39776461
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
Кривцов АнатолийLenabruleva, есть два способа скрыть таблицу.
1. Изменение атрибута объекта вам показали. Метод хорош тем, что юзер никак его не увидит, пока не измените атрибут.

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

помнится мне, у меня были проблемы после скрытия.
После того, как я скрывал программно таблицу
у меня были проблемы с бд у клиентов, после передачи.
Вин 7 и моложе и акс 2010 и моложе.
Пока я не импортировал в новую бд все, кроме скрытой таблицы.
А потом Руками создал новую, вместо скрытой....
И только после этого с бд стало возможным запись/изменение
...
Рейтинг: 0 / 0
20.02.2019, 04:35
    #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
20.02.2019, 04:41
    #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
20.02.2019, 04:47
    #39776533
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
ПанургЕдинственная проблема про которую я слышал (по моему в версии 97) при сжатии такие таблицы удалялись.сейчас всё на месте, всё работает (Access 2010 32 En)
...
Рейтинг: 0 / 0
20.02.2019, 12:37
    #39776680
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
Панург,

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

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

... а то про шифт уже даже те знают, кто больше вообще ничего не знает...Согласен. Есть защита от шифта.
...
Рейтинг: 0 / 0
19.03.2019, 14:01
    #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
19.03.2019, 14:30
    #39788459
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
studierenЯ не понимаю, зачем вот это?это же пример. одна и та же строка кода попеременно прячет и показывает таблицу. studierenЕсли же хотим наоборот скрыть, то вместо 0 пишем 1
Ничего переписывать ненужно. Что тут может быть непонятно?
...
Рейтинг: 0 / 0
19.03.2019, 14:37
    #39788466
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
studierenА почему не запускать вот такой простой код?Или тебя интересует зачем объявлены переменные? Так опять же - это пример. Объявленные переменные наглядно демонстрируют, что используются объекты и методы библиотеки DAO.

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

б..., это ПРИМЕР
...
Рейтинг: 0 / 0
19.03.2019, 15:37
    #39788511
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
sdkuвдогонку:для получения каких-либо данных временно есть рекордсетС рекордсетом не получится работать с помощью SQL
...
Рейтинг: 0 / 0
19.03.2019, 15:49
    #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
19.03.2019, 15:54
    #39788523
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
Кривцов АнатолийAttributes - битовая маска, где каждый бит может за что-то отвечать.спасибо за дополнение, я как-то не подумал этот момент осветить.
...
Рейтинг: 0 / 0
19.03.2019, 17:00
    #39788553
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
Панургsdkuскрывать-отображать ТАБЛИЦУ - от лукавого все этоещё один...
б..., это ПРИМЕР хороший пример того, что сделать можно,но не нужно
(как,например,поля подстановки в таблицах)
...
Рейтинг: 0 / 0
19.03.2019, 17:46
    #39788572
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
sdkuхороший пример того, что сделать можно,но не нужно
(как,например,поля подстановки в таблицах)никогда не поноси чем не пользуешься. Это говорит только о твоей ограниченности.
Полями с подстановкой я тоже пользуюсь.
Как-то так...
...
Рейтинг: 0 / 0
19.03.2019, 20:09
    #39788640
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
ПанургПолями с подстановкой я тоже пользуюсь.
Как-то так...Да лишь бы на здоровье
...
Рейтинг: 0 / 0
25.04.2019, 10:01
    #39806021
Lenabruleva
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно скрыть таблицу
Спасибо большое
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программно скрыть таблицу / 25 сообщений из 29, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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