PDA

View Full Version : سوال: دسترسی کاربر به محتویات نرم افزار در اولین اجرا



u.2u.4u
دوشنبه 01 خرداد 1391, 11:39 صبح
با سلام خدمت دوستان و اساتید.
می دونید که روشهایی که برای مخفی کردن ریبون از طریق کد به کار می روند این مشکل را دارند که در اکسس 2010، در اولین باری که نرم افزار اجرا می شود ماکروها یا کدها را اجرا نمی کند و دکمه Enable content و منوی فایل و ... را نمایش می دهد که باعث می شود هر کاربر نه چندان ماهری بتواند به تمام محتواهای برنامه دسترسی داشته باشد.
البته من یه مشکل دیگر هم دارم که نمی تونم فایلم را mde کنم. چون توی این حالت نمی شه گزارش ها را در حالت design باز کرد و در نرم افزار من نیاز هست که این کار انجام بشه(کاربر بتونه گزارش ها را در حالت design باز کنه)
خوب حالا اگر یکی از این دو مشکل حل شوند کل مشکل ما حل می شود.
ممنون از کمکتون

Mehr@ban
سه شنبه 02 خرداد 1391, 13:40 عصر
سلام در مورد اول كه خوبه يه كد ريجستري درست كني كه حالت ماكرو رو فعال كنه كه اگر برنامه شما فايل ستاپ داشته باشه ميتوني اونجا فعالش كنيمن مال 2003 رو دارم ولي 2010 رو نه !!!

مورد دوم رو نميدونم ولي فك كنم راه حل اساسي نباشه بايد دنبال كلك رشتي باشي


_______________
راستي ميشه در مورد امضاتون يه توضيحي بفرمائيد:متفکر:

u.2u.4u
چهارشنبه 03 خرداد 1391, 13:30 عصر
ممنون از کمکتون. اما خوب اکثرا دیگه از آفیس 2010 یا 2007 استفاده می کنند. اگه بتونید در مورد اون کلک رشتی یه توضیحی بدید ممنون میشم.
چه توضیحی در مورد امضا بدم؟ داره میگه یه نیگاه به پشت سرتون بندازید. حتما خیلی چیزها را ندیدید یا نمی بینید یا ... . واضحه دیگه. بیشتر بگم اخراج میشم:افسرده:

u.2u.4u
دوشنبه 08 خرداد 1391, 16:33 عصر
مدیران محترم، اساتید گرامی، هیچکس نیست پاسخ ما را بده؟
من خودم فکر کردم که اگر بشه از یک دیتابیس قفل نشده گزارش ها برای design یا view در دیتابیس اصلی که mde می شه باز بشوند مشکل حل می شه. آیا همچین امکانی هست؟
لطفا اینقدر بی اعتنا نباشید. این بخش خیلی فعالتر و بچه هاش خیلی با مرام تر از این حرف ها بودند.

Mehr@ban
سه شنبه 09 خرداد 1391, 09:12 صبح
بله این راه حل هم درسته بانک اطلاعاتی خودتون رو در فایلی جدا ایجاد کنید، فرم ها تون رو در فایلی دیگر

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

u.2u.4u
سه شنبه 09 خرداد 1391, 17:46 عصر
ممنون. بازهم به مرام شما که یه میشه یا نمیشه میگید. اما میشه دستورات و راه کارش را با جزئیات بیشتری توضیح بدید؟ با چه دستوری می توان جداول یک دیتابیس دیگه را در فرم ها و گزارش های یک دیتابیس خوند؟
------------------------------------------------------------------------------------------
حالا چرا اینقدر رو یه امضا زوم کردید؟ مشخصه دیگه:
هر افسانه ای را، آنقدر تکرار کرد تا باوری مقدس شود:
یعنی می شه یه افسانه، یه حرف دروغ، یه قصه را آنقدر در اذهان مردم تکرار کرد که تبدیل به یه باور و واقعیت انکارناپذیر و مقدس بشه
خون ریخت و دروغ گفت و مقدس شد.
یعنی می شه با زور شمشیر و خون ریختن و کشور گشائی تبدیل به آدم مقدسی شد(در جایی که امکان اول وجود داره)
با لشگر ابلهان، جهان را یک شبه تسخیر کرد...
و ابلهان که باعث می شوند که دو حقیقت قبل وجود داشته باشد آنقدر زیادند و آنقدر به خودشون مطمئنند که می شه یک شبه باهاشون کل دنیار گرفت

