PDA

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



alifatehi
پنج شنبه 11 مهر 1387, 23:31 عصر
سلام

راستش مشکلی در ذهنم پیش امده که چگونه برنامه ای که برای کسی تهیه کردی رو Update کنی بدون اینکه اطلاعات فرد پاک بشه .

منظور از به روز رسادنی همه چیز است . مثل : عوض شدن فرم ها گزارشات ،... و حتی جزئیات بیشتری رو به جدول اضافه کردن یا جدول جدیدی رو به پایگاه اضافه کردن.

منت بزارید و به صورت کامل تشریع کنید . چون تازه وارد دنیای با شکوه اکسس شده ام.

نکته : در صورت کامل بودن توضیحات یک مقاله آموزشی با قید نویسندگان و منابع فراهم خواهم کرد برای دیگر دوستان عزیز.
متشکر

منتظر لطفتون هستم.

HAMRAHSOFT.IR
جمعه 12 مهر 1387, 07:56 صبح
دوست خوب ابتدا باید بانک و برنامه جدای از هم باشه که در هنگام بروز رسانی مشکل خاصی بیش نیاد
ولی دمورد اضافه کردن جدول باید برنامه طوری طراحی کنی که اگه جدولی به نرم افزار خود اضافه نمودی مشکلی در کار نرم افزار ایجاد نکنه

اگر بازم مشکلی هست بفرماید

alifatehi
جمعه 12 مهر 1387, 23:23 عصر
دوست خوب ابتدا باید بانک و برنامه جدای از هم باشه که در هنگام بروز رسانی مشکل خاصی بیش نیاد

دوست عزیز من هم همین کار را می خواستم بکنم اما راهنمایی کامل و سریع پیدا نکردم .
در صورت داشتن چنین راهنمایی لطف می کنید منم راهنمایی کنید.

HAMRAHSOFT.IR
شنبه 13 مهر 1387, 09:47 صبح
براي جدا كردن تيبلهارا داخل يك فايل اكسس و فورم گزارشهارا داخل يك فايل ديگر بعد توسط لينك تيبل ارتباط اين دورا برقرار كن

alifatehi
سه شنبه 16 مهر 1387, 00:36 صبح
برنامه نوشت که قصد دارم به مدت یک ماه مورد بررسی کاربر آن قرار گیرد . که مشکلاتش حل کنم بعد از یک نیز نسخه کاملتری بهش می دم اما نمی خوام اطلاعاتش پاک بشه و در نسخه بعدی نیز اورده شود .

قابل ذکر بگم روش کار با پایگاه داده ای از فرم ها جداست را نیز بلد نیستم .
روش دیگری هست

nabeel
پنج شنبه 21 آذر 1387, 11:08 صبح
ضمن سلام
در همه حالاتی که شما خواستید امکان ویرایش وجود داره ولی بعضی از اونها تنها از طریق برنامه نویسی امکان پذیره که ظاهراً در حال حاضر به در شما نمی خوره
اضافه کردن یک فیلد به داخل یک Table میتونه دردسر ساز باشه خصوصاً اگه به عنوان سوییچ باشه پس تا حد امکان باید طراحی اولیه جداول کامل باشه
ولی در رابطه با بقیه آبجکتها هیچ مشکلی وجود نداره
برای این کار جداول ( اطلاعات ) رو در داخل فایل جداگانه ای نگهداری کنید
پروسه کار بدین صورته :
یه فایل اکسس جدید بازکن
در قسمت Table ها کلیک راست و گزینه Link Tabls رو انتخاب کن
به فایل اولیه اشاره کن و Table هایی که نباید آپدیت بشن رو انتخاب کن و دکمه Ok رو بزن
حال جداول با فایل دوم Link شدن ( به فلش کنار نام جدول دقت کن )
بقیه کار رو توی این فایل انجام بده ( از طراحی Form و Report و ... )
در هنگام به روز رسانی فقط همین فایل رو برای کاربر نهایی بفرست
البته یه مقدار ریزه کاری داره که اگه خواستید بعداً براتون توضیح میدم .

yousef86
پنج شنبه 21 آذر 1387, 15:25 عصر
سلام شما اگر تعغیراتت فقط در فرمها و گزارشات باشه مشکلی نداری به این صورت که بعد از ساخت نرم افزار جدید (البته با توجه به همون تیبل قبلی)نرم افزار رو جای جدید کپی کن بعد جدول قبلی را جاگزین جدول جدیدت کن

