PDA

View Full Version : ایجاد سال جدید



fanavar
یک شنبه 26 شهریور 1385, 15:00 عصر
من دریک برنامه اطلاعات مربوط به سال 1384راواردکردم حال می خوام درهمان برنامه بصورت جداگانه مانند برنامه های دیگردسترسی به ایجادسال جدیدمثلا"سال 85و وروددیتای جدیدراداشته باشم ؟

سنبله کار
یک شنبه 26 شهریور 1385, 15:12 عصر
در جداول اصلی تون فیلد سال رو اضافه کنید و برای اطلاعات موجود مقدار 1384 بدید و از کاربر موقع ورود سال مورد نظرشو بپرسید و اونو در مقدار پیش فرض فیلد قرار بدید تا با افزودن هر رکورد سالش هم درج بشه حالا می تونید گزارش هر سالو جداگانه بگیرید .
البته یادتون باشه که مبحث ساده نیست و رابطه بندی ها ، ایندکس ها ، حجم اطلاعات و سرعت کار موجب پیچیدگی فرآیند می شه .

moustafa
یک شنبه 26 شهریور 1385, 21:25 عصر
شما یه جدول دیگه باید ایجاد کنید و اطلاعات تمام سالها را دراون بریزی
اگه بخواهی در یه جدول عمل کنی در سرعت ،ویرایش ،انتقال اطلاعات به جدوال دیگه با مشکل مواجه میشی
اگه شماره سند و فیلد تاریخ داشته باشی هر دوی انها باید کلید باشه (در جدول کل اطلاعات سالهای مختلف ) وبه هنگام گزارش یا جستجو با یه دستور اون جدلو دیتا سورس فرم یاگزارش قراربدی

hamedinho
سه شنبه 28 شهریور 1385, 23:04 عصر
شما می تونید از داخل فرم یک کپی از تیبل مربوط با نام جدید بگیرید و با هر بار باز شدن فرم از کاربر شوال بشه که چه سالی رو باز بکنه و رکورد سورس فرم رو با جواب کاربر مساوی قرار می دهید . با فرمان docmd.copyobject (و غیره) از تیبل کپی بگیرید.

alireza1514
چهارشنبه 29 شهریور 1385, 16:19 عصر
ببین دوست عزیز روشهای شما کاملا صحیح فقط یک اشکال نه چندان کوچک..که عبارتند از ..
1- افزونگی
2- حجیم شدن بانک
3-کند شدن بانک
4-و ...
روشی که من استفاده کردم و خوب جواب گرفتم استفاده از لینک می باشد با استفاده از این روش بانک شما یک دیتابیس دیگست و اپلیکیشن نیز یه بر نامه دیگست با خراب شدن اپلیکیشن بانک شما نیز از بین نمی رود و همچنین خیلی ابزارها نیز به آن استفاده می شود...

reza850101
شنبه 01 مهر 1385, 13:06 عصر
ممکنه بیشتر توضیح دهید یا نمونهش بزاری ممنون میشم

سنبله کار
شنبه 01 مهر 1385, 15:20 عصر
به نظر من باید حتی الامکان از تکه تکه کردن جداول بدلیل افزودن سال جدید خودداری کرد چون در گزارش گیری های جامع مواجه با کاهش توانایی های برنامه می شیم .
به این معنی که وقتی n تا جدول معادل n سال کار برنامه داشته باشیم تهیه گزارشهای مقایسه ای بین سالها یا سرجمع های چند ساله پیچیده می شه و باید مکانیزمهای خاصی رو برای یکپارچه کردن اطلاعات مد نظر داشته باشیم .
مثل اینجا : http://barnamenevis.org/forum/showthread.php?t=53076

moustafa
یک شنبه 02 مهر 1385, 00:57 صبح
ببین دوست عزیز روشهای شما کاملا صحیح فقط یک اشکال نه چندان کوچک..که عبارتند از ..
1- افزونگی
2- حجیم شدن بانک
3-کند شدن بانک
4-و ...
روشی که من استفاده کردم و خوب جواب گرفتم استفاده از لینک می باشد با استفاده از این روش بانک شما یک دیتابیس دیگست و اپلیکیشن نیز یه بر نامه دیگست با خراب شدن اپلیکیشن بانک شما نیز از بین نمی رود و همچنین خیلی ابزارها نیز به آن استفاده می شود...
کاملا موافقم ومنم از این روش استفاده می کنم تمام اطلاعات سنوات قبل در یه تیبل از دیتابیس دیگه کپی وجمع اوری ولینک داده میشه به برنامه اصلی

