FoMaNsHeE قام بنشر فبراير 19, 2017 قام بنشر فبراير 19, 2017 أخواني الكرام الرجاء مساعدتي في الملف المرفق في عمل الاتي : أ - عندي 3 جداول بينهم علاقة برقم السند One-by-one عايز لو في الامكان اعمل استعلام واحد يضم من الثلاث جداول البيانات وحتكون كالاتي : 1 - من جدول Customer (Receipt Number - Date - Customer Name - Branch - Department ) 2 - من جدول Denomination (Total Cash ) 3 - من جدول Deposit [Deposit Amount ] --------------------------------------------------------------------------- ب - مساعدتي في فورم Cash Deposit 1 - أي بيانات بقوم بتعبتها في الفورم الخاص ب Cash Deposit تترحل أوتوماتيك لجدول Cash Deposit لنفس اليوم الذي تم تعبئة البيانات فيه مع العلم انه قائم على جدولين شاكر ومقدر حسن تعاونكم معنا Test.rar
jjafferr قام بنشر فبراير 19, 2017 قام بنشر فبراير 19, 2017 وعليكم السلام بالنسبة الى (1) ، فاعمب استعلام ، واسحب الجداول الثلاث فيه ، واختر حقول الجداول ، ويصير عندك الاستعلام ، شو المشكلة اللي عندك؟ جعفر 1
FoMaNsHeE قام بنشر فبراير 19, 2017 الكاتب قام بنشر فبراير 19, 2017 (معدل) 20 دقائق مضت, jjafferr said: بالنسبة الى (1) ، فاعمب استعلام ، واسحب الجداول الثلاث فيه ، واختر حقول الجداول ، ويصير عندك الاستعلام ، شو المشكلة اللي عندك؟ دي المشكله تم تعديل فبراير 19, 2017 بواسطه Maxwal
FoMaNsHeE قام بنشر فبراير 19, 2017 الكاتب قام بنشر فبراير 19, 2017 (معدل) 8 دقائق مضت, jjafferr said: اعمله بالطريقة اليدوية كما شرحت لك أخي انا جربتها بالطريقتين مشر اضي يسويها بمعني اصح يجمع بيانات من 3 جداول مع اني عامل ليهم علاقات يجيب جدول فاضي ما في شيء ياريت تشوف الملف المرفق تم تعديل فبراير 19, 2017 بواسطه Maxwal
jjafferr قام بنشر فبراير 19, 2017 قام بنشر فبراير 19, 2017 تفضل: 1. 2. وقم بإضافة بقية الحقول . جعفر 51 دقائق مضت, Maxwal said: يجيب جدول فاضي ما في شيء هذا موضوع آخر !! يعني تستطيع عمل الاستعلام ، ولكن لا توجد سجلات فيه !! طبعا لن تحصل على سجلات ، لأنه لا يوجد رقم متحد بين الجداول الثلاث!! جرب التالي: في الجدول Deposit ، غيّر القيمة الاولى من 73 الى 68 ، ثم جرب الاستعلام ، فسترى سجلا واحدا . جعفر 2
FoMaNsHeE قام بنشر فبراير 19, 2017 الكاتب قام بنشر فبراير 19, 2017 8 دقائق مضت, jjafferr said: في الجدول Deposit ، غيّر القيمة الاولى من 73 الى 68 ، ثم جرب الاستعلام ، فسترى سجلا واحدا القيمة مثلا 73 مرتبطة برقم سجل على جدول ال Customer ، ولكن في جدول ال Denomination مش مرتبطه لان دي سندات للعملاء ودي ايداعات فلو انت لاحظت في Customer Name متغيرش الى اسم البنك المكتوب في جدول ال Customer اللي نزل عليه السجل بالفعل معنى كلامي اني عايز يجيب البيانات في يوم 19 من جدول Customer البيانات الاساسية ( Receipt Number - Date - Customer Name - Branch - Department ) أما من جدول ال Denomination و Deposit المبلغ قصاد ال Customer Name بتاعه قصاد مبلغ ال Denomination ياتي اسم العميل أما قصاد مبلغ الايداع يجيب اسم البنك مدين - دائن - رصيد اتمنى تكون فهمتني اخي الكريم
jjafferr قام بنشر فبراير 19, 2017 قام بنشر فبراير 19, 2017 اعطني مثال باسماء الحقول وبالارقام من برنامجك ، واخبرني كيف يجب ان يظهر الاستعلام جعفر 1
FoMaNsHeE قام بنشر فبراير 19, 2017 الكاتب قام بنشر فبراير 19, 2017 5 دقائق مضت, jjafferr said: اعطني مثال باسماء الحقول وبالارقام من برنامجك ، واخبرني كيف يجب ان يظهر الاستعلام جعفر عايز اوصل الجدول للي في الشكل أدناه أريد الاستعلام يكون ، معلش عملته على الاكسل بسرعه
jjafferr قام بنشر فبراير 19, 2017 قام بنشر فبراير 19, 2017 مثالك الاخير هو الذي شرح لنا المطلوب 1. نعمل استعلاملنتائج الجدولين Customer و Denomination ، واستعلام آخر لنتائج الجدولين Customer و Deposit ، ولغرض الخطوة التالية (استعلام توحيد) ، فيجب ان تكون عدد الحقول نفسها في الاستعلامين ، وبنفس الترتيب: . ونتائجهم هي كما نريد: . ثم نحول وضع الاستعلامين الى SQL ، ثم نعمل استعلام توحيد ، وننسخ SQL الاستعلام الاول الى استعلام التوحيد ، ثم جملة Union All ثم ننسخ SQL الاستعلام الثاني: . ونتيجة الاستعلام: . الآن نعمل استعلام جديد ، ومصدره استعلام التوحيد اعلاه ، ويجب استعمال زر النموذج لتشغيل الاستعلام ، كما ان الاستعلام سيأخذ التاريخ من النموذج كذلك ، والاستعلام ينادي الوحدة النمطية Bal ، والتي سيأخذ نتائجه منها: . وكود زر فتح الاستعلام هو (لاحظ انه نريد ان نبدأ متغير الجمع B من الصفر) : Private Sub cmd_qry_Cust_Deno_Depo_Click() B = 0 DoCmd.OpenQuery "qry_Balance" End Sub . وهذه نتيجة الاستعلام: . وهذه هي الوحدة النمطية: Public B As Long Function Bal(C, D) 'C = Cash 'D = Depo C = Replace(C, "-", 0) D = Replace(D, "-", 0) B = C + B - D Bal = B End Function . الباقي الذي تريده ، يجب ان تعمله في التقرير جعفر 597.Test.accdb.zip 2
FoMaNsHeE قام بنشر فبراير 19, 2017 الكاتب قام بنشر فبراير 19, 2017 اخي الكريم جزاك الله كل خير لا استطيع وصف الافادة من هذا الموضوع الكامل وشكرا جزيلا اخي الكريم تعبناك معانا أخوك محمد
FoMaNsHeE قام بنشر فبراير 19, 2017 الكاتب قام بنشر فبراير 19, 2017 1 ساعه مضت, jjafferr said: وهذه نتيجة الاستعلام: أخي الكريم أرفقتلك الملف اللي اشتغلت عليه وبالفعل كل تمام بس لما احرك الماوس او افتح التقرير ال Balance يتغير لارقام عشوائية ياريت تشوف المشكله فيه ايه بالظبط وتديني خبر بيها وشكرا Test2.rar
FoMaNsHeE قام بنشر فبراير 20, 2017 الكاتب قام بنشر فبراير 20, 2017 13 ساعات مضت, jjafferr said: وهذه هي الوحدة النمطية: أخي جعفر الرجاء النظر في الموضوع لان ال Balance غير ثابت عند فتح التقرير انا رافق لك التقرير النهائي اللي عملته بنفس شرحك التاريخ 18-02-2017 م
jjafferr قام بنشر فبراير 20, 2017 قام بنشر فبراير 20, 2017 شكرا على تنبيهي على هذا الخطأ هناك تغييرين في البرنامج ، 1. في الاستعلام ، فارسلنا رقم الوصل ايضا الى الوحدة النمطية ، 2. وهذه الوحدة النمطية الجديدة: Option Compare Database Public B As Long Public x() Public B2() Function Bal(ID, C, D) 'C = Cash 'D = Depo 'Do this for entry to the Function If B = 0 Then 'asign a Zero value to x(), 'we will need this so that the Function will NOT repeat 'going over the old records over and over due to scrolling the Query up and down Dim rst As DAo.Recordset Set rst = CurrentDb.OpenRecordset("SELECT * FROM Qry_Cust_Deno_Depo WHERE [Receipt Date]=#" & [Forms]![Search]![MyDate] & "#") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount ReDim x(RC) ReDim B2(RC) For i = 1 To RC x(rst![Receipt Number]) = 0 rst.MoveNext Next i rst.Close: Set rst = Nothing End If If x(ID) = 0 Then '1st entry asigns values C = Replace(C, "-", 0) D = Replace(D, "-", 0) B = C + B - D Bal = B x(ID) = 1 B2(ID) = B Else 'for further visits, just take the already asigned value Bal = B2(ID) End If End Function جعفر 597.1.Test2.accdb.zip 2
FoMaNsHeE قام بنشر فبراير 20, 2017 الكاتب قام بنشر فبراير 20, 2017 (معدل) منذ ساعه, jjafferr said: 2. وهذه الوحدة النمطية الجديدة: منذ ساعه, jjafferr said: x(rst![Receipt Number]) = 0 اخي جعفر أولا جزاك الله كل خير على هذا المجهود الرائع ثانيا حبيت افيدك في السطر ده لما تدخل بيانات ليوم 19 مثلا ويوم 20 وتيجي تبحث جالي خطأ في السطر ده كما هو موضح أدناه بالصور ولما نضغط على Run Query ولما نضغط على Debug ياريت تشوف الموضوع ده برده معلش تعبناك معانا تم تعديل فبراير 20, 2017 بواسطه Maxwal
Shivan Rekany قام بنشر فبراير 20, 2017 قام بنشر فبراير 20, 2017 1 ساعه مضت, Maxwal said: ياريت تشوف الموضوع ده برده معلش تعبناك معانا عفوا منك سيد ماكسويل انا نزلت المرفق وبحث بالتواريخ 18\2\2017 و 19 و 20 وما طلعت معي ذاك لمشكلة لكن رغم ذلك اكتب في الاول الكود زر Run Query هذا الكود On Error Resume Next تحياتي 1
jjafferr قام بنشر فبراير 20, 2017 قام بنشر فبراير 20, 2017 وعليكم السلام اولا ، ارفق لك تغيير جدا طفيف ، وهو لتوقيف الخطأ اذا لم يكن هناك سجلات ، ثانيا ، المعادلة التي تفضلت بها غير عن المعادلة التي ارفقتها انا ، فما ادري اذا انت عملت تغيير آخر كذلك ّّ والافضل انك ترفق برنامجك الذي اعطاك الخطأ. Option Compare Database Public B As Long Public x() Public B2() Function Bal(ID, C, D) On Error GoTo err_Bal 'C = Cash 'D = Depo 'Do this for entry to the Function If B = 0 Then 'asign a Zero value to x(), 'we will need this so that the Function will NOT repeat 'going over the old records over and over due to scrolling the Query up and down Dim rst As DAo.Recordset Set rst = CurrentDb.OpenRecordset("SELECT * FROM Qry_Cust_Deno_Depo WHERE [Receipt Date]=" & DateFormat([Forms]![Search]![MyDate])) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount ReDim x(RC) ReDim B2(RC) For i = 1 To RC x(rst![Receipt Number]) = 0 rst.MoveNext Next i rst.Close: Set rst = Nothing End If If x(ID) = 0 Then '1st entry asigns values C = Replace(C, "-", 0) D = Replace(D, "-", 0) B = C + B - D Bal = B x(ID) = 1 B2(ID) = B Else 'for further visits, just take the already asigned value Bal = B2(ID) End If Exit_Bal: Exit Function err_Bal: If Err.Number = 3021 Then Resume Exit_Bal Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function Function DateFormat(varDate As Variant) As String 'Purpose: Return a delimited string in the date format used natively by JET SQL. 'Argument: A date/time value. 'Note: Returns just the date format if the argument has no time component, ' or a date/time format if it does. 'Author: Allen Browne. allen@allenbrowne.com, June 2006. ' 'calling the Function: DateFormat(The_Date_Field) 'a = dlookup("[some field]","some table","[id]=" & me.id & " And DateFormat(The_Date_Field)") ' If IsDate(varDate) Then If DateValue(varDate) = varDate Then DateFormat = Format$(varDate, "\#mm\/dd\/yyyy\#") Else DateFormat = Format$(varDate, "\#mm\/dd\/yyyy hh\:nn\:ss\#") End If End If End Function جعفر 597.1.Test2.accdb.zip 2
FoMaNsHeE قام بنشر فبراير 20, 2017 الكاتب قام بنشر فبراير 20, 2017 (معدل) عفوا منك سيد ماكسويل انا نزلت المرفق وبحث بالتواريخ 18\2\2017 و 19 و 20 وما طلعت معي ذاك لمشكلة لكن رغم ذلك اكتب في الاول الكود زر Run Query هذا الكود لان مفيش بيانات في يوم 19 و 20 اما في المرفق ضيفت البيانات وظهر الموضوع ده 19 دقائق مضت, jjafferr said: 597.1.Test2.accdb.zip اخواني الكرام مغيرتش غير كلمتين receipt و deposit بس اما بخصوص المشكله ظهرت لما دخلت بيانات ليوم 19 ويوم 20 ومرفق الملف الاول ومعاه الملف الاخير كمان اللي انت بعته يقولي out of rang لما دخلت بيانات برده 597.1.Test2.rar الملف الاخير.rar تم تعديل فبراير 20, 2017 بواسطه Maxwal
Shivan Rekany قام بنشر فبراير 20, 2017 قام بنشر فبراير 20, 2017 18 دقائق مضت, Maxwal said: لان مفيش بيانات في يوم 19 و 20 اما في المرفق ضيفت البيانات وظهر الموضوع ده اخواني الكرام مغيرتش غير كلمتين receipt و deposit بس اما بخصوص المشكله ظهرت لما دخلت بيانات ليوم 19 ويوم 20 ومرفق الملف الاول ومعاه الملف الاخير كمان اللي انت بعته يقولي out of rang لما دخلت بيانات برده 597.1.Test2.rar الملف الاخير.rar جرب هذا الملف الاخير.rar 1
jjafferr قام بنشر فبراير 20, 2017 قام بنشر فبراير 20, 2017 السلام عليكم اضطررت عمل جدول مؤقت للموضوع ، وهناك طريقتين وضعتهم لك: 1. جدول مؤقت tbl_Balance في قاعدة البيانات ، بحيث يتم حذف البيانات القديمة منه ، ثم ادخال البيانات الجديدة اليه ، ونستخدم الاستعلام qry_Balance للتقرير ، وانا شخصيا لا احبذ وجود جدول مؤقت داخل قاعدة البيانات ، لأنه يجعل حجم البرنامج يكبر ، الى ان بين كل فترة واخرى تضغط على زر الاصلاح Compact and Repair ، 2. جدول مؤقت خارج البرنامج (في مجلد Temp الوندوز) ، وكل ماله علاقة بهذه الطريقة يحمل رقم2 ، والتقرير2 يأخذ مصدره من هذا الجدول المؤقت ، ولا يستخدم الاستعلام qry_Balance. جعفر 597.2.Test2.accdb.zip 2
FoMaNsHeE قام بنشر فبراير 21, 2017 الكاتب قام بنشر فبراير 21, 2017 جزاكم الله كل خير على ما قدمتموه لي من المساعدة في هذا الموضوع هذا بالظبط الذي اريده وشكرا جزيلا لك اخي جعفر على المساعدة
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.