PDA

View Full Version : چگونگی پنهان کردن Table ها در اکسس



samiasoft
سه شنبه 04 تیر 1392, 22:12 عصر
سلام دوستان

چگونه میتوان در یک فایل اکسس که حاوی Table هست این تیبل ها رو پنهون کرد یعنی در هنگام اجرا هیچ چیزی نمایش داده نشه؟

در فایل زیر اگر دریافت کنید مشاهده میکنید که همین کار صورت گرفته و سوال دومم این هست که چکونه میتوان این را به حالت اولیه برگرداند؟یعنی از حالت پنهان خارج کرد

فایل اکسس (http://s2.picofile.com/file/7818666448/soal_accsese.rar.html)

reza_1199
چهارشنبه 05 تیر 1392, 09:39 صبح
دوست گرامی ببین این بدردت میخوره

Abbas Amiri
چهارشنبه 05 تیر 1392, 21:30 عصر
دوست گرامی ببین این بدردت میخوره

بعد از تغییر وضعیت مخفی یا آشکار شدن از دستور
Application.RefreshDatabaseWindow استفاده کنید .

saeed1234n
چهارشنبه 05 تیر 1392, 22:49 عصر
با سلام
جناب استاد امیری :
اگر محبت کنید راجع به کد زیر توضیح بفرمایید کمال تشکر را دارم برای بنده نامفهوم است :متعجب::متفکر:

If Left(tdf.Name, 4) <> "msys" And tdf.Attributes <> 1073741824 _
And tdf.Attributes = 1 Then
tdf.Attributes = tdf.Attributes - dbHiddenObject

Abbas Amiri
چهارشنبه 05 تیر 1392, 23:38 عصر
با سلام
جناب استاد امیری :
اگر محبت کنید راجع به کد زیر توضیح بفرمایید کمال تشکر را دارم برای بنده نامفهوم است :متعجب::متفکر:

If Left(tdf.Name, 4) <> "msys" And tdf.Attributes <> 1073741824 _
And tdf.Attributes = 1 Then
tdf.Attributes = tdf.Attributes - dbHiddenObject


اگر در object Browser عبارت TableDefAttributeEnum رو جستجو کنید با تصویر زیر مواجه می شوید:


106206


اینها ثوابت عددی هستند که برخی ویژگیهای یک جدول را مشخص می کنند که هرکدام مشخص کننده عددی خاص هستند . مثلا dbAttachedTable برایر 1073741824 می باشد .

چنانچه یک جدول عادی داشته باشید خصوصیت Attributes آن صفر خواهد بود و با توجه به تصویر فوق برای باقی حالات طبق جدول زیر است


106207


معمولا ثابت های شمارشی طوری تنظیم شده اند که می توانید ترکیبی از آنها را بکار ببرید ( با OR و AND کردن و یا جمع و تفریق) یعنی بطور مثال یک جدول هم می تواند سیستمی شده باشد و هم مخفی :


tdf.Attributes = dbHiddenObject + dbSystemObject
و یا
tdf.Attributes = dbHiddenObject OR dbSystemObject

در دستور دومی احتیاج به چک کردن این موضوع نیست که جدول قبلا مخفی نشده باشد .

زمانی هم که قصد برداشتن ویژگی داده شده را داشته باشیم مثلا آنرا ازحالت مخفی در آوریم بهترین روش AND NOT آنست


tdf.Attributes = tdf.Attributes And Not dbHiddenObject


اگر بخواهیم مانند نمونه دوستمان مقدار را کم کنیم حتما بایستی وجود ویژگی در جدول چک شود درغیر اینصورت مقدار نادرستی میگیرد و باعث خطا خواهد شد.

در مورد
If Left(tdf.Name, 4) <> "msys"
چک شده که جدول جزو جدولهای سیستمی نباشد که می شد بجای آن

And Not(tdf.Attributes Or dbSystemObject)
را هم نوشت که هیچ فرقی نمی کند .

vivapersian@hotmail.com
پنج شنبه 06 دی 1397, 09:56 صبح
سلام
فایلی که دوستان گذاشته بودن خیلی جالب بود
ولی قابلیت مخفی کردن تیبل هایی که بصورت لینک به برنامه اضافه شده رو نداره
دوستان میتونن برای حل مشکل راهنمایی کنن؟؟؟؟

vivapersian@hotmail.com
یک شنبه 09 دی 1397, 22:04 عصر
دوستان کسی راه حلی نداره؟؟؟

mazoolagh
سه شنبه 11 دی 1397, 09:10 صبح
سلام
فایلی که دوستان گذاشته بودن خیلی جالب بود
ولی قابلیت مخفی کردن تیبل هایی که بصورت لینک به برنامه اضافه شده رو نداره
دوستان میتونن برای حل مشکل راهنمایی کنن؟؟؟؟

پیشتر بحث مفصلی در باره اش انجام شده - جستجو کنین
نتیجه نهایی و قطعی این بود :
نمیشه!

vivapersian@hotmail.com
سه شنبه 11 دی 1397, 22:01 عصر
خیلی ممنون