hamedinho
یک شنبه 02 مهر 1385, 14:11 عصر
اساتید چه راه کاری رو برای برنامه هایی که باید به صورت ماهانه و سالانه ذخیره بشن پیشنهاد می کنند . جستجو در سایت برای این مطلب انجام شد ولی هدف این بود که حرفه ای ها چه جوری این مشکل رو حل می کنند و همه بتونم در این تاپیک ازش استفاده کنن . من شخصا از داخل فرم از جدول کپی می گیرم و می دونم که این راه اصولیی نیست و مشکلات زیادی اعم از بالا رفتن حجم فایل به دنبال داره.

samaneh_h
یک شنبه 02 مهر 1385, 14:19 عصر
من پیشنهادم اینه که از دو تا دیتا بیس استفاده شه یکی اطلاعات حال رو داشته باشه و یکی اطلاعات آرشیو رو نگهداره مثلا فکر کنیم که آرشیو سالیانه است
کافیه توی تیبل یک فیلد به نام سال ایجاد کنیم و با یک کوئری ساده اطلاعات تیبل رو کا با اون سال (آرشیو) هماهنگ هست رو به یک دیتا بیس دیگه انتقال بدیم. نمی‌دونم آیا راه ساده‌تری هم هست..

samaneh_h
چهارشنبه 05 مهر 1385, 07:49 صبح
اینم نمونه که خواسته بودین.ولی امیدوارم راه های منطقی تری هم پیشنهاد بشه
نمونه رو توی درایو C سیستم Extract کن.بعد اول DByear رو باز کن .بد نیست یه نگاهی به تیبلش بندازی.دوتا کوئری هست که یکی کار انتقال اطلاعات به db archive رو انجام می‌ده و دیگری اطلاعات انتقال داده شده رو از دیتا بیس جاری حذف می‌کنه.سال رو از روی فرم انتخاب کن و دکمه آرشیو رو بزن

منصور بزرگمهر
یک شنبه 22 بهمن 1385, 06:52 صبح
من با نظر بعضی دوستان موافقم. بدلیل اهمیت جداگانه اطلاعات سال مالی هر سال مالی باید در یک فایل جدید و جداگانه ذخیره، و اطلاعات مقطعی با باز کردن فایل سال مربوطه، و جمع اطلاعات و سایر اطلاعات مقایسه ای سالهای متفاوت، با ایجاد یک کوئری UNION در آخرین فایل سال مالی، کلیه اطلاعات سالهای قبل را در دسترس قرار داد.
هیچ زمان نمی توان اطلاعات چند سال را در یک فایل قرار داد، چون بسرعت فایل مربوطه پر حجم شده، و از مدیریت حافظه اکسس نیز خارج می شود. همچنین از لحاظ حسابداری درست نمی باشد، اطلاعات سالهای متفاوت مالی در یک جا جمع گردد.

seeker
دوشنبه 23 بهمن 1385, 13:02 عصر
اصولا برنامه هایی م که سالیانه آرشیو میشن همینطوریه
یعنی مثلا وقتی تو یک حسابداری شما در انتهای سال مالی دفاترت رو میبندی عملا میاد یک فایل جدید بازمیکنه و فقط مانده حسابارو از تو جدول قبلی میریزه توش.
اینجوری امنیتشم بیشتره

mohammadgij
دوشنبه 23 بهمن 1385, 14:20 عصر
من هم فکر میکنم بهترین روش و کامل ترین روش اینه که اطلاعات بر حسب سال یا ماه (بستگی به نیاز) در همان DataBase ولی در جداول جداگانه ذخیره بشه. من یه مثال میزنم واستون جایی که ما کار میکنیم اطلاعات 8 سال گذشته حدود 900 هزار رکورد شده که در SQL نگهداری میشوند. مشکل بزرگ ما این بوده که در طراحیمون یک جدول به عنوان History در نظر گرفتیم و یک جدول هم براس سال جاری. اینجوری از نظر گزارشات مقایسه ای هیچ مشکلی نداریم اما در هنگامی جستجو و یا اجرای فرمولی خاص بر روی دسته ای از رکورد ها، حتی اگر این پروسیجر توسط Stored Procedure نوشته شده باشه از 15 ثانیه تا 3 دقیقه طول میکشه بسته به بار شبکه و پروسیجر ما. که اگر اطلاعات در جداول سالانه ذخیره شده بود هم سرعتمون بالا میرفت و هم برای گزارشات مقایسه ای مشد با یه اینپوت گرفتن جداول رو به هم Union کرد