خوب توضیح دادم؟

Mehr@ban
سه شنبه 16 خرداد 1391, 06:10 صبح
1. شما ابتدا جداول و فرم هاتو توی همون فایل اصلیت درست کن
2. بعد ارتباطاتش رو هم بده
3. کوئری ها رو هم به همین ترتیب
4. کار که تموم شد ، یه فایل خام باز کن
5. جداولت رو ایمپورت کن توی فایل خام
6. قبل از پاک کردن جداول از فایل اصلی یه پشتیبان از فایل اصلی بگیر
7. بعد از اتمام کارای ایمپورت جداول حالا فایل خام رو که "فایل جداول" بهش میگم رو mde کن
8. فایل اصلی رو باز کن و از فایل جداول ، جدول ها رو لینک کن دقت کن فقط لینک کنی نه ایمپورت
9. در این مورد پست های زیادی است جستجو کن !!!

------

در مورد امضا هم گمان بد کردم که تو پست خصوصی میگم
یا علی

u.2u.4u
چهارشنبه 17 خرداد 1391, 10:44 صبح
متشکر. اینکار را امتحان کردم. اما در اولین اجرا بازهم کاربر به همون جداول لینک شده هم دسترسی داره. چیکار کنم؟
فکر کنم راه حلم اینه که گزارشها در یک فایل جدا که ام دی ای نمی شود باشند. اما با توجه به اینکه record source گزارشها یه تکست باکس توی فرمهاست، قطعا کار خیلی پیچیده می شه و به شدت نیاز به کمک دارم.
یه سوال دیگه: آیا نمی شه با Digital Certificate for VBA Projects office 2010 این مشکل را حل کرد؟

u.2u.4u
شنبه 20 خرداد 1391, 08:52 صبح
آقا عجب تالاریه اینجا!!! مدیران گرامی من به کمک احتیاج دارم.:عصبانی++:
از روش دوم هم نتونستم. ایمپورت کردن گزارش ها به mde ممکن نیست. فکرم این بود که گزارش ها در یک فایل جداگانه باشند(mdb) و کاربر اونجا ویرایششون کنه و بعد نرم افزار (MDE)اونها را هر زمان که نیازشون داره از اون فایل ایمپورتشون کنه. اما نمی شه. اکسس ایمپورت کردن گزارش ها در حالت MDE را قبول نمی کنه. دیگه نمی دونم چیکار کنم...
راستی جواب این سوال هم بدید:
آیا نمی شه با Digital Certificate for VBA Projects office 2010 این مشکل را حل کرد؟

RESMAILY
دوشنبه 22 خرداد 1391, 19:40 عصر
به نام خدا
باسلام. من مورد مشابهي داشتم. راه حل را مانند آنچه طرح شد انجام دادم. يعني بخش اصلي برنامه بصورت mde و بخش مورد نياز در گزارش بصورت mdb.
منتها بجاي ارسال گزارش و يا فرم. جداول و كويري هايي را در بانك دوم اپديت مي كردم. بطور خلاصه من نياز داشتم كه در گزارش من كنترل هايي ايجاد شوند و اين در فرمت mde امكان ندارد و بايد در فرمت mdb باشد. محاسبات و مشخصات را كه در فايل اصلي انجام مي دادم نتيجه را بصورت يك جدول به بانك دوم اكسپورت مي كردم تا به عنوان ركورد سورس گزارش استفاده شود و باقي ماجرا.
ممكن است طالب باشيد كه نمونه را ببينيد. نمي شود! هم حجم آن زياد است. هم تحليل آن مشكل است!؟.
البته بخاطر اين عبارت مرا خجالت(!) ندهيد. موضوع اين است كه اين فايل ابتدا يك برنامه ساده اي بود كه مثل بناي ظلم!(بقول سعدي) هر كسي اندكي برآن افزود تا به اين غايت رسيد!
يعني اصل برنامه يك چيز غير استانداردي است و به مرور با درخواست هاي عجيب و غريب مشتري يك چيز عجيبي شده.
كارهاي اولم بود و اتفاقا اغلب ترفندها و مشكلات در آن بررسي شده است!
خلاصه ببخشيد. منظور بيان تجربه بود كه شايد بكارتان بيايد.

