# پایگاه‌های داده > سایر پایگاه‌های داده > Access > سوال: به اشتراك گذاري فايل اكسس

## hasadianh

آقا من بعد از چندين سال كاركردن توي اكسس توي يك ملطب كوچيك گير كردم كي مي‌تونه ياري كنه
مشكل اينه كه توي شبكه وقتي يك كاربر فايل اكسس رو باز مي‌كنه به ديگر كاربران اجازه وارد به اون بانك رو نمي‌ده خيلي خنده داره ولي واقعا نمي‌دونم چه كار بايد بكنم :قهقهه:  :قهقهه:  :گریه:  :گریه:

----------


## koran892

ببین آقا جان من خودم هم یه برنامه تحت شبکه طراحی کردم و یه جایی داره استفاده میشه
چند وقت قبل تماس گرفتند و گفتند این مشکل وجود داره من هم مثل شما خیلی تعجب کردم ولی واقعیت داشت با کلی سر و کله زدن متوجه شدم برنامه من ایرادی نداره چون اگر ایراد داشت باید تا حالا خودشو نشون می داد نه بعد از چند سال.
پس از بررسی ها معلوم شد مشکل از شبکه و نوع ارتباط کاربران با دیتای اصلی برنامه بود که حل شد.
شاید هم مشکل شما چیز دیگه ای باشه اگر خواستید میتونید فایلتون را بذارید یه نگاهی بندازیم شاید فرجی بشه.
موفق باشید.
assir892@yahoo.com

----------


## amirzazadeh

> آقا من بعد از چندين سال كاركردن توي اكسس توي يك ملطب كوچيك گير كردم كي مي‌تونه ياري كنه
> مشكل اينه كه توي شبكه وقتي يك كاربر فايل اكسس رو باز مي‌كنه به ديگر كاربران اجازه وارد به اون بانك رو نمي‌ده خيلي خنده داره ولي واقعا نمي‌دونم چه كار بايد بكنم


دوست عزيز براي حل مشكلت جدوال رو از اينترفيس جدا كن و بعد جدوال رو كه اصطلاحا back end  خونده ميشه به صورت full روي شبكه به اشتراك بذار و بعد اينترفيس يا همون front end  رو به فايل اشتراكي لينك كن (از ويزارد link table manager كمك بگير).دست آخر اينترفيس رو روي كامپيوتر كلاينت ها كپي كن.
..................................
موفق باشيد

----------


## hasadianh

دوست عزيز متاسفانه به علت اينكه اطلاعات اداري داخل برنامه دارم نمي‌تونم اون را براتون بگذارم اگر واقعا راه حل مفيدي دارين طرح كنيد تا خودم اجرا كنم با تشكر از شما دوست عزيز عذرخواهي مي‌كنم

----------


## shahab_ss

بهترین و مطمین ترین راه حل برای مشکل شما همونیه که "amirzazadeh" فرمودند.

----------


## alirezabahrami

> آقا من بعد از چندين سال كاركردن توي اكسس توي يك ملطب كوچيك گير كردم كي مي‌تونه ياري كنه
> مشكل اينه كه توي شبكه وقتي يك كاربر فايل اكسس رو باز مي‌كنه به ديگر كاربران اجازه وارد به اون بانك رو نمي‌ده خيلي خنده داره ولي واقعا نمي‌دونم چه كار بايد بكنم


يك راه ديگر هم براي ورود كاربران به بانك اطلاعاتي ( بدون مانع ) ، ايجاد يك گروه كاري و سطوح دسترسي براي كاربران مي باشد. در اين حالت بانك اطلاعاتي در حالت full براي كاربران shareميشود و كاربران بدون مشكل ميتوانند وارد محيط برنامه بشوند .و بعد از اين مرحله هر كاربر با توجه به سطح دسترسي به آبجكت هاي بانك اطلاعاتي كه توسط administator براي او تعريف شده ميتواند از برنامه بهره برداري كند .
موفق باشيد

----------


## hasadianh

سلام دوستان
جناب amirzazadeh راستش اين راهي هم كه شما پيشنهاد دادين جواب نداد ديگه كلافه شدم نمي‌دونم چه راهي رو بايد برم آخه اصلا ديتا بيسم اينطوري نبود نمي‌دونم چرا اينجوري شده

----------


## alirezabahrami

> سلام دوستان
> جناب amirzazadeh راستش اين راهي هم كه شما پيشنهاد دادين جواب نداد ديگه كلافه شدم نمي‌دونم چه راهي رو بايد برم آخه اصلا ديتا بيسم اينطوري نبود نمي‌دونم چرا اينجوري شده


