اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

بسم الله الرحمن الرجيم

كما وعدت اساتذتي  شارح الكود ولان جهازي 

بطيء بعض الشيء ولكي لا بفصل النت ويضيع ما 

اكتب ساكتب بعدة مشاركات ان شاء الله.

اي كود يقوم على فهم الفكرة 

سيكون الشرح عن المخزون 

الفكرة تكمن اني اريد ان اعلم مقدار ما تبقى من المواد 

بعد ما تم صرفه والحل يكون على عدة خطوات 

لنتجاوز تسلسل الكود ولنفقز الى فهم الفكرة

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

 mySQL = "SELECT trans.idproduct AS Prd, trans.datna AS xDate, trans.voucherno AS Doct,trans.description AS Doct1, trans.[in] AS Pr, trans.prix AS PP, nz([SumOfout],0) AS Sold, trans.idstore" & _
 " FROM SalesTotal " & _
  "INNER JOIN trans ON (SalesTotal.idstore = trans.idstore) AND (SalesTotal.idproduct = trans.idproduct) " & _
"WHERE trans.[in] > 0 And trans.[idstore] = '" & Forms!fautt1!autot7.Form!idstore & "'" & _
" and trans.idproduct='" & Forms!fautt1!autot7.Form!idproduct & "'" & _
 "ORDER BY trans.idproduct, trans.datna;"
Set qdf = db.CreateQueryDef(vbNullString, mySQL)
Set Rs1 = qdf.OpenRecordset(dbOpenSnapshot)

وهذا الاستعلام نستطيع ان نسميه جدلا استعلام افتراضي بدون امتداد لاسمه والهدف من ذلك حتى لا تتضر  الى

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

واذا اردت ان  ترى الاستعلام باسم ايمن مثلا  اكتب الكودالتالي

qryName = "ayman"                                                 'consumed is calculated in this query
    mySQL = "SELECT trans.idproduct AS Prd, trans.datna AS xDate, trans.voucherno AS Doct,trans.description AS Doct1, trans.[in] AS Pr, trans.prix AS PP, nz([SumOfout],0) AS Sold, trans.idstore" & _
 " FROM SalesTotal " & _
  "INNER JOIN trans ON (SalesTotal.idstore = trans.idstore) AND (SalesTotal.idproduct = trans.idproduct) " & _
"WHERE trans.[in] > 0 And trans.[idstore] = '" & Forms!fautt1!autot7.Form!idstore & "'" & _
" and trans.idproduct='" & Forms!fautt1!autot7.Form!idproduct & "'" & _
 "ORDER BY trans.idproduct, trans.datna;"
Set qdf = db.CreateQueryDef(qryName)
  qdf.SQL = mySQL
   qdf.Execute
'لاظهار الاستعلام المنشأ -ايمن-اعادة الانعاش 
   Application.RefreshDatabaseWindow

 

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

autot7 

 في حدث بعد التحديث

fifo

اخواني ساكمل بعد التاكد من اني وفقت في شرح الفكرة الاولى

  • Thanks 2
قام بنشر

السلام عليكم

قد يطرح سؤال لماذا لم تستخدم كود الموديل 

FIFO

 mySQL = "SELECT trans.idproduct AS Prd, trans.datna AS xDate, trans.idproduct AS Doct, trans.[in] AS Pr, trans.prix AS PP, nz([SumOfout],0) AS Sold, trans.idstore" & _
 " FROM SalesTotal " & _
 "INNER JOIN trans ON (SalesTotal.idstore = trans.idstore) AND (SalesTotal.idproduct = trans.idproduct) " & _
 "WHERE trans.[in] > 0 And trans.[idstore] = '" & [Forms]![117]![combo1] & "'" & _
 "ORDER BY trans.idproduct, trans.datna;"
Set qdf = db.CreateQueryDef(vbNullString, mySQL)
Set Rs1 = qdf.OpenRecordset(dbOpenSnapshot)

لان هذا الكود يعطيني كافة المواد في المستودع المستهدف اما في شاشة الفواتير اريد اعطائي فقط المادة المدخلة فقط لكي احسب الرصيد لكل مادة مدخلة على حدى 

والسؤال الثاني لماذا لا تستغني عن هذا الكود فقط اشر اليه بالاستعلام كما فعلت في قاعدة اعمار الذمم

Rs1.Open "ayman", cn, adOpenForwardOnly, adLockReadOnly 

وتنشء استعلام في شاشة الاستعلام اقول هذا الحل جيد واسهل لكن لم اجربه تماما اتمنى من بعض الاخوة تجربته

الان انشاء الاستعلام استطيع ان اشرح الخطوة الثانية بصورة

 

FIFO.png

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information