nabeel
پنج شنبه 21 آذر 1387, 21:22 عصر
با سلام مجدد
همانطور که گفتم این کار در حالت اصولیش نیاز به برنامه نویسی داره برای روشن شدن موضوع توجه شما رو به مطلب زیر جلب میکنم .
بر روی جدولی که ارتباط داده شده کلیک راست کنید و وارد بخش Linked Table Manager بشید , در اینجا شما مسیرهای فایلهای ارتباط داده شده رو ملاحظه میکنید . حتماً متوجه مشکل شدید .
اکسس در حالت استاندارد اقدام به ایجاد ارتباط در مد استاتیک میکنه یعنی اشاره به فایل منبع به صورت ثابت داره . اشکال کار در چیه ؟
کاربر باید دقیقاً فایل اطلاعات رو در مسیری قرار بده که شما روی دستگاه خودتون اون ارتباط رو برقرار کردید . در غیر اینصورت ارتباط به صورت نامعتبر تشخیص داده میشه .
در صورتی که میخواید کاربر محدودیتی در قرار دادن فایل اطلاعات در مسیر خاصی نداشته باشه , شما نیاز به برقراری لینک در مد دینامیکی دارید که عملاً این کار تنها از طریق برنامه نویسی ممکنه .
اینو گفتم فقط برای اینکه حواستون باشه به این محدودیت اکسس تا در هنگام دادن فایل به کاربر نهایی دچار مشکل نشید .
شاید در فرصتی دیگه نحوه ارتباط دینامیکی رو هم براتون توضیح بدم . ولی به دلیل پیچیدگیهای خاصی که داره شما باید آشنایی نسبی رو با VBA داشته باشید .

morynf
جمعه 22 آذر 1387, 17:20 عصر
با سلام خدمت دوستان و دوست عزيز اقاي نبيل :
اگر اين دوستمون بلد نيستند ساير دوستان كه بلد هستند و مطالب رو دنبال مي كنند بهتره نحوه ارتباط بصورت ديناميكي رو توضيح بدين تا دوستمون علي فتحي نيز رغبت بيشتري براي يادگيري داشته باشن .

nabeel
جمعه 22 آذر 1387, 20:33 عصر
سلام به دوست جدیدم morynf عزیز
خب , حالا این شد یه درخواست دیگه .
این هم به خاطر بچه های اهواز .
یه فایل ساده شده رو براتون ضمیمه میکنم امیدوارم که جوابگوی کاراتون باشه .
در این مثال شما با اصول اولیه ارتباط دینامیکی آشنا میشید .
البته در این مثال من دیگه پارامتر گیری دینامیکی رو براتون نیاوردم . امیدوارم که خودتون بتونید این بخش رو انجام بدید . یا لااقل اگه سعی کردید و نتونستید اطلاع بدید تا سر فرصت اون رو هم انجام بدم .
جناب آقای فاتحی امیدوارم این مطلب مشکل شما رو هم حل کنه .

ArbabReza
یک شنبه 24 آذر 1387, 12:13 عصر
ضمن سلام
در همه حالاتی که شما خواستید امکان ویرایش وجود داره ولی بعضی از اونها تنها از طریق برنامه نویسی امکان پذیره که ظاهراً در حال حاضر به در شما نمی خوره
اضافه کردن یک فیلد به داخل یک Table میتونه دردسر ساز باشه خصوصاً اگه به عنوان سوییچ باشه پس تا حد امکان باید طراحی اولیه جداول کامل باشه
ولی در رابطه با بقیه آبجکتها هیچ مشکلی وجود نداره
برای این کار جداول ( اطلاعات ) رو در داخل فایل جداگانه ای نگهداری کنید
پروسه کار بدین صورته :
یه فایل اکسس جدید بازکن
در قسمت Table ها کلیک راست و گزینه Link Tabls رو انتخاب کن
به فایل اولیه اشاره کن و Table هایی که نباید آپدیت بشن رو انتخاب کن و دکمه Ok رو بزن
حال جداول با فایل دوم Link شدن ( به فلش کنار نام جدول دقت کن )
بقیه کار رو توی این فایل انجام بده ( از طراحی Form و Report و ... )
در هنگام به روز رسانی فقط همین فایل رو برای کاربر نهایی بفرست
البته یه مقدار ریزه کاری داره که اگه خواستید بعداً براتون توضیح میدم .


