PDA

View Full Version : برنامه انبار



amirzazadeh
پنج شنبه 23 اسفند 1386, 10:04 صبح
دوستان لطفا فایل ضمیمه ببینید (در ضمن مشکل من اینه که می خواهم بدونم چطور میتونم فیلد شماره فاکتور فرم فاکتور رو موقع بروز رسانی در کوئری postor اضافه کنم .متن خطای صادره اینه:
"too few parameter expected one"

bad_boy_2007
پنج شنبه 23 اسفند 1386, 23:09 عصر
دوستان لطفا فایل ضمیمه ببینید (در ضمن مشکل من اینه که می خواهم بدونم چطور میتونم فیلد شماره فاکتور فرم فاکتور رو موقع بروز رسانی در کوئری postor اضافه کنم .متن خطای صادره اینه:
"too few parameter expected one"

من تو برنامه های خورم از کوئری زیر استفاده میکنم :
Select Max(ID) from Factor
همین !!! چون فیلد ID از نوع AutoNumber هست پس آخرین رکورد درج شده بزرگترین رکورد خواهد بود و چون بلافاصله پس از درج رکورد جدید ID رو میگیری پس شماره مربوط به آخرین رکورد درج شده یعنی آخرین فاکتور فروش رو دریافت میکنی !!!

amirzazadeh
یک شنبه 26 اسفند 1386, 10:55 صبح
من تو برنامه های خورم از کوئری زیر استفاده میکنم :
Select Max(ID) from Factor
همین !!! چون فیلد ID از نوع AutoNumber هست پس آخرین رکورد درج شده بزرگترین رکورد خواهد بود و چون بلافاصله پس از درج رکورد جدید ID رو میگیری پس شماره مربوط به آخرین رکورد درج شده یعنی آخرین فاکتور فروش رو دریافت میکنی !!!
ضمن تشکر از توجه شما با اعمال راهنمایی شما مشکل جدیدی پیش اومد و اون اینکه database اپدیت نمیشه(متن خطا اینه database or object is read only)file:///C:/DOCUME%7E1/am/LOCALS%7E1/Temp/moz-screenshot.jpg

amirzazadeh
یک شنبه 26 اسفند 1386, 11:00 صبح
من تو برنامه های خورم از کوئری زیر استفاده میکنم :
Select Max(ID) from Factor
همین !!! چون فیلد ID از نوع AutoNumber هست پس آخرین رکورد درج شده بزرگترین رکورد خواهد بود و چون بلافاصله پس از درج رکورد جدید ID رو میگیری پس شماره مربوط به آخرین رکورد درج شده یعنی آخرین فاکتور فروش رو دریافت میکنی !!!
ضمن تشکر از توجه شما با اعمال راهنمایی شما مشکل جدیدی پیش اومد و اون اینکه database اپدیت نمیشه(متن خطا اینه database or object is read only)

bad_boy_2007
یک شنبه 26 اسفند 1386, 14:10 عصر
ضمن تشکر از توجه شما با اعمال راهنمایی شما مشکل جدیدی پیش اومد و اون اینکه database اپدیت نمیشه(متن خطا اینه database or object is read only)

احتمالا مشکل شما اینه که 2 رکورد با اطلاعات یکسان در جدولتون بوجود آمده برای رفع این مشکل یک فیلد با عنوان ID و نوع AutoNumber برای منحصر به فرد شدن فیلدهای جدولتون اضافه کنید

bad_boy_2007
یک شنبه 26 اسفند 1386, 14:12 عصر
راستی آدرس تصویر مربوط به خطا را در یک سرویس دهنده آپلود مثل
WWW.tinypic.com
آپلود کنید و سپس آدرس عکس رو در اینترنت بدهید نه بر روی کامپیوتر خودتان !!!
(C:/DOCUME%7E1/am/LOCALS%7E1/Temp/moz-screenshot.jpg)

amirzazadeh
یک شنبه 26 اسفند 1386, 14:56 عصر
من مشکلم رو با اضافه کردن یه فیلد boolean حل کردم .و وقتی فاکتور رو ثبت میکنم و موجودی انبارم رو به روزم می شه مشکل اینه که اگه فاکتور نیاز به اصلاح داشته باشه نمیدونم چه جوری مقدار قبلی رو توی temp بریزم واختلاف اونرو با مقدار جدید به موجودی ارسال کنم.امیدوارم سئوالم رسا باشه در ضمن به خاطر معرفی سایت uploadاز شما ممنونم.

bad_boy_2007
یک شنبه 26 اسفند 1386, 19:54 عصر
من مشکلم رو با اضافه کردن یه فیلد boolean حل کردم .و وقتی فاکتور رو ثبت میکنم و موجودی انبارم رو به روزم می شه مشکل اینه که اگه فاکتور نیاز به اصلاح داشته باشه نمیدونم چه جوری مقدار قبلی رو توی temp بریزم واختلاف اونرو با مقدار جدید به موجودی ارسال کنم.امیدوارم سئوالم رسا باشه در ضمن به خاطر معرفی سایت uploadاز شما ممنونم.

ای کاش میومدی و تو SQL Server کار میکردی ، توی SQL Server مفهومی داریم به نام Trigger (تریگر) زمانی که به یک جدول فیلدی اضافه میشه یا حذف میشه شایدم ویرایش !!! تریگر فعال میشه درست مثل یک رویداد و میتونی تو تریگر کد مربوط به بالا و پایین کردن کالا تو انبار رو انجام بدی حالا این کار تو اکسس اگه بگم 10 برابر بیشتر زحمت داره مبالغع نکردم جدا از اینکه اگر کسی دستی اطلاعات دیتابیس رو تغییر بده موجودی انبار تو اکسس بهم میریزه ولی تو SQL تریگر فعال میشه و اطلاعات انبار رو بروز رسانی میکنه .

ببین دوست من برای این کار اکیدا توصیه میکنم بیا سمت SQL (یه زمانی من هم خیلی با اکسس کد مینوشتم فقط به این دلیل که نمیدونستم SQL چقدر کارها رو آسون میکنه 2 سال عمرم رو بیخود با اکسس گذروندم)

ولی اگر بنا به هر دلیل نیاز داری یا اینکه نمیتونی و میخوای با اکسس ادامه بدی یک راهش اینه :
1- پیش از اعمال تغییرات تو انبار موجودی کالاها رو تو یک آرایه داینامیک بریزی
2-
با مقایسه مقادیر قبلی (آرایه) و مقادیر جدید (احتمالا اطلاعات گرید) اقدام به بالا و پایین کردن موجودی انبار بکن

یک راه دیگه که جلوی افزونکی داده ها رو میگیره و جامعیت رو هم حفظ میکنه ولیکن ممکنه (خیلی کم) سرعت رو کم کنه استفاده از دید (View) تو اکسس Query هست که موجودی فعلی رو توسط یک View محاسبه کنی

اگر قصد ادامه کار با اکسس رو داری راه دوم رو پیشنهاد میکنم

bad_boy_2007
یک شنبه 26 اسفند 1386, 20:23 عصر
فکر کنم این Query کمکت کنه :

SELECT (Sum(KHARIDDETAIL.Quantity)-Sum([order details].Quantity)) AS InStock, (Products.ProductID)
FROM (Products INNER JOIN KHARIDDETAIL ON Products.ProductID = KHARIDDETAIL.ProductID) INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID
GROUP BY (Products.ProductID);