PDA

View Full Version : سوال: ایجاد فیلد محاسباتی



hraeissi
پنج شنبه 13 بهمن 1390, 20:34 عصر
با سلام

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

ممنون

aromega65
پنج شنبه 13 بهمن 1390, 23:59 عصر
سلام دوست عزیز
بهتره نمونه بزاری تا بهتر بشه کار کرد رو موضوع

royasaz_bam
جمعه 14 بهمن 1390, 01:31 صبح
دوست عزیز برروس فرمی که فیلد یک وجود دارد یک تکست باکس "text2" انبلود ایجاد کن سپس در خاصیت افتر ابدیت آن عبارت

Me.fild1 = Me.fild1.Value + Me.Text2.Value

را بگذار مطابق عکس 81952
دقت داشته باش نوع فیلد 1 باید عددی باشد و برای قسمت دوم نیز به همین منوال عمل کن

hraeissi
جمعه 14 بهمن 1390, 07:49 صبح
از زحمتی که کشیدید بسیار متشکرم
در مثال شما در جدول یک فیلد وجود دارد و در فرم 2 تا وقتی باهاش کار کردم متوجه نشدم داره چکار می کنه
من می خواهم 5 تا فیلد باشه ( date,partnubmerImport,Export,Mande)
برای هر کالا تاریخ و ورودی را بدم ورودی را با مانده جمع کنه در مانده دوباره قرار بده
و برای هر کالا تاریخ و خروجی را بگیره از مانده کم کنه دوباره در آن قرار بده
می خوام برای خودم یه کاردکس کوچیک درست کنم
در نهایت ریز ورود و خروج را ببینم و بدونم از هر کالا چند تا مانده
اگر این را برام قرار بدهید که خیلی ممنون می شوم

royasaz_bam
جمعه 14 بهمن 1390, 14:02 عصر
سلام روشی را که من ارائه دادم موسوم به شیءگرائی است و برای انجام یکی دو محاسبه کاربرد دارد ولی برای کاردکس که شما میخواهید باید از ماژولهای استاندارد استاندارد استفاده کرد
این ماژولها شامل دستورات sql و recordset جهت گرفتن اطلاعات و یکی سری محاسبات مشابه مثال فوق و در نهایت خروجی را به فیلد نظر بدهند فیلدها بهتر است انبلود باشند و جهت ذخیره آنها تیز از دستورات recordsetاستفاده گردد که در نمونه عکس 81967
که تنها برای گرفتن موجودی انبار ابتدا میاز به جمع کردن ورودیهایکالا سپس آنرا از خروجیهای کالا کم کند و سپس آن را ارائه نماید

Function sam_tedad()

Dim sql1, sql2, sql3 As String, rst1, rst2, rst3 As Recordset
'جمع کردن ورودیهای یک نوع کالا
sql1 = "SELECT sum(verod_kala.tedad) AS sumOffi_fa FROM verod_kala WHERE (((verod_kala.coke_id_kala)= " & [Forms]![kala]![id_kala] & " ));"
'جمع کردن خروجیهای همان نوع کالا
sql2 = "SELECT sum(khoroj_kala.tedad_kh) AS sumOfkk FROM khoroj_kala WHERE (((khoroj_kala.code_kala)= " & [Forms]![kala]![id_kala] & " ));"
'دریافت واحد کالا
sql3 = "SELECT first(kala.vahed) AS f_vahed FROM kala WHERE (((kala.id_kala)= " & [Forms]![kala]![id_kala] & " ));"
Set rst1 = CurrentDb.OpenRecordset(sql1)
Set rst2 = CurrentDb.OpenRecordset(sql2)
Set rst3 = CurrentDb.OpenRecordset(sql3)

vk = Nz(rst1!sumOffi_fa, 0)
kk = Nz(rst2!sumofkk, 0)
'کسر کردن خروجی از ورودی
mo = vk - kk
'نتیجه
If mo = 0 Then
sam_tedad = " بدون موجودي"
Else
If mo > 0 Then
sam_tedad = mo & " " & rst3!f_vahed
Else
sam_tedad = mo & " " & rst3!f_vahed & " " & "کسري"
End If
End If
rst1.Close
rst2.Close
rst3.Close
End Function

گرفتن چنین نتیجه ای با شی گرائی بسیار مشکل تر است و درصد خطا بیشتری دارد ولی با کد ممکن میشود

hraeissi
جمعه 14 بهمن 1390, 17:52 عصر
ممنون از توضیحات یعنی من یه برنامه ساده برای آن نمی تونم پیدا کنم
من خیلی به این موضوع احتیاج دارم ولی نمی خوام هزینه کنم چون در همین اندازه می خواهم که کالا وارد و خارج شود و در نهایت موجودی الان را بدهد .
اگر برنامه ای برای این موضوع سراغ دارید برام لینک بدید و یا اگر با اکسس میشه که راهنمایی کنید .

ممنون

aromega65
جمعه 14 بهمن 1390, 23:01 عصر
سلام سعی میکنم برات یه نمونه آماده کنم دوست عزیز

royasaz_bam
شنبه 15 بهمن 1390, 00:07 صبح
آیا دستورات قید شده دربالا برایت مشکل هستند و با کد نویسی در اکسس آشنا نیستی، از یادگیری آنها که یک موضوع جدید هستند ترس داری.

پس بگذار بگویم این ترس تو سخت تر از کد نویسی در اکسس است

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