u.2u.4u
سه شنبه 23 خرداد 1391, 09:27 صبح
مرثی دوست گرامی و گل. مطلبتون الهام بخش بود. فکر کنم بهترین راه همینه. یعنی ما بیایم و از رکورد سورسمون یک جدول درست کنیم و اون را به فایل mdb ارسال کنیم. بعد هم که گزارش از اون استفاده کرد نابودش کنیم. البته کاریه که سرعت را پایین میاره ولی به هرحال چاره دیگری نیست و نخواهد بود! البته خوب به قول خودتون کار پیچیده ای هست. شروع به کار می کنم. امیدوارم تنهام نذارید و در سوالات بعدی یاریم کنید تا بتونم کار را به یه جایی برسونم. اگر از یه منبع دیگه نمونه ای یافتید هم که خیلی خیلی عالی میشه.
بازهم تشکر می کنم.

u.2u.4u
سه شنبه 23 خرداد 1391, 11:25 صبح
با راهنمایی های دوست عزیز RESMAILY (http://barnamenevis.org/member.php?12210-RESMAILY) قفل مغزم باز شد و یه کارهایی صورت دادم و برای استفاده سایر دوستانی که وارد تاپیک می شن مراحل کار را اینجا می گذارم. واقعا از ایشون متشکرم.
اول از همه به این تاپیک مراجعه کنید و ضمیمه را دانلود کنید:
http://barnamenevis.org/showthread.php?87658-%D9%86%D9%85%D9%88%D9%86%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%D9%88-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-VBA&p=1524133&viewfull=1#post1524133
-----------------------------------------------------------------------------------------------------------------------------
با استفاده از دستور:

DoCmd.TransferDatabase transfertype:=acExport, databasetype:="Microsoft Access", _
databasename:=Application.CurrentProject.Path & "\" & "Reports.mdb", ObjectType:=acTable, Source:=tblName, _
Destination:=tblName, structureonly:=False

جدولتون را به فایل گزارش ها انتقال می دید. اگر از کوئری به عنوان رکوردسورس استفاده می کنید اون را هم انتقال بدید و اگر زیرجدولی دارید، اون را هم به همین روش انتقال بدید. اگر از عبارت sql به عنوان رکوردسورس استفاده می کنید: روش کار من این بود که عبارت را توی یک فایل متنی نوشتم و در گزارش اون را از فایل متنی خواندم.
از فایلی که در بالا دانلود کردید در moudle1 به تابع fOpenRemoteReport احتیاج دارید.
مسیر فایل گزارشها، نام گزارش و شکل نمایش گزارش را به این تابع میدید. و کار تمومه.

اما یه سوال برام پیش اومده که در پست بعدی مطرح می کنم.

u.2u.4u
سه شنبه 23 خرداد 1391, 11:28 صبح
و اما سوالی که برام پیش اومد و مشکلی باید حل بشه:
در این روش جداول به فایل گزارش ها صادر می شوند که از نظر امنیتی شکل خوبی نداره که کاربر یه دفعه به همه محتویات اونها دسترسی داشته باشه(اون هم هر کاربری). چطوری این جداول را از دسترس کاربر دور کنیم؟ بهترین راه چیه؟
ممنون از راهنماییهاتون

Mehr@ban
سه شنبه 23 خرداد 1391, 15:46 عصر
یه چیزی بگم در مورد سوال آخرتون
من خودم خیلی پی کد کردن اطلاعات رو گرفتم ولی به نتیجه ای نرسیدم
ولی من باب پیشنهاد شما میتونین اطلاعات رو در فایل اصلی کد کنید و به فایل دوم ارسال کنید و در فایل دوم عملیات دیکد انجام بدین

ahmadrezaahmad
سه شنبه 28 خرداد 1392, 15:37 عصر
آقا این مشکل رو نمی شه حل کرد تو آفیس 2007 یا 2010 یا 2013؟
خیلی مشکل بد و ابتداییه؟یعنی ماکرو ها و vba هام همه می ره رو هوا در مرحله اول استفاده توسط هر کاربر!!:ناراحت:
لطفاااااااااااااااااااااا اا کمک کنید دوستان...