سلام به همه
دوست خوبم بهترین راه ممکن رو پیشنهاد کردی منم همین راه رو پیشنهاد می کنم

smhnoor
یک شنبه 24 آذر 1387, 12:16 عصر
باسلام
اول از دوست عزيز nabeel به خاطر فايلشان تشكر مي كنم . من مدتها دنبال كد مربوط به لينك كردن جدولها بودم. و ضمنا اگر مقدور هست توضيح دهيد كه چطور مي شود يك فايل را معرفي كرد و مسير كل لينكها به آن فايل تغيير يابد. بدون اينكه براي هر جدول يك ID جديد تعريف كنيم

nabeel
یک شنبه 24 آذر 1387, 13:37 عصر
سلام smhnoor
به دلایل زیر توصیه نمیکنم که شما به جداول ID ندید ,
بعضی جداول هستن که نیاز به لینک شدن ندارن و عملاً جداول مورد استفاده همون فایل های اولی هستن
ضمناً یه چیزو بهتون بگم اونم اینکه Access در حالتی که جدوال رو از طریق لینک مورد استفاده قرار میده , متاسفانه دچار مقداری افت کارایی میشه ( میزان این افت به ساختار طراحی شما ربط داره ) , مشکل رو با لینک دادن تمام جداول چند بابرابر نکنید
کد ارائه شده کاملا Flexible هستش و در حالت بهینه شده ای قرار داره . توصیه میکنم از همین روش استفاده کنید .
من در تمام کارهام از این روش استفاده میکنم و تا حالا هم به فکر تغییرش نیفتادم .
در صورتی که این توصیه منو قبول ندارید بگید تا تغییر مورد نظرتون رو سر فرصت اعمال کنم .




با تشکر از شما دوست گرامی

خوشحال میشم اگه به تاپیکم با عنوان رویکردی متفاوت به مبحث قفل گذاري در Ms Access
نگاهی بندازید و نظرتون رو اعلام کنید

Mahsa Hatefi
یک شنبه 24 آذر 1387, 22:31 عصر
آقاي nabeel عزيز

پيشنهاد جالب و قابل تاملي بود از شما دوست بزرگوار و شايسته تشكر مي كنم . فقط سوالي دارم . اگر بر روي بانك كه حاوي جداول اطلاعاتي است set Password كرده باشيم اينجا لازم است كه وقتي ارتباط از طريق فراخواني ماژول مربوطه انجام مي گيرد به نوعي رمز بانك اصلي هم داده شود تا ايراد نگيرد . خوب چگونه اينكار رو انجام بديم و نحوه عبور از پاسورد بانك چگونه بايد باشد تا با خطا مواجه نشويم ؟

بازم ممنون از نكته جالبتون

nabeel
یک شنبه 24 آذر 1387, 23:57 عصر
با سلام
در تابع ConnectToDatabase عبارت روبروی LinkPath رو به صورت زیر تغییر بدید .


LinkPath = "MS Access;PWD=" & "123" & "" & ";DATABASE=" & "c:\Data file.mdb"

در این مثال من فرض رو بر این قرار دادم که شما رمز فایل اطلاعاتی رو 123 در نظر گرفتید .

یک توصیه عمومی :

در صورتی که فایلتون زیاد با یه فایل دیگه در ارتباطه بهتره که از ADO جهت انجام اینکار استفاده کنید .
عملاً ADO در بانکهای رابطه ای عملکرد جالبی رو از خودش به نمایش میذاره و عین یه کاتالیزور میتونه روی کارایی کلی بانک اطلاعاتیتون تاثیر مثبتی بذاره .
ADO یه پروتکل ارتباطیه که عملاً جایگزین DAO داره میشه . Microsoft در نسخه 2007 به صورت جدی این پروتکل رو مورد هدف قرار داده . و به احتمال زیاد تا چند سال آینده پشتیبانی از DAO رو به پایان میرسونه .
عملاً نسل آتی بانکهای رابطه ای الزاماً از این سیستم استفاده میکنن .



