- 
                Posts10000
- 
                تاريخ الانضمام
- 
                تاريخ اخر زياره
- 
                Days Won406
jjafferr last won the day on يونيو 10
jjafferr had the most liked content!
السمعه بالموقع
9427 Excellentعن العضو jjafferr

البيانات الشخصية
- 
											
												Gender (Ar)
												ذكر
- 
											
												Job Title
												مهندس مدني مستقيل
- 
											
												البلد
												سلطنة عُمان
اخر الزوار
		
			26164 زياره للملف الشخصي
		
		
			
		
						- 
	  📌📒 الملاحظات اللاصقة | سلسلة هدايا الأكسس | 07 | 🎁jjafferr replied to Moosak's topic in قسم الأكسيس Access وعليكم السلام ورحمة الله وبركاته اخوي موسى، دائما افكارك عملية وفيها تحدي، شكرا لك 🙂 وهي نفس ملاحظتي 🙂 في رأيي الشخصي ، هذه الملصقات يجب ان تكون جزء من برنامج تذكير (او برنامج متابعة المهام) ، وفي برنامج التذكير يكون عندنا يوم/وقت (يمكن التوسع في الاعدادات) لظهور هذه الملاحظات للمستخدم الذي عمل الملاحظة ، ويستطيع المسؤول عمل هذه الملاحظات ايضا لتظهر لمستخدم معين او جميع المستخدمين. فكرت استعمال هذه الملاحظات عن طريق الوندوز بواسطة برنامج Sticky Notes عن طريق CMD او PowerShell ، ولكن الوندوز 7 يختلف عن الوندوز 10 ، وتحتاج ان يسمح النظام لفتح هذه الملفات!! الفكرة الان هي: 1. بث نموذج الملاحظات (مثلا في زاوية البرنامج اعلى اليسار) ، بحيث يمكن استعمال نفس النموذج الفرعي ، ويمكن ان تكون هناك ملاحظة ، ثم تتبعها ملاحظة اخرى تحتها ، وهكذا ، 2. او الاستفادة من نموذج واحد لعدة ملاحظات (عرض نفس النموذج عدة مرات ، بحيث يستطيع المستخدم تحريك كل ملاحظة بطريقة مستقلة) ، هكذا : 3. او يمكن استعمال الرسالة التي تخرج فوق الساعة Ballon Tip : . كنت اتمنى اقدر اعمل هذه الملاحظات في برنامج ، ولكن للاسف لا يسمح لي وقتي الان 😞 جعفر
- 
	  تهنئة اخونا محب العقيدة لانضمامه الى مجموعة الخبراءjjafferr replied to ابوخليل's topic in قسم الأكسيس Access وعليكم السلام هنيئا لنا اخوي محب العقيدة هذه الترقية 🙂 وشكرا جزيلا اخوي ابوخليل على تواصلك المستمر في في اختيار الخبراء
- 
	محمد محمود حسين محمد started following jjafferr
- 
	اه حضرتك تقصد كود الوحدة النمطية العامة نعم، لا يمكنك عمل:
- 
	انا عندي 3 خطوط (دفاعية) لفتح نموذج او تقرير: 1. الاستعلام ، ويكون مصدر البيانات ، ويكون فيه الفرز (للنموذج فقط ، بينما التقرير لا يحترم فرز الاستعلام وانما يجب عمله في التقرير مباشرة) والتصفية ، 2. وقد احتاج الى تصفية اخرى عند فتح النموذج/التقرير ، او اذا عملت على استعلام/نموذج/تقرير ، ولا احبذ تغيير الاستعلام (لأنه هناك نماذج/تقارير اخرى تعتمد عليه) ، هنا اعتمد على الفرز/التصفية عند فتح النموذج/التقرير ، 3. وفي حالات خاصة (جدا خاصة وجدا قليلة) ، اعتمد على وضع شروط عند فتح النموذج/التقرير في كود فتح النموذج/التقرير. فعليه : وفي جميع الحالات اعلاه ، عمل اخوي ابو جودي (لا يعمل في صيغة mde او accde ، لأنه لا يمكن فتح النموذج/التقرير في وضع التصميم) واخوي منتصر يعملان ، وفي بعض الاحيان كنت احتاج الى معرفة اذا هناك سجلات قبل طباعة تقرير (كان يتأخر في الطباعة) ، وكنت معتمد على الاستعلام كمصدر بيانات ، فكنت استعمل الكود التالي (والذي في اعتقادي هو اسرع من فتح التقرير وانتظار حصول الرسالة منه ، ولكن اذا كانت هناك سجلات ، فالتأخير يكون مرتين ، مرة للتأكد من عدد السجلات ، والمرة الاخرى في طباعة السجلات) : if DCount("*","Query Name")=0 then msgbox "لا توجد سجلات للطباعة" else docmd.openreport "Report Name" end if
