أبو عبدالله الحلوانى قام بنشر أكتوبر 14, 2015 قام بنشر أكتوبر 14, 2015 السلام عليكم ورحمة الله وبركاته ما السبيل لمعرفة كل شىء عن الوحدات النمطية - اريد أن انشئها بنفسى دون الحاجة لعمليات النسخ واللصق.. وماذا عن المكتبات التى تأتى أسماءها بعد الوسيطة lib كــ shell32.dll وغيرها وهل هى محصورة بعدد معين وكيف لى بمعرفة استخداماتها وما هى مكتبات API .. وما هو وجه الخلاف بين الوحدة النمطية والوحة النمطية للفئة. آسف على الاطالة وأشكر الجميع على حسن التعاون وجزاكم الله خيرا
أبو عبدالله الحلوانى قام بنشر أكتوبر 17, 2015 الكاتب قام بنشر أكتوبر 17, 2015 للرفع هو الصعايدة محدش بيرد عليهم
رمهان قام بنشر أكتوبر 17, 2015 قام بنشر أكتوبر 17, 2015 السلام عليكم ورحمة الله وبركاته ما السبيل لمعرفة كل شىء عن الوحدات النمطية - اريد أن انشئها بنفسى دون الحاجة لعمليات النسخ واللصق.. وعليكم السلام اخينا ابو عبدالله كل شي عن الوحدة النمطية : هي مكان لكتابة اكواد لغة access basic ! عليك بتعلم البرمجة ؟ تعريف المتغيرات - اسنداد القيم - جمل التكرار - جمل الشرط - ... الخ
رمهان قام بنشر أكتوبر 17, 2015 قام بنشر أكتوبر 17, 2015 وماذا عن المكتبات التى تأتى أسماءها بعد الوسيطة lib كــ shell32.dll وغيرها وهل هى محصورة بعدد معين وكيف لى بمعرفة استخداماتها وما هى مكتبات API .. api اختصار application programming interface بالعربي برمجة واجهة التطبيقات وبالبلدي: هي دوال تحاكي الويندوز ! مثلا هناك اوامر يحتاجها المبرمج وهذا الامر اصلا واحد من مكتبات الويندوز على شكل دالة ! وكل مكتبة في الويندوز بها دوالها مغلفة ! فاروح انادي الدالة هذه بشرط ذكر اسم مكتبتها ! بمعنى هذه الدالة يستخدمها الويندوز وانت كمان تستخدمها خاصة اذا بتحاكي شي خارج برنامجك والذي لن يستطيع برنامجك يفهم اللغة للتخاطب ! فمثلا اغلاق ويندوز ! اروح انادي الدالة الخاصة بهذا مع ذكر مكتبة وجودها بها ! فانت ذهبت تخاطب برامج اخرى بهذه الدالة لقصور برنامجك في التخاطب ! وقال لك الاكسس اذا عايز تنادي حاجة زي كدا لابد تحطها لي في وحدة نمطية ! بمعنى لو عايز اضيف سجل في جدول مش معقوله انادي دالة api لانهم الويندوز مش حيفهم انت عايز ايه ! فقال لك ياعمي انا شغلت لك الاكسس واموركم الداخلية خلصوها مع بعض ! والاكسس حيزعل ويقول انت رايح للويندوز في امر زي كدا ! انا لدي دوالي وكائناتي اللي تعمل الحاجة دي ! اما لو فيه حاجة ما اقدرش عليها روح لمكتبات الويندوز وخذ اللي انت عايزه وهاتها لي في وحدة نمطية عامة ! ممكن يخطر في بالك عايز افتح الاكسل من الاكسس ! لو فكرت قليلا اكيد هناك دالة api بتعمل كذا لانه الويندوز بيعملها وهو فتح وتشغيل الاكسل ! بس هنا الاكسس برضه بيعمل الحاجة بس عايز منك ان تضيف مرجع في المراجع او تبحث وتتعلم ويمكن فيه دالة في الاكسس بتعمل كذا ! باختصار api دوال كثيرة جدا بحجم مكتبات الويندوز عليك معرفة اسمها ومكتبتها ونوع متغيراتها الممررة لها ومكان وجودها لكي تستطيع استخدامها ! لاحظ انه لو شغلت الاكسس على غير ويندوز مش حيفهم عليها ! بل لاحظ كيف انه عند تغير اصدارات الويندوز عليك مراجعة شكل الدالة الجديد ! بمعنى ابتعد عنها الا للضرورة ! 3
رمهان قام بنشر أكتوبر 17, 2015 قام بنشر أكتوبر 17, 2015 وما هو وجه الخلاف بين الوحدة النمطية والوحة النمطية للفئة. هو فيه اختلاف ولكن يتطلب الخلفية في فهم برمجة الكائنات oop اختصار object oriented programming علشان نتكلم علميا ويمكن اكون مقصر لعدم التخصصية البحتة خاصة وان هذا الموضوع شبح طلاب الحاسب الالي ! ولكن برضه بالبلدي: الوحدة النمطية العامة هي مكان لدوال والمتغيرات العامة لكل البرنامج ! ماتضعه هنا يكون معروف على مستوى البرنامج ! ممكن متغير ياخذ قيمته من اي نموذج ! او طبعا عرفنا انها مكان لمناداة ال api ! وفي نفس الوقت هي المكان التي ابرمج بلغة ال access basic ! اما وحدة الفئة : هي مكان انشئ من خلاله الكائنات ! نحن نعرف ان لكل كائن خصائص وطرق او اوامر ! هنا نستطيع ان اعرف كائنات جديدة لها خصائصها وطرقها ! لاحظ انه لكل نموذج وتقرير عند انشائه له وحدة فئة خاصة وهي صفحة كود الاحداث ! وهذه تكون وارثة جميع الخصائص والطرق من النموذج او التقرير ! هذا والحديث يطول ويحتاج وقت او تسلسل في المواضيع علشان ينفهم ! ولكن اتمنى ان افدتك ولو بالمفاتيح ! تحياتي 2
أبو عبدالله الحلوانى قام بنشر أكتوبر 17, 2015 الكاتب قام بنشر أكتوبر 17, 2015 جزاك الله خيرا أستاذ رمهان أحسن الله اليك كل شي عن الوحدة النمطية : هي مكان لكتابة اكواد لغة access basic ! عليك بتعلم البرمجة ؟ تعريف المتغيرات - اسنداد القيم - جمل التكرار - جمل الشرط - ... الخ الخبرة العملية ببرمجة الفجول موجود والحمد لله وان كانت بسيطة على قدر علمى كنت بحاجة لمعرفة أساسيات بناء الوحدة النمطية كلماذا أبدأها بــــ private ولماذا أبدأها بــــ Public وكذلك متى أستخدم bYval أو Byref عند تعريف المتغيرات وهكذا... وان دللتنى لروابط مختصة بهذا كنت لك شاكرا أولا - api اختصار application programming interface بالعربي برمجة واجهة التطبيقات وبالبلدي: قد وجدت ببعض الوحدات النمطية ببعض البرامج "shell32.dll" و "user32" و "comdlg32.dll" فهل هذه المكتبات تشمهلها api ان كان الأمر كذلك باختصار api دوال كثيرة جدا بحجم مكتبات الويندوز عليك معرفة اسمها ومكتبتها ونوع متغيراتها الممررة لها ومكان وجودها لكي تستطيع استخدامها ! فهل هناك رابط اجد فيه هذه المكتبات واستخداماتها وشرحا مختصرا عنها؟
رمهان قام بنشر أكتوبر 18, 2015 قام بنشر أكتوبر 18, 2015 اهلا بك ابو عبدالله عايزك تفهم ان موضوعك موضوع مفتوح نوعا ما ! او للاجابة يحتاج وقت وشرح ولابد من التطرق للاساسيات علشان نكمل ! وبرضه يا اشرح شي بشكل علمي لانه سيكون مرجع لكل من يمر هنا ! لذلك مثل هذه الاشياء خذها من مصادرها الصحيحة والموثوقة افضل مثل : كتب - موقع ميكروسوفت ! انصحك ان تاخذ كتاب في الاساسيات وبتسلسل المواضيع بدون القفز من فصل لاخر ! الشي الذي ممكن اضيفه هنا هو : عايزك تتخيل ان هذا البريمج (الاكسس) به قاعدة بيانات مصغرة - اداة تصميم وتطوير - بيئة لكتابة اكواد ! كلها هذا ونحن نعرف ان كل منها موجود كمنتج مستقل من شركات اخرى ! بينما هذه كلها موجودة في ملف واحد ! وملف ايه ؟ ملف بيانات ! بل كل وحدة عبارة عن كائن داخل هذا الملف ! بمعنى انتي الوحدة النمطية اللي نكتب فيك الاكواد ماخذه شكل مصغر من عمل ادوات التطوير المستقلة مثل الترجمة وتتبع الاخطاء وغيرها وتحويل الكود الى لغة الكمبيوتر ! وهية مع هذا كله مازالت كائن في ملف الاكسس ! فمش عارف هل ننظر للموضوع استخفاف بعقولنا ام انه ابداع في هذا المنتج ؟!!!!! وهنا انا حجيبك على استفساراتك ولكن اتمنى ان لاتكون حلقة مفتوحة باستفسار عن جواب لاستفسار سابق وهكذا ! وصدقني ابداية مع كتاب وبتسلسل منطقي افضل بكثير من المواضيع التي تكتب بالانترنت وذلك لاسباب عدة منها انت لاتعرف مستوى كاتب الموضوع او صحة مايكتب عكس الموجود بالكتب والمعتمدة ! ** كلمة private تحدد مدى حياة المتغيرscope ! فبها يكون حي فقط في المكان الذي ولد به اي عرف به ! فمثلا ولد في وحدة نمطية عامة فانه يعرف وحي في تلك الوحدة فقط ! ولدة في وحدة فئة نموذج فانه حي ويعرف هنا فقط ! بمعنى لو ناديته منكا اخر ستجده ميت ولا يستجيب ! عكس public ** byval و byref تستخدم لتحديد نوع او اسلوب تمرير المتغيرات للاجراءت والدوال ! بالعربي : بالقيمة او المرجع ! فاذا مررت قيمة متغير من نوع قيمة فانه للرغبة او عدم الاستطاعة في تغيير قيمة المتغير الاساسية عكس بالمرجع التي يمكن تغيير قيمة المتغير من خلال الاجراء او الدالة ! كما ان الموضوع يطول حول مسالة تعريف المتغيرات نفسها بانها من نوع قيمة ام مرجع ! فهل ممكن امرر قيمة متغير معرف انه مرجع لدالة تستقبل بالقيمة ؟ !! ** رابط لل api : https://msdn.microsoft.com/en-us/library/windows/desktop/ff818516(v=vs.85).aspx http://allapi.mentalis.org/apilist/apilist.php طبعا تاكد من توافق الدالة مع اصدار الويندوز! هذا متمنيا ان حصل لو جزء من ما تريد ! كما انبه على ان الشرح لا بد ان ياتي من استاذ فهو علم بحد ذاته فليس المقصود بالاستاذ بقدر مايملك من معلومة ولكن بقدر رضا تلاميذه في ايصال المعلومة ! تحياتي 3
jjafferr قام بنشر نوفمبر 12, 2015 قام بنشر نوفمبر 12, 2015 (معدل) شكرا أخي الاستاذ رمهان على هذا الشرح والان الى الجانب العملي لا تستطيع ان تنادي هذه الوحدات بالطرق التقليدية ، وكل لغة (مثل VB, VBA, C++, ...) لها طريقتها الخاصة في مناداة هذه الوحدات ، وبالنسبة الى اكسس ، فالرابط التالي يعطينا امثلة في كيفية استخدامها: http://access.mvps.org/access/index.html وملك الوحدات النمطية وبالذات للرسومات في الاكسس: http://lebans.com/ جعفر تم تعديل نوفمبر 12, 2015 بواسطه jjafferr 2
jjafferr قام بنشر نوفمبر 12, 2015 قام بنشر نوفمبر 12, 2015 الى هنا والحديث كله عن API ، ولكن استخدام الوحدات النمطية بشكل يومي يتعدى هذه المعلومة ، فمعظم برامجنا تحتاج الى حساب او معادلات او ... ، فهنا يأتي الوحدة النمطية ، وبالذات عند مناداتها من الاستعلام (او النموذج او التقرير)، ففي الاستعلام قد تكون محتاج الى اجراء عملية حسابية لحقل معين ، وقد تكون خطوات هذه العملية كثيرة ، ولا يمكنك عملها في سطر واحد في الاستعلام ، مثلا: الحقل items في الجدول tbl_AHF يحتوي على 3 معلومات مكررة وهي A, H, F نريد ان نقسم الحقل qty على عدد معين (يعتمد على قيمة الحقل items) ، نقسم qty على 7 ، اذا كانت قيمة items تساوي A ، نقسم qty على 6 ، اذا كانت قيمة items تساوي H ، نقسم qty على 5 ، اذا كانت قيمة items تساوي F ، هنا من الصعوبة ان نضع كود العملية كلها في الاستعلام في سطر واحد ، واذا وضعناه ، فلن نستطيع تعديله بسهولة لاحقا ، لأنه سيكون معقدا ، فالطريقة المثلى هنا ، هي عمل وحدة نمطية ، وارسال قيم الحقول items , qty اليها ، وعمل الكود بها ، واسترجاع النتائج منها ، الوحدة النمطية ستكون هكذا: Function Get_Values(i, q) 'i = items 'q = qty If i = "A" Then Get_Values = q / 7 ElseIf i = "H" Then Get_Values = q / 6 ElseIf i = "F" Then Get_Values = q / 5 End If End Function . والاستعلام يكون بهذه الطريقة: . والنتيجة: . وهنا نلاحظ من النتيجة ان تنسيقها للجهة اليسار ، مما يعني ان النتيجة نص وليست رقم ، لذا نرجع للوحدة النمطية (ودون المساس بالاستعلام) ونجري عليها التعديل المطلوب ، وبكل سهولة ، لتغيير النتيجة من نص الى رقم ، وتصبح الوحدة النمطية: Function Get_Values(i, q) As Double 'i = items 'q = qty If i = "A" Then Get_Values = q / 7 ElseIf i = "H" Then Get_Values = q / 6 ElseIf i = "F" Then Get_Values = q / 5 End If End Function . والنتيجة جعفر 258.modulesANDcommands.mdb.zip 2
jjafferr قام بنشر نوفمبر 12, 2015 قام بنشر نوفمبر 12, 2015 (معدل) والآن الى الكنز المخزون في صفحة كود الاكسس ، والذي يحتوي على جميع اوامر الاكسس ، و VBA ، و..... افتح صفحة الكود: . إما تضغط على الايقونه الموضحة بالدائرة الحمراء في الصورة اعلاه ، او تضغط على الزر F2 في لوحة المقاتيح ، وستظهر لك هذه الشاشة: . في الشاشة التاليه: 1. اختر اي الاوامر تريد ، VBA او اكسس او ... ، فسترى انواع الاوامر المتوفرة لها في النافذة 2 ، انا اخترت VBA ، 2. ثم اختار نوع الامر الذي تريده ، انا مثلا اردت جميع اوامر التاريخ والوقت ، فسترى جميع اوامر التاريخ والوقت في النافذة 3 ، 3. اختار الامر الذي تريده وانقر عليه ، انا مثلا اخترت الامر DateAdd ، فسترى في الاسفل (4) طريقة كتابة الامر : . وتستطيع كتابة اي امر تريد في خانة البحث (Recordset مثلا) ، وستحصل على جميع الاوامر التابعة له وإخواننا الصعايدة على راسنا جعفر تم تعديل نوفمبر 12, 2015 بواسطه jjafferr 7
أبو عبدالله الحلوانى قام بنشر نوفمبر 12, 2015 الكاتب قام بنشر نوفمبر 12, 2015 سلمت يمينك ورأسك وشرفت الموضوع جزاك الله خيرا وأحسن الله اليك
jjafferr قام بنشر نوفمبر 15, 2015 قام بنشر نوفمبر 15, 2015 وامثلة اخرى على استعمال الوحدة النمطية ومناداتها من الاستعلام: http://www.officena.net/ib/topic/64880-كيفية-جمع-قيمه-اكثر-من-حقل-ب-استعلام/?do=findComment&comment=422306 و http://www.officena.net/ib/topic/64683-خلل-في-تقريب-حقل-محسوب-في-استعلام/?do=findComment&comment=421364 جعفر 1
رمهان قام بنشر نوفمبر 21, 2015 قام بنشر نوفمبر 21, 2015 مررت بالصدفة بالرابط التالي وبه مشاركة قيمة للاستاذ ابو ادم ! تحياتي
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.