با آرزوی موفقیت برای تمامی دوستانم

HAMRAHSOFT.IR
دوشنبه 25 آذر 1387, 07:02 صبح
دوست خوب ميشه يك نمونه نيز قرار بدي تا دوستان بهتر متوجه بشن

nabeel
دوشنبه 25 آذر 1387, 19:23 عصر
دوست خوب ميشه يك نمونه نيز قرار بدي تا دوستان بهتر متوجه بشن

ضمن سلام

یه نمونه در رابطه با چی میخواید ؟

اگه منظورتون تغییر ایجاد شدس , قبلاً توی همین تاپیک فایل رو آپلود کرده بودم . شما فقط باید یک خط از کد موجود توی اون رو تغییر بدید .

اگه منظورتون مثال در خصوص ADO و DAO هستش , باید بگم با توجه به اینکه این دو تا مبحث پیچیدگیهای خاصی دارن , ارائه اونها رو در داخل این تاپیک چندان منطقی نمیدونم و از حوصله فعلی من و این تاپیک خارجه . چرا که معمولاً جواب , سئوال بعدی رو هم به همراه داره .
اجازه بدید فعلاً به دلیل مشغله کاری وارد این بحث نشم .
جرقه اول این بحث رو من یکی نمیزنم ! حالا اگه یکی از دوستان اینکارو کرد , اونوقت شاید ما هم ...
امیدوارم بتونم در آینده سر فرصت این دو تا رو به صورت کامل باز کنم و تاپیکهایی رو به اونها اختصاص بدم .
این بخش از Access خیلی بیشتر از اون چیزی که فکرش رو میکنید قویه و عملاً به عنوان یه سوپر شارژره که قابلیتهای اون باعث ارتقاء سطح کیفی نرم افزاراتون در وسعت زیادی میشه .
من فکر میکنم پاسخ نهایی داده شده به صورت کامل جوابگوی عنوان اصلی تاپیک هستش .





تا اون روز خدا نگهدارتون باشه

Mahsa Hatefi
سه شنبه 01 بهمن 1387, 21:33 عصر
با عرض معذرت من يه سوال برام پيش اومده .

تعريف ارتباطات جداول توي BackEnd بايد باشد يا توي FrontEnd ؟

nabeel
سه شنبه 01 بهمن 1387, 21:49 عصر
سلام

با توجه به طراحی بانک میتونه متغیر باشه . یعنی میتونه توی هر یک از اونها به تنهایی باشه و یا توی هر دو

البته در داخل Front End برخی تنظیمات امکان پذیر نیستن

Mahsa Hatefi
سه شنبه 01 بهمن 1387, 22:19 عصر
منظورتون از بعضي تنظيمات دقيقا كدوم ها هست ؟ Join Type يا گزينه هاي .....Enforce.... , Cascade

يا موارد ديگه ؟

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

حال اگر بانك جدا باشد و توي فايل بانك ارتباط تعريف نشود و ارتباط ها در فايل FrontEnd تعريف شود ، آيا باز هم با مشكل مواجه خواهم شد يا نه ؟

ممنون از توجه تون

nabeel
سه شنبه 01 بهمن 1387, 22:50 عصر
سلام

Enforce رو منظورم هست .

Join Type رو میتونید تعریف کنید و مشکلی وجود نداره .

در رابطه با سئوالهای آخرتون بدون دیدن نحوه ارتباط دهی فعلی بانک نمیشه نظر داد

barnamenevis2008
چهارشنبه 02 بهمن 1387, 15:11 عصر
فایل نمونه زیر را مشاهده کنید

27597

در نمونه فوق سه فایل وجود دارد که یکی آیکون است و دو فایل دیگر فایل اکسس میباشند (پسوند یکی از آنها نغییر داده شده است)

در دیتابیس اصلی مسیر فایلها و نام فایلهای لینک حتی درصورت جابجائی فایلها و تغییر نام آن هم بصورت اتوماتیک اصلاح میشود.

azadich
پنج شنبه 24 اسفند 1391, 20:39 عصر
فایل نمونه زیر را مشاهده کنید

27597

در نمونه فوق سه فایل وجود دارد که یکی آیکون است و دو فایل دیگر فایل اکسس میباشند (پسوند یکی از آنها نغییر داده شده است)

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