- 
	وانا كذلك ، ولكن تبقى ايقونة الطباعة بقرب ساعة الكمبيوتر لثوان ، ثم تختفي. يقوم بحذف لملف السابق (إن وُجد) ، ولا يعمل ملف جديد بصفحة فارغة (انا كذلك اعطاني ايحاء ان الصفحة الفارغة تم طباعتها ، ولكني اكمل الخطوات ولم اجد الملف اصلا).
- 
	لا لا لا ، ابدا مافي تراجع 🙂 لذا في موضوع أخر لأخوي ابوخليل ، وانت كنت مشارك فيه ، انا كتبت: . قلت: . وفي مشاركتي اعلاه ، اختصرت النصيحة في الجملة التالية (والتي تشمل بعدم استخدام دوال المجال في الاستعلام وبقية الامور التي كتبتها في مشاركاتي في المنتدى 🙂 ) : . اذا تلاحظ ، فمشاركاتي وتفاعلي مع مواضيع البرمجة والتعامل مع البيانات والاتمتة ، جل خبرتي في التعامل مع مئات الآلاف من السجلات ، في بيئة يعمل فيها مجموعة بين 10-25 مستخدم لحظيا ، وتحت ضغط شديد لإتمام العمل في اقل وقت ممكن ، والحمدلله وبسبب تنوع البرامج المستخدمة والاجهزة ، ففي كل بيئة عمل ابدأ العمل من الصفر كالتالي: بعد معرفتي للمطلوب عمله ، ابحث في الانترنت عن اعمال مشابهة (وفي الفترة الاخيرة اسأل الذكاء الاصطناعي واللي فائدته لي جدا قليلة ، ورجاء لا احد يكلمني اني ما اعرف طريقة طلب السؤال ، لأني عندي اشتراك في احدهم كذلك للحصول على التجربة الكاملة ، ومن كثرة اسئلتي له صرت استطيع ان اميز الاكواد الموجودة في المنتدى ، لمن ) ، واقارنها بفكرتي ، ثم ابدأ بتجربة بعض الافكار ، وآخذ الافضل للعمل الذي في يدي ، ومو لازم العمل كاملا يكون في الاكسس. نعم بعض النصائح السابقة والتي كانت تعتمد على سرعة الحاسبات القديمة ، تم استبدالها بالتجربة الجديدة 🙂
- 
	. هناك عدة طرق للتعامل مع هذا التأخير: أ. يجب اعادة النظر في الاستعلام ، ومن متابعتي لردودك ، فأنت عندك هوس/ولع غير طبيعي في الكود ، بينما الاستعلام هو العمود الفقري لقواعد البيانات ، وهو الاسرع. فيجب النظر في تحويل الكود الى استعلامات ، وقد يكون عليك استبدال الكود الواحد الى استعلام واحد اثنين عشرة ... لا يهم ، المهم هو سرعة البرنامج ، ب. او تصدير نتائج هذا الاستعلام الى جدول ، ويكون الجدول هو مصدر بيانات النموذج/التقرير ، فالتأخير سيكون مرة واحدة فقط (عند تصدير الاستعلام ومعالجته الحسابات المعقدة ، الى الجدول) : بما ان الاكسس لا يستطيع عمل اكثر من شيء واحد في نفس الوقت ، اي انه ينتظر حتى تكتمل عمليه معينة ، حتى يقوم بعملية اخرى. مثلا ، اذا اردت عند فتح البرنامج ان يقوم اكسس بتصدير بيانات اسنعلامك البطئ الى جدول ، فعند نقرك زر التصدير ، فلا تستطيع عمل شيء آخر في الاكسس الى ان ينتهي العمل من التصدير ، لذا وبعد النقر على زر التصدير ، اظهر رسالة للمستخدم بترك البرنامج يعمل ، ولما ينتهي البرنامج من التصدير ، تستطيع استخدامه (اعطيه فرصة يشرب قهوة الصباح 🙂 ). الطريقة الاخرى ، والتي لن تجد احد يتكلم عنها (لأنها غير مألوفة) ، بأن تشغل برنامج اكسس آخر (رقم2) والذي فيه الاستعلام البطئ ، فيشغل الاستعلام بأخذ بياناته من برنامجك ، وتصدير البيانات الى جدول ، وفي هذا الوقت وبينما يعمل رقم2 ، يستطيع مستخدمين رقم1 من العمل بطريقة عادية ، ثم يستعملون بيانات الجدول. بمعنى آخر ، اجعل البرامج تشتغل بطريقة متوازية. ولكني اعتقد ان حل التأخير في النقطة أ. وبعد اتباع الطريقة الصحيحة في عمل الاستعلام ، معظم تأخير الاستعلامات هي في الفرز والتصفية ، وحتى اذا عملت فهرسة لحقل ثم في الاستعلام استعملت بيانات الحقل بطريقة اخرى ، فانت في الواقع لا تستفيد من فهرست الحقل ، مثلا عندك حقل تاريخ مفهرس myDate ، ثم قمت في الاستعلام بطلب السنة: Y: Year([myDate]) وعملت له فرز او تصفية لسنة معينة (مثلا 2010) ، فانت في الواقع لا تستفيد من فهرست الحقل ، لذا فالحل هو استعمالك التاريخ كما هو في الحقل ثم عمل التصفية بنفس طريقته ، مثل: myDate>31-12-2009 and myDate<1-1-2011 بكلام آخر ، اعرض الحقول في الاستعلام كما هي في الجدول ، فترى سرعة عرض الاستعلام لبياناته ، واحفظ هذا الاستعلام للرجوع اليه كمصدر لمقارنة سرعتة بالاستعلامات الاخرى ، ثم وفي نسخة اخرى منه ، ابدأ بإضافة حقل واحد (سواء حقل معادلة ، او فرز او تصفية) وابدأ بالامور السهلة ، فاذا لاحظت بطئ في الاستعلام ، فيجب معالجتها ثم الانتقال الى الحقل الآخر ، وهكذا. وكلمة اخيرة ، فالاكسس عنده امكانيات معينة ونقاط ضعف ، ولا يمكنك دائما التغلب على نقاط الضعف.