با سلام مجدد
ظاهراً راهكار ارائه شده از سوي حقير ، ارزش چنداني براي شما نداشته كه هيچگونه اظهار نظري در خصوص آن ننمود ه ايد . من هم مثل شما چند سال است كه با اكسس كار مي كنم و در محل كارم چند برنامه تهيه و ارائه نموده ام . در سال اول در كار كردن با اكسس واقعاً مشكل داشتم و با اين مشكلي كه شما داريد خيلي مواجه ميشدم ولي به تدريج با اضافه شدن تجربيات و اطلاعاتم ، با اين موارد كمتر برخورد نموده ام . در دو يا سه مورد از برنامه هايم از روش پيشنهادي ( استفاده از گروه كاري و ايجاد سطوح دسترسي براي كاربران با استفاده با روش ارائه شده در خود برنامه اكسس) استفاده كرده ام و در بقيه موارد اين گروه كاري و ايجاد سطوح دسترسي را خودم ايجاد نموده ام و خوشبختانه تا كنون در هر دو مورد مشكلي برايم پيش نيامده است . راهكار ارائه شده توسط جناب آقاي amirzazadeh يكي از راهكارهاي مفيد است ولي يك مقداري زحمت دارد . تصور كن برنامه شما براي تعداد مثلاً 30 كاربر با كامپيوتر هاي مستقل به اشتراك گذاشته شده است . در اين حالت شما علاوه بر اينكه در داخل ديتابيس هر كاربر بايد جداول ديتابيس اصلي را لينك كنيد ،اينترفيس برنامه و و ساير آبجكت هاي ديگر بروي كامپيوتر تعداد 30 كلاينت نيز بايد كپي كنيد و اين حالت را تصور كن كه بخواهيد تغييراتي در اينترفيس بانك اطلاعاتي بدهيد بايد دوباره اينترفيس تغيير يافته را بر روي كامپيوتر كاربرها كپي كنيد و مي بينيم كه واقعاً اين شيوه تا حدي دردسر دارد ولي از طرف ديگر ، اگر شما ديتابيس اصلي كه موارد امنيتي مختلف از جمله 1- ايجاد سطوح دسترسي 2- hidden نمودن جداول و كوئري ها جهت ايمپورت نشدن توسط ديگران 3- پسورد گذاشتن براي قسمت ماژول ها و 4- تبديل ديتابيس به صورت mdeو در سطوح بالاتر ايجاد كد فعال سازي ، را براي آن در نظر گرفته باشيد مشكل خاصي متوجه برنامه شما نخواهد شد . 
علي ايحال اگر اشاره مي كرديد كه از چه شيوه اي در share نمودن ديتابيست براي كاربران استفاده مي كنيد بهتر و زودتر به نتيجه مي رسيديد .
البته از دوستان با تجربه اي همانند جناب آقاي amirzazadeh پوزش مي طلبم . مواردي كه شرح دادم تجربه عيني خودم بوده و شايد در راهكار پيشنهادي حقير مشكلاتي وجود داشته باشد كه من تاكنون با آن برخورد نكرده ام .
موفق باشيد

----------


## NNASER2AB

البنه دوستان همگی در رابطه با اکسس درست گفتن اما عملی تر این است که شما اینترفیس برنامتونو در یک نرم افزار دیگه مانند VB طراحی کنین و اونو به بانک اطلاعاتی تون ارتباط بدین در این صورت باید بانک مورد نظر  را در حالت exclusive  باز نکنین  تا خود بخود فایل به حالت Share باز بشه در این حالت کاربران خواهند توانست به جداول تان ارتباط برقرار کنند. در ثانی کنترل نگارش اطلاعات در بانک اطلاعاتی یکی از وظایف مهم مدیر بانک می باشد که حتما توی برنامه نویسی باید در نظر گرفته شده باشه وگرنه در نظر بگرید دو کاربر در آن واحد بخوان یک فیلد رو تغییر بدهند آنوقت تکلیف داده تغییر یافته دست کدام خواهد بود؟ در ضمن بانک های اطلاعاتی اکسس توی شبکه داری اشکلاتی هستند که رفع آنها گاهی بنظر غیر ممکن می آید.

----------


## hasadianh

از راهنمائي شما ممنون واقعا زحمت كشيدين تست مي‌كنم انشاءالله كه جواب بده

----------


## AMSIRAN

با سلام خدمت دوستان
يك برنامه تحت شبكه اكسس دارم كه كاربرا مي تونند برنامه و فرمها رو همزمان باز  كنند ولي مشكل اينجاست كه شماره ركورد ها از نوع اوتونامبر نميخوام باشه و قابل حذف و جانشيني باشند وقتي همزمان دو تا كاربر يك فرم را باز ميكنند امكان تشخيص شماره آخر نسيت و برنامه  براي يكي از كاربرا خطاي تكرار ميده لطفا راهنمايي بفرماييد
ممنون

----------


## shahab_ss

وقتی شما قصد استفاده از AutoNumber رو نداری، پس باید همه چیز رو خودت Handle کنی.
میتونی مثلاً به همراه اون خطای (تکراری بودن شماره رکورد) به کاربر شماره مورد نظر خودت (که مثلاً میتونه شماره آخر + 1) باشه رو پیشنهاد کنی !

این در حد یک پیشنهاده ، نحوه پیاده سازی اون رو خودت پیدا کن.

موفق باشی

----------


## mohsen1393

سلام لطفأ راهنمائی کنید چطور میشه جلوی ایمپورت شدن فایل های اکسس رو بدون اینکه روشون پسورد بزاریم گرفت؟

----------


## hamed1987

دوستان با توجه به اینکه این تاپیک قدیمی است ولی تاپیک کاملی بود، بهتره همین جا بحث ادمه پیدا کنه
من با اجرای یک فرم توسط چند کابر مشکل ندارم ولی مشکل اینجاست که وقتی یک فرمی که به جدول شماره 1 متصل است در حال اجرا باشه دیگر نمیشود کوئری ای را اجرا کرد که نیاز به اون جدول داشته باشه و چنین اروری میده :
The database engine could not lock table "tbl_test" because it is already used by another person or process".
آیا راهی هست که مثلا کوئری نتونه جدول رو قفل کنه یا راه دیگه ای؟
ممنونم

----------


## amirzazadeh

سلام
براي رفع اين مشكل ميتونيد از فرم هاي باند نشده كمك بگيريد كه تنها در زمان ذخيره اطلاعات با ديتابيس ارتياط برقرا ميكنه و  مشكلي با كاربري همزمان  نخواهد داشت.

----------


## hamed1987

> سلام
> براي رفع اين مشكل ميتونيد از فرم هاي باند نشده كمك بگيريد كه تنها در زمان ذخيره اطلاعات با ديتابيس ارتياط برقرا ميكنه و  مشكلي با كاربري همزمان  نخواهد داشت.


یعنی همه تکس باکس ها رو آنبوند کنم ؟ در انتها وقتی ثبت رو میزنه با دستور dim انتقال بدم به جدول؟

----------


## mhamedm2008

درسته.اکسس فقط توی فرم ههای آنبوند هست که مشکلات کمی را با شبکه داره.
در غیر اینصورت خیلی سخت میشه باهاش توی شکبه کار کرد

----------


## amirzazadeh

سلام
براي ذخيره اطلاعات در فرم هاي باند نشده از چند روش ميتونيد بهره ببريد:
1-استفاده از ركوردست كه بنا بر سليقه خودتون ميتونيد از تكنولوژي DAO يا ADO استفاده كنيد.
2-اجراي كوئري INSERT  يا UPDATE
نمونه هايي از هر روش تو سايت هست
..................
موفق باشيد

----------


## Access2013

سلام
  ضمن عرض ارادت خدمت جناب بهرامی که انصافا خدماتی ارزشمند تو این فروم به یادگار گذاشتند 


سوالی که از خدمت دوستان داشتم خیلی ساده هست اما راستش را بخواهید خوب سردر گم شده ام چون تو برنامه ای که تهیه کرده ام 


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


ایجاد  work group به نظر میرسه جوابگو باشه ولی روش شر شدن این دو سیستم را برام توضیح بدید ممنون میشم
لطف کنید نمونه را برای 2003 توضیح بدید 

یادم رفت بگم تو این اشتراک برنامه نیاز یه اینترنت نمی خوام باشه چون چند قدم باهم فاصله ندارند 
خدا نگهدار

----------


## alirezabahrami

> سلام
> ضمن عرض ارادت خدمت جناب بهرامی که انصافا خدماتی ارزشمند تو این فروم به یادگار گذاشتند 
> 
> 
> سوالی که از خدمت دوستان داشتم خیلی ساده هست اما راستش را بخواهید خوب سردر گم شده ام چون تو برنامه ای که تهیه کرده ام 
> 
> 
> امنیت اهمیت نداره این برنامه قراره تو فروشگاه استفاده بشه که اطلاعات خصوصی مثل اسم و تلفن توسط مشتری تکمیل بشه و اطلاعات تکلمیلی و جز ئیات توسط کاربر مثل مبلغ خرید و تاریخ سفارش و ....
> 
> ...


سلام
با سلام و عرض تشکر
راستش بنده چند سالی است که از روش فوق (work group ) استفاده نمی کنم و اساساً از شیوه Front End / Back End یا در واقع شیوه طراحی جدا کردن اینترفیس برنامه از اطلاعات در حالت استفاده اشتراکی از یک فایل توسط چند کاربر بصورت همزمان در برنامه هایم استفاده می کنم ولی چنانچه اصرار به استفاده از حالت گروه کاری دارید اجازه بده یک مروری بر روی انجام شیوه فوق داشته باشم ؛ چون تقریباً مراحل ایجاد و انجام آن یادم رفته .
فقط من متوجه نشدم آیا فقط در خصوص نحوه Share  نمودن آن مشکل دارید ؟

ضمناً با استفاده از روش *Map Network Drive*  هم میتوانید به فایل share شده در کامپیوتر دیگر دسترسی داشته باشید.
مطالب لینک زیر در خصوص استفاده از روش  *Map Network Drive برای دسترسی به فایل های share شده مرور کن* 

http://www.adsearch.ir/show.aspx?ad=t_59613

یا علی

----------


## Access2013

سلام

ممنون بابت وقتی که برام گذاشتید و مطالب خوب و مفیدی که ارایه نمودید ، عرض کنم اصراری به استفاده از workgroup نیست فقط تاکیدم به این بود که از ساده ترین و بی دردسرترین راه به این مهم برسم که گفتم شاید این گزینه باشه!!!

نحوه شر نمودن این دو فایل هم که یه جدول تو یه کامپیوتر پر میشه ( قابلیت اد کردن تو کامپیوتر اصلی هم فراهم باشه به عنوان مدیر ) و جدول دیگه تو کامپیوتر دیگه چطور میشه ؟

جناب آقای بهرامی داشتم بی خیال میشدم که پستتون  را دیدم و همین باعث شد تا اونجایی که بتونم تلاش کنم تا به کمک شما به آخر برسونمش  ، من الان یه نمونه آماده میکنم ، خواهش میکنم ایراد کار و  نحوه صحیح اونرا بهم بگید 

خوشحالم که شما تو این تالار هستید و با شما آشنا شدم 
خدا نگهدار

----------


## Access2013

سلام

نمونه ضمیمه همانطور که میبینید بخش ساده شده برنامه هست که برای ساده تر شدن همون موارد گنجاده شده 

دو فایل که در فایل اصلی امکان اضافه کردن کامل و در فایل دوم تنها دسترسی به اطلاعات مشتریان و امکان اضافه کردن و ویرایش فراهم می باشد 

لطف کنید با توجه به این موارد بگید 
اولا ) باید این دو فایل را که در دو سیستم هست به چه روشی بهم لینک کنم ؟
ثانیا ) با این شرایط به مشکل بر نخواهم خورد چون تو یه فایل تنها یه جدول هست و تو فایل بعد هم اون جدول و بقیه موارد !

امیدوارم توضیحات تونسته باشه منظورم را برسونه 
خدا نگهدار

----------


## alirezabahrami

> سلام
> 
> نمونه ضمیمه همانطور که میبینید بخش ساده شده برنامه هست که برای ساده تر شدن همون موارد گنجاده شده 
> 
> دو فایل که در فایل اصلی امکان اضافه کردن کامل و در فایل دوم تنها دسترسی به اطلاعات مشتریان و امکان اضافه کردن و ویرایش فراهم می باشد 
> 
> لطف کنید با توجه به این موارد بگید 
> اولا ) باید این دو فایل را که در دو سیستم هست به چه روشی بهم لینک کنم ؟
> ثانیا ) با این شرایط به مشکل بر نخواهم خورد چون تو یه فایل تنها یه جدول هست و تو فایل بعد هم اون جدول و بقیه موارد !
> ...


سلام
در فایل های ضمیمه فایلی که در پوشه DataBase است در واقع دیتابیس یا بانک اطلاعاتی شما در آن قرار دارد . در این فایل فقط جداول برنامه وجود دارد .
در فایل دیگر با نام Eynak.mdb سایر آبجکت های برنامه شامل فرم ها کوئری ها و جداول شامل جداول لینک شده و .... وجود دارد .
شما باید :
 1- فایل اول یعنی DataBase را بر روی کامپیوتری که حالت سرور دارد قرار بدهید و آن در در حالت share قرار دهید.
2-بر روی تمام کامپیوترهائیکه قرار است کاربران با برنامه کار کنند یک نسخه از برنامه Eynak.mdb قرار داده میشود .
3- هر کدام از کاربران برای اولین بار به محض اجرای برنامه با پیغام ارتباط با دیتابیس معتبر نیست مواجه میشوند که در فرم مربوطه باید آدرس را پیدا کرده و بر روی اتصال کلیک نمائید .
تا اینجا امتحان کن !
یا علی

----------


## Access2013

سلام 

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

در پناه خداوند موفق و موید باشید

----------

