بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
9911 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
شاشة انتظار تعتمد على الوقت الذي يستغرقه فتح التقرير
jjafferr replied to كوماندير's topic in قسم الأكسيس Access
السلام عليكم مع الاعتذار لك ، ولكن لا ارى اي علاقة بين النموذج الذي يتم فتحه لمدة 1000 ملي ثانية = ثانية واحدة ، وبين فتح التقرير !! جعفر -
السلام عليكم اضطررت عمل جدول مؤقت للموضوع ، وهناك طريقتين وضعتهم لك: 1. جدول مؤقت tbl_Balance في قاعدة البيانات ، بحيث يتم حذف البيانات القديمة منه ، ثم ادخال البيانات الجديدة اليه ، ونستخدم الاستعلام qry_Balance للتقرير ، وانا شخصيا لا احبذ وجود جدول مؤقت داخل قاعدة البيانات ، لأنه يجعل حجم البرنامج يكبر ، الى ان بين كل فترة واخرى تضغط على زر الاصلاح Compact and Repair ، 2. جدول مؤقت خارج البرنامج (في مجلد Temp الوندوز) ، وكل ماله علاقة بهذه الطريقة يحمل رقم2 ، والتقرير2 يأخذ مصدره من هذا الجدول المؤقت ، ولا يستخدم الاستعلام qry_Balance. جعفر 597.2.Test2.accdb.zip
-
وعليكم السلام اولا ، ارفق لك تغيير جدا طفيف ، وهو لتوقيف الخطأ اذا لم يكن هناك سجلات ، ثانيا ، المعادلة التي تفضلت بها غير عن المعادلة التي ارفقتها انا ، فما ادري اذا انت عملت تغيير آخر كذلك ّّ والافضل انك ترفق برنامجك الذي اعطاك الخطأ. 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
-
شكرا على تنبيهي على هذا الخطأ هناك تغييرين في البرنامج ، 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
-
وهذه روابط تساعد في الموضوع: جعفر
-
السلام عليكم الوقت كان متأخر ، وحطيت لك كلمتين بدون شرح ، فأعتذر منك ضع الكود على حدث النقر على الزر: نفترض اسماء الحقول رقم المورد: No = 0292 من رقم: From = 02920501 الى رقم: To = 02920509 مقارنة الاربعة ارقام الاولى من اليسار left(me.From,4) = 0292 left(me.To,4) = 0292 if left(me.From,4) <> left(me.To,4) or _ left(me.From,4) <> me.No or _ left(me.To,4) <> me.No then msgbox "Numbers Don't match" end if جعفر
-
وعليكم السلام يمكن شئ من هذا يصلح: if left(me.From,4) <> left(me.To,4) or _ left(me.From,4) <> me.No or _ left(me.To,4) <> me.No then msgbox "Numbers Don't match" end if جعفر
-
مثالك الاخير هو الذي شرح لنا المطلوب 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
-
اعطني مثال باسماء الحقول وبالارقام من برنامجك ، واخبرني كيف يجب ان يظهر الاستعلام جعفر
-
للأسف الشديد ، المسميات الحقول التي ذكرتها لا تتطابق مع الحقول في برنامجك ، وعندك اكثر من "رصيد الصندوق" واحد جعفر
-
تفضل: 1. 2. وقم بإضافة بقية الحقول . جعفر هذا موضوع آخر !! يعني تستطيع عمل الاستعلام ، ولكن لا توجد سجلات فيه !! طبعا لن تحصل على سجلات ، لأنه لا يوجد رقم متحد بين الجداول الثلاث!! جرب التالي: في الجدول Deposit ، غيّر القيمة الاولى من 73 الى 68 ، ثم جرب الاستعلام ، فسترى سجلا واحدا . جعفر
-
اعمله بالطريقة اليدوية كما شرحت لك
-
وعليكم السلام بالنسبة الى (1) ، فاعمب استعلام ، واسحب الجداول الثلاث فيه ، واختر حقول الجداول ، ويصير عندك الاستعلام ، شو المشكلة اللي عندك؟ جعفر
-
هدية أبو غفران : برنامج إنشاء شريط القوائم .
jjafferr replied to صالح حمادي's topic in قسم الأكسيس Access
هي الترقية: خبير + شوية مسؤوليات = مشرف -
معالج تركيب نظام التثبيت 2007-2016 .... هدية لاوفيسنا
jjafferr replied to Elsayed Bn Gemy's topic in قسم الأكسيس Access
تم اغلاق الموضوع ، وحذف المرفقات حسب طلب صاحب الموضوع. جعفر -
جرب مرفق المشاركة الثانية
-
وعليكم السلام افضل طريقة انك تضيف الى النموذج الرئيسي حقل "رقم امر الصرف" ، ثم تربط النموذج الرئيسي بالنموذج الفرعي بهذا الحقل ايضا يعني انت عندك الربط بين النموذجين بالحقلين مسلسل;رقم الروشتة ، فيصبحون مسلسل;رقم الروشتة;رقم امر الصرف جعفر
-
هدية أبو غفران : برنامج إنشاء شريط القوائم .
jjafferr replied to صالح حمادي's topic in قسم الأكسيس Access
نعم اشتغل عندي وانا بصدد النظر في تفاصيله جعفر -
خطأ في القيمة الجديدة بالتسلسل التلقائي
jjafferr replied to هديل الحارثي's topic in قسم الأكسيس Access
وعليكم السلام لا يوجد مشكلة ، ولكن هذا سيحل مشكلتك مؤقتا ، وستظهر المشكلة لاحقا مرة ثانية ظاهرا مشكلتك في العلاقات جعفر -
هدية أبو غفران : برنامج إنشاء شريط القوائم .
jjafferr replied to صالح حمادي's topic in قسم الأكسيس Access
وعليكم السلام غفران ماشاءالله تبارك الرحمن ، هدية جميلة شكرا لك جعفر -
معالج تركيب نظام التثبيت 2007-2016 .... هدية لاوفيسنا
jjafferr replied to Elsayed Bn Gemy's topic in قسم الأكسيس Access
السلام عليكم اخي السيد تختفي ، وتأتينا بشئ غير متوقع ، وبطريقة استعمال سهلة جعفر -
بالعكس ، انا دائما اقول: جعفر
-
هدية: ارسل / استرجع بيانات من مواقع الانترنت
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
السلام عليكم تم عمل موضوع آخر ، وبه الشرح و البرنامج جعفر -
السلام عليكم ورحمة الله وبركاته مسقط التصفح : هو برنامج لقراءة صفحة الانترنت ، واستخراج اسماء الحقول ، لإرسال البيانات اليها من برنامج الاكسس ، او استيراد البيانات منها الى الاكسس وبما ان برمجة صفحات الانترنت تختلف من مبرمج الى آخر ، فبرنامجنا لن يشتغل على جميع الصفحات / المواقع ، وبالتجربة فقط نستطيع معرفة الصفحات التي يشتغل عليها البرنامج طريقة العمل: النموذج frm_browse يحتوي على (1) كائن Microsoft Web Browser (والذي لا يحتوي على جميع مكونات البرنامج الاصل Internet Explorer ، ولكنه يفي بالغرض) ، ندخل اسم الموقع في (2) حقل التحرير والسرد url_Address ، ثم نضغط على (3) الزر Go ، والذي سيفتح الموقع في النموذج ، وسيتم حفظ عنوان الصفحة ، واعطائة رقم مسلسل في الجدول tbl_url_address ، الزر (4) "احفظ csv" سيقرأ كائنات الموقع ، ويحفظها في ملف بصيغة csv (اللي ينفتح بالاكسل) ، ثم يفتح الملف ، وفيه 3 طرق لإرسال معلومات الى اي حقل تريد (يعني يعطيك الكود جاهز لكل حقل) ، والافضل استعمال الكود الذي في العمود "Usage2" ، حيث ليست جميع الحقول لها اسماء (للأسف في بعض المواقع) ، الزر (5) "احفظ في الجدول" ، حيث سيحفظ كائنات الموقع في جدول tbl_Send_Get في البرنامج ، والاصعب كان استخراج بيانات حقول التحرير والسرد من الصفحة ، والتي يتم حفظها في الجدول tbl_Options ، ولما يستخلص البرنامج جميع حقول الصفحة ، سيفتح النموذج frm_Send_Get ، الزر (6) "تجربة ارسال ، استيراد بيانات لهذا الموقع" يفتح نفس النموذج frm_Send_Get وبه كائنات الموقع واسماء الحقول (حسب اسمها في البرنامج وليس حسب ظهورها على الموقع ، فالموضوعين غير مرتبطين للأسف في برمجة الموقع) ، هنا نرى الحقول التي استطاع البرنامج التعامل معها ، (8) رقمها المتسلسل في الصفحة (والتي سنتعامل معها برمجيا لاحقا) ، (9) نوع الحقل والذي قد يختلف من صفحة الى اخرى ، (10) اسم الحقل في الصفحة (والتي سنتعامل معها برمجيا لاحقا) ، (يجب ادخال اي اسم في الحقول الفارغة) واذا كان الحقل عبارة عن مربع تحرير وسرد ، وللحصول على قيمه ، انقر على الاسم مرتين ، فينبثق النموذج frm_Options بالاختيارات (تابع الشرح لاحقا) ، هنا نستطيع تجربة اذا كان بإمكاننا ارسال/استرجاع بيانات الى/من الموقع ، فتختار اي حقل تريد التجربة عليه ، وتكتب المعلومة التي تريد ارسالها في الحقل (11) Send_Data وبالنقر المزدوج على المعلومة ، وسترى انه تم ادخالها في الحقل في صفحة الموقع الموقع ، ويمكن التأكد كذلك من امكانية قراءة معلومة الحقل بالنقر المزدوج على الحقل (14) Get_Data ، والمهم في هذه التجارب هو معرفة صيغة قبول الحقل للمعلومة ، بالنسبة لحقول التحرير والسرد وكما اشرت سابقا ، فالموضع يختلف قليلا ، لأنه مثل الاكسس ، فالمعلومة التي تراها في الصفحة في اختيار المعلومة من هذا الحقل ، ليس معناه انها نفس القيمة التي تُحفظ في الجدول ، لذلك يجب عليك النقر المزدوج على الحقل ref_Name ، فيعطيك قائمة الاختيار من النموذج frm_Options ، وبالنقر المزدوج على الحقل Opt_Value ستنتقل المعلومة الى الحقل في Send_Data النموذج frm_Send_Get ، والتي يمكن بالنقر المزدوج عليها ان ترسل المعلومة الى الحقل في الموقع (وهنا قد لا ترى التغير على الحقل في الموقع ، ولكن عندما تنقر عليه لتختار ، ستجد ان الاختيار قد تم حسب رغبتك) ، (12) يجب اختيار اي من الحقول التي تريد ان تستعملها من الموقع ، (13) وهنا تختار تسلسل الحقول التي تريد ارسال البيانات الى صفحة الموقع ، يعني تختار زر الارسال بعد اختيارك لبقية الحقول ، والحقول التي لا يهمك ترتيبها ، فدعها فارغة ، (12) و (13) هما اساس الخطوة التالية ، الى هنا وينتهي العمل مع صفحة الموقع ، والتي نختصرها: ادخل عنوان الصفحة (2) ، اضغط على (5) "احفظ في الجدول" ، جرب اذا الحقول تعمل ، ثم (12) تختار الحقول التي تريد التعامل معها ، و (13) ترتيبها ، الزر (7) "عمل نموذج ارسال ، استراد بيانات لهذا الموقع" ، وسيفتح النموذج frm_Make_Form للصفحة التي انت عليها الآن ، من هنا سيقوم البرنامج بعمل: عمل قاعدة بيانات جديدة (برنامج اكسس) خارجية متكاملة بالاسم والمسار الذي اخترته في (15) ، بالجداول والنماذج وازرار النماذج والاحداث التي على هذه الازرار ، لصفحة الموقع التي اخترتها ، للإرسال والاستيراد ، واذا هذا البرنامج تم عمله سابقا (يعني عندك برنامجك الخاص واسمه ومساره في (15)) ، فسيقوم البرنامج بإضافة الجداول والنماذج وازرار النماذج والاحداث التي على هذه الازرار ، لصفحة الموقع التي اخترتها ، للإرسال والاستيراد ، نختار اين نريد ان نعمل الجداول والنماذج وازرار النماذج والاحداث التي على هذه الازرار ، لصفحة الموقع التي اخترتها ، للإرسال والاستيراد ، الزر (16) يقوم بكل هذا العمل ، قاعدة البيانات / البرنامج الخارجي: افتح النموذج frm_web_Sites ، فيعطيك اسماء الصفحات التي قمت بعملها في (16) ، وهذا نموذج التعامل مع صفحة الموقع ، وجميع الحقول التي اخترتها في (12) موجودة هنا ، وطريقة استخدامه: قم بتعبئة البيانات التي تريد ارسالها للموقع ، واذا كان عندك زر ارسال فيجب عمل صح عليه لإستعماله ، قم بفتح المتصفح بالضغط على الزر "Open Browser" ، والذي سيفتح المتصفح Internet Explorer خارجي ، ولا علاقة لك به ، فالكود سيتعامل معه اضغط على الزر "Send Data" ، وستكون البيانات قد تم تصديرها من نموذجك ودخلت في صفحة الموقع ، او اضغط على الزر "Get Data" ، وستكون البيانات قد تم استيرادها من صفحة الموقع الى نموذجك ، وهذا جزء من الكود الموجود في النموذج ، وسترى ان تسلسل ترتيب ارسال البيانات هو حسب الاختيار في (13) ، وغالبا (99% من الوقت) لن تحتاج الى عمل تغيير في الكود: . الزر (16) فيه تُحف فنية ، فلا تتردد من الدخول في الكود والغوص فيه والخروج بلآلئ فريدة جعفر Muscat_Browsing.zip