- 
	الاستاذة @منتصر الانسي و @hanan_ms تم عمل موضوع خاص لمشاركاتكم
- 
	بالعكس ، فانت تقوم بجعل البرنامج بطئ بدون سبب !! بما ان الاكسس يقوم بما عليه وبكل اريحية ، فلماذا تغير الوضع ؟ نعم تستطيع عمل هذا بالكود ، بتحميل بيانات الاستعلام التي تم معالجتها دفعة واحدة ، ولكنك ستدفع ثمن التأخير : dim rst as dao.recordset set rst=currentdb.openrecordset("Select * From Query1") rst.movelast rst.movefirst او في النموذج المستمر ، عند تحميل النموذج: docmd.gotorecord,,aclast docmd.gotorecord,,acfirst
- 
	السلام عليكم انا فخور أن مشاركاتي الطويلة يتم قراءتها ويُستفاد منها 🙂 انا دائما انظر لعملي ، انه بعد 3 اشهر او اكثر ، يرجع لي المستخدم بطلب تعديل ، وانا اكون نسيت تفاصيل برنامجي. لهذا السبب ، فلا آخذ بطريق اخوي موسى ولا ابو جودي (معلش ، محدش يزعل ) ، وانما اعمل دالة خارجية واعمل بها عدد الاسطر اللي احب من الكود ، واكتب تعليق واضح على كل سطر ، لأني لما اريد اعمل تعديل ، بكل بساطة اعرف المكان اللي اريد اعدل عليه ، ولحظات واكمل التعديل ، اما لتعديل اي شيء في معادلات اخوي ابو جودي وموسى ، فأنا مضطر احك راسي الى ان افهم شو اللي كنت عامله سابقا ، ثم افكر في مكان التعديل. ولما تستخدم دالة خارجية ، استخدم ElseIf او Case قدر الامكان ، ومع انه قد يكون عندك 100 سطر كود (مثلا) ، إلا انك في الواقع تستعمل بضع اسطر فقط ، وتكون الدالة سريعة. الدليل خير برهان 🙂 اخوي موسى فهم كلامي بالطريقة الصحيحة 🙂 ارفق مثال بسيط لأثبت قولي: عندنا جدولين . واستعلام فيه الامر Dlookup ، وانادي الدالة Add_One . الدالة Add_One Function Add_One(ID As Long, N As Long) As Double Add_One = N + 1.5 If ID = 55 Then Add_One = 55 End If End Function . الان نريد ان نثبت ان الاستعلام . سأقوم بتوقيف الاستعلام عندما يعرض على الشاشة السجل Auto_ID=55 ، وهذا معناه انه اذا ظهر السجل على الشاشة ، فسيقوم الاستعلام في الاكسس بحساب قيمته ، اما السجل الذي لم يظهر على الشاشة ، فالاكسس لا يقوم بحساب قيمته . وهنا قمت بتشغيل الاستعلام ، واظهرت 27 سجل فقط ، ثم 27 سجل آخر 27+27=54 ، ثم طلبت عرض السجل Auto_ID=55 ، فلم يعطني الاكسس الجواب ، لأنه كان بحاجة الى تمرير البيانات الى الدالة للحصول على نتيجة الدالة ، وهنا توقف الكود. . 1637.Query_Records.accdb
- 
	  مصطلحين جديدين MCP server And workflow automaton platformjjafferr replied to محب العقيدة's topic in قسم الأكسيس Access وعليكم السلام متابع 🖐️
 
         
	 
	 
	 
					
						 
                     
                     
                     
					
						 
                     
                     
                     
                     
                    