الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حساب رصيد المواد ( برنامج صادر وارد)

مغلق
بدأه --Crystal-- في 27 أغسطس 2007 · 3 رد · 3,250 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اشكركم على جهودكم الكبيره المبذوله في نشر العلم عن طريق هذا المنتدى الرائع

ووللعلم انا من القراء الدائمين لهذا القسم والحمد لله لقد استفدت الشيئ الكثير

لقد بحثت في هذا المنتدى عن طريقة خصم رصيد المواد حسب اقرب تاريخ انتهاء ووجدت هذا المثال

/index.ph...الأقدم&st=0

حاولت تطبيقه والتعديل عليه في البرنامج الذي اعمل عليه حاليا

حيث اني لا اريد ان افقد كمية المواد وذلك حتى يمكن الرجوع لها فيما اذا قرر صاحب البرنامج التراجع عن حركة الصادر ( حذفها يعني)

لذالك قمت بعمل Function

استخدمها في الإستعلام

ولكنها لم تعمل بالصوره المطلوبه

فأين المشكلة برأيكم :wacko:

**************

Public Function ExpairBalance(ItemCode As String, Qty As Integer, F As String) As String

Dim strSQl As String

Dim rec As New ADODB.Recordset

Dim Result As Long

Dim I As Integer

Dim CountQU As Long

Dim Result2 As Long

Dim w As Integer

Result = 0

If F = "OUT" Then

CountQU = DSum("[Quantity]", "QryINExpTotal", "ItemCode='" & ItemCode & "' AND Flage='" & "IN" & "'")

If CountQU < Qty Then

'If Me.Text29.Value < Me.Text21.Value Then

MsgBox "Quantity is Greater than the existing balance ( " & CountQU & ")"

Exit Function

End If

strSQl = "select CodeID, ItemCode, Flage, Quantity, ExpDate from QryINExpTotal "

strSQl = strSQl & " where ItemCode='" & ItemCode & "' AND Flage='" & "IN" & "'"

strSQl = strSQl & " order by ExpDate asc"

rec.Open strSQl, CurrentProject.Connection, adOpenKeyset, adLockReadOnly, adCmdText

For I = 1 To rec.RecordCount

'balance > Qty

If Val(Qty) > rec!Quantity Then

Result = Val(Qty) - rec!Quantity

Qty = Result

w = 0

DoCmd.SetWarnings False

'DoCmd.RunSQL "update tblExpairQty set Quantity =0 where CodeID=" & rec!CodeID

rec.MoveNext

ExpairBalance = w

If Result = 0 Then Exit Function

Else

'balance < QTY

Result2 = rec!Quantity - Val(Qty)

Qty = 0

w = Result2

DoCmd.SetWarnings False

' DoCmd.RunSQL "update QryINExpTotal set Quantity =" & Result & " where CodeID=" & rec!CodeID

If Qty = 0 Then Exit Function

End If

ExpairBalance = w

Next I

rec.Close

Set rec = Nothing

End If

End Function

*****************

INOUT.rar

#2

اخي الكريم.. اهلا بك.. ولكن الملف المرفق لا يفك ضغطه.. وبه مشكلة.. ارجو اعدة حذفه وارفاقه من جديد..

لدي فكرة تكون كالتالي..

1-عند اختيار اسم او رقم المادة تتم عملية تعبئة لقائمة منسدلة بها كافة تواريخ انتهاء هذه المادة، اي جميع سجلاتها في المخزون ومرتبه حسب الاقدم..

2-يتم اختيار التاريخ المناسب من هذه القائمة... طبعا هذا في حال العمل اليدوي..

ولكن هناك فكرة افضل.,.

1-عمل استعلام به المواد مرتبة حسب الاسم (او الكود) ثم حسب تاريخ الانتهاء تنازليا اي من اخر تاريخ للمادة الى اول تاريخ لها..

2- في النموذج: ندخل رقم المادة او اسمها او الكود او اي معرف متفق عليه، الى مربع نص، يذهب بالقيمة من خلال الدالة DFirst لياتي بتاريخ الانتهاء الاول في السجلات بدلالة كود المادة وليكن كود المادة هو الحقل ItemCode مثلا..

مثال: مربع النص هو T1 والاستعلام اسمه ItemsD والنموذج اسمه F1 ... وحقل التاريخ فرضا هو Expir..

الكود التالي في حدث بعد التحديث لمربع النص T1

Text0 = DFirst("[Expir]","ItemDates","[ItemCode]=Forms![F1]![T1]")

اي احضر اول قيمة من حقل التاريخ في ذلك الاستعلام الى مربع النص Text0 بدلالة كود المادة T1 الذي يوجد في نموذج F1

طبعا لم اجرب،، لاني كنت استخدم دالة Dmax وليس DFirst أو Dlookup واعتقد انها بكفاءة كبيرة تعمل على التواريخ..

Text0 = DMax("[Expir]","ItemDates","[ItemCode]=Forms![F1]![T1]")

اخي الكريم .. تأكد انه ان لم تجرب بنفسك هذه العملية لن تصل الى نتيجة، او على الاقل ستبقى كل الحلول الجاهزة غامضة..

اي جرب، وفق ما هو موجود في برنامج الذي تعمل عليه وان واجهتك مشاكل فالجميع بالخدمة..

اخوك همام

تم تعديل هذه المشاركة بواسطة همام ابوعرقوب في 28 أغسطس 2007 في 14:18 — السبب: ان لم تجرب بدل ان تجرب

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#3

اخي همام اشكرك على سرعة الرد وجزاك الله الف خير

......حاولت ان اجرب طريقتك ولكن لم اتوصل إلى ما اريد :(

هذا الملف المرفق

http://www.4shared.com/file/22977882/a47c9bdc/INOUT.html

حاولت عمل استعلام لاني

اريد ان اعمل تقرير يتضمن الاشياء التي انتهت مدة صلاحيتها وكم كميتها في المخزن بعد عمليات الخصم

في الإنتظار

#4

اخي الكريم..

حسب ما فهمت من رسالتك الاخيرة انك تريد عرض المواد منتهية الصلاحية،

حيث يكون عندها تاريخ اليوم الحالي قد تعدى تاريخ انتهاءها..

لذا يوضوع في الاستعلام في سطر الشروط واسفل حقل تاريخ الانهاء الشرط التالي..

<=Date()

تفضل المثال..

INOUT.rar

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…