بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
352 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
3
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو king5star
-
شكراً اخى صالح على هذا الدعم . عفوا اخى اتمني الافادة لك . وبارك لك اخى . مرورك اخى اجمل وسنستمر باذن الله . وجزاك اخى ايضاً اعتذر لكل من تابع الموضوع وتأخرت فى باقى الشرح فلدي عطل بالانترنت فيوم بالاكثر باذن الله ونكمل باقى الشرح وطريقة تهيئة الاكسس .
-
فى البداية نقوم بفتح برنامج الاردوينو ومسح المحتوي الذى بداخلة كله ولصق هذا الكود : // Example_1_Computer MSACCESS_Interfacing // Design By : Karim Adel El-Hosseny // Mobile : 01277877151 int Door=7; // تهيئه متغير يقوم يتعويض رقم المنفذ 7 الى اسم لسهولة البرمجة int value; // تهيئة متغير لتخزين قيمة القراءه من المنفذ التسلسلي void setup () // دالة عامه لتهيئة المنفذ التسلسلي { Serial.begin(9600); // ضبط معدل النقل ويجب ان تتوافق هذه القيمة مع القيمة المضبوطبه بالبرنامج بالاكسس pinMode(Door,OUTPUT); // تهيئة الطرف الخاص بالخرج digitalWrite(Door,LOW); // جعل قيمة الجهد المسلط على الطرف الخاص بالخرج مساوى لصفر فولت } void loop () { // دالة تكرار لا نهائية value = Serial.read(); // تخزين قيمة البيانات المستلمة من المنفذ التسلسلي والمرسلة من الاكسس بالمتغير المحجوز مسبقاً if (value == '1') // يقوم هذا الامر من مراجعة قيمة البيانات المرسلة اذا كانت مساوية للواحد ويتحقق الشرط يقوم بتنفيذ الاوامر التالية { digitalWrite(Door,HIGH); // جعل الالجهد المسلط على الطرف مساوية لاعلى فولت ممكن delay(3000); // الانتظار لمده ثلاث ثواني digitalWrite(Door,LOW); // جعل الجهد المسلط على الطرف مساوية لاقل فولت ممكن } else if (value == '0') {digitalWrite(Door,LOW);} // وفى حالة عدم تحقق الشرط يجعل الجهد المسلط على الطرف لاقل فولت ممكن } ولفهم الكود بشكل اكبر سنقو بشرحة خطوه خطوه فى البداية تعريف للكود والمصمم له : // Example_1_Computer MSACCESS_Interfacing // Design By : Karim Adel El-Hosseny // Mobile : 01277877151 -------------------------------------------------------------------------------------------------------------------------------- int Door=7; int value; وفى هذا الجزء قمنا بحجز سجل ( متغير رقمي ) فى الذاكره المؤقته بالميكروكونترول باسم Door و جعلنا قيمتها 7 و 7 هى رقم الطرف الذى سيوصل عليه البوابة او لمبة الاناره ويكون الرقم مكتوب بجوار الطرف كما بالصورة : وحجز خانة اخري بالمسمي Value لتسجيل بها البيانات المستقبله من طريق السيريال بورد . void setup (){ } وهى دالة محجوزة بالميكروكونترول ويكتب بها اوامر النهيئة الخاصة بالاطراف او الموديلات الداخلية المدمجة معه . Serial.begin(9600); ويقوم هذا الامر بتفعيل وتهئية موديل السيريال بورد المدمج مع الميكروكونترول ويخبره بان معدل نقل البيانات المستخدم هو 9600 كيلو بايت ويجب ان يكون جهاز الكمبيوتر متوافق مع هذا الرقم وايضا البيانات المرسلة من الاكسس كما سنوضحها لاحقاً . pinMode(Door,OUTPUT); طبيعة الطرف ان الاردوينو لكل طرف بها وظيفتين اساسيتان والبعض اكثر من وظيفة فالوظيفه الاولى هى استعمالة كخرج بمعني ان يقوم بتوصيل كهرباء لهذا الطرف او قطع الكهرباء عنه وهذا مفهوم بسيط لتسهيل استيعابه والوظيفة الشانية ان يستخدم كدخل اى ان يقوم بفحصه هل يوجد عليه كهرباء ام لا . اذا فالوظيفة الاولى كخرج والثانية كدخل . ونحن هنا نستخدمة كخرج فنامره عند ارسال قيمة معينه من الاكسس يقوم بالتوصيل واذا انقطعت يتوقف . digitalWrite(Door,LOW); وكما وضحنا فى الامر السابق اننا نستخدمه كخرج فيتحكم هذا الامر فى طبيعة الخرج وقمنا بامره ان يجعل الكهرباء المسطله اقل قيمة كهربيه اى صفر فولت لا لا يقوم بالتوصيل او التشغيل . void loop () { } وهى دالة البرنامج الرئيسى التى اول ما يعمل الميكرو ويقوم بالتهيئة يدخل اليها لتنفيذ التعليمات المرغوبة . ملحوظة هامه : ان الميكروكونترول ليس مرن كالاكسس بمعنى انه يقوم بتنفيذ التعليمات بالترتيب ولا يستطيع ان يقفز الى امر اخر دون المرور على البقية . value = Serial.read(); وهنا نامر الميكرو بتسجيل البيانات المستقبلة فى المتغير المحجوز سلفاً فى الكود . if (value == '1') { وكالمعتاد والمتوقع عن ايجاد دالة الشرط IF كما تعودنا استخدامها فى الاكسس وتختلف فقط بطريقة كتابها كما موضح . وتقوم بفحص حالة المتغير فاذا كانت قميته تساوى واحد صحيح يقوم بتنفيذ الاوامر واذا لم تكن يقوم بتنفيذ التالى وكذلك يمكن استخدام Elseif ونرسل قيمة مثلا 2 فيقوم بفتح بوابة اخري وهكذا . digitalWrite(Door,HIGH); فاذا تحقق الشرط يقوم بجعل قيمة الخرج المسلط على الطرف المحدد سلفاً باعلى قيمة فولت لتشغيل الريلاى لفتح البوابة . delay(3000); وهذه داله تمنيت وجودها فى الاكسس وهى دالة تأخير زمني والرقم 3000 بمعني 3 ثواني فالميكروكونترول لديه قدره لتقسيم الثانية الواحده الى 1000 جزء ويتعامل معها كجزء من الـ1000 digitalWrite(Door,LOW); بعد الانتظار لمدة ثلالث ثواني يقوم بتخفيض الفولت الى صفر لغلق البوابة واذا احببتم زياده الوقت نقوم بزياده ال 3000 else if (value == '0') {digitalWrite(Door,LOW);} وفى حالة عدم تحقق الشرط او عدم وجود قيمة يقوم بابقاء الفولت منخفض للحفاظ على غلق البوابة . وبعد الانتهاء من ادخل الكود نقوم بالضغط على علامه الصح بالاعلى للتأكد من صحه الكود وفى حالة الخطأ سيقوم البرنامج بالتوضيح فى الجزء الذى بالاسف بالاخطاء الموجوده ويجب ان تظهر هذه العبارات التى توضح المساحة المستخدمة من الذاكره الخاصة بالميكرو والرام فاذا ظهرت هذه الرسالة يكون الكود خالى من الاخطا وبامكانك شحن الاردوينو بالبرنامج من هذه العلامة : وهكذا نكون اتممنا برمجه الاردوينو بنجاح . والله الموفق . ونلتقي قريباً .
- 31 replies
-
- 11
-
السلام عليكم اخواني واحبائى فى الله . اليوم اتيت لكم بمشروع جديد وحصري وهو التحكم فى العالم الحقيقي باستخدام الاكسس ، كالتحكم فى ( فتح البوبات - تشغيل الاناره - تسجيل قرائات حساسات - العد من العالم الحقيقى وتسجيل البيانات - الخ.....) وهذا فيديو للتحفيز : وللبداية والانطلاق فى هذا المشروع يجب من ان تتوفر لديكم بعض من العتاد الاساسية كـ : 1- برنامج اكسس اصدار 2010 او اعلى . 2- كارت اردوينو وهى كارت مفتوحة المصدر و سهلة البرمجة والاستخدام وسوف اقوم بشرحها بالتفصيل على حلقات والتأكد من تنصيب برنامج البرمجة الخاص بها ممكن تحميله من هنا . ويفضل قراءه هذا المقال الذي يعطي نبذة جيده لهذا الكارت للبدء فى استخدامها يمكنك قراءته من هنا . 3- موديل ريلاى واحد خط او اكثر على حسب الرغبة فى عدد الخطوط المرغوب فى التحكم بها او البوابات . وبرجاء قراءه هذا المقال الذي سوف يوضح ما هذا المفتاح وطريقة استخدامه من هنا . 4- اسلاك توصيل بين الموديل و الاردوينو وهى اسلاك جاهزة كما هو موضح . <-----------------------------------------------------------------------------------------------------------------------------------------> كيف سيتم الاتصال : من اسهل طرق التوصيل واكثرها فاعلية وسرعة واتصال فى الجهاتين اى ( ارسال بيانات - واستقبال بيانات ) هو المنفذ التسلسلي Serial Port او RS232 ولمعلومات عنه بالتفصيل بامكانك قراءه هذا المقال من هنا . برجاء قراءه المقالات الموضحه بعاليه قبل البدء فى اى شئ وللحديث بقيه .
-
مساعدة فى هذا الكود تشغيل دالة Dlookup مع RunSQL
king5star replied to king5star's topic in قسم الأكسيس Access
لم تظبط معي فقم بعمل استعلام تسهيلاً للامر . شكراً لاهتمامك اخى . -
السلام عليكم اخوانى مشكلتى هى تشغيل دالة Dlookup مع RunSQL DoCmd.RunSQL "UPDATE Parts_Sales_Data SET Parts_Sales_Data.Price ='" & DLookup("[Price_Delir]", "Parts_Items", "[Item_Number]='" & [Item_Code] & "'") & "' WHERE (((Parts_Sales_Detalis.Bill_Code)=[Forms]![Parts_Sales]![Bill_Number]));" فما هو الحل للربط بينهم
-
قمت بعمل استعلام الخاص بالمشاريع وجعلت لاسم الموظف معاير . وبعدها قمت بعمل استعلام بحث عن الغير متطابق. وبعدها جعلت مصدر القائمة الاستعلام الذى توجد به نتائج المشاريع الغير مدرجه . وبعدها وضعت حدث عند التحديث عمل تحديث للنموذج لاعادة تشغيل الاستعلام وعرض ما تبقي من مشاريع غير مدرجه. وبعدها وضعت كود تحديث عند حذف مشروع ليظهر مره اخري فى القائمة عند حذفه .
-
الاثنين كريم والمشاريع
-
لم اجده 😂
-
تفضل اخى باستعلام وكود واختار الانسب اليك . جدول الحصص.zip
-
اخى هل هذا برنامج بالاكسس ام بالفجوال ؟
-
تفضل اخى ستجد هنا مبتغاك .
-
تفضل اخى الكريم وفقك الله . Database1.zip
-
السلام عليكم اخوانى لدى كود لعمل نسخة احتياطية واستدعائها ويعمل بشكل جيد ولكنى لم التفت الى مشكلة خطيرة وهى ان عند الاستدعاء الجداول المرتبطة بعلاقة رأس واطراف اذا كان الجدول الاساسى بالاسفل والجدول الفرعى بالاعلي فلا يتم نسخ البيانات ويتركها فارغة ويقوم بنسخ البيانات الى الجداول الرئيسية ومرفق مثال وق وضعت به جدولين وهما A,B حيث B الجدول الاساسى و A الجدول الفرعى فتقوم بوضع البيانات وعمل نسخة احتياطية كله تمام بعد كده حذف البيانات من الجداول واستعادة النسخة الاحتياطية تسترد البيانات الى جدول B فقط مع ان بيانات الجدولين موجودين فى النسخة ولكن يسترد الاخير فقط فهل لها حل ؟ Backup.accdb
-
مطلوب توزيع الرقم السري على الغلاف والمظروف
king5star replied to haniameen's topic in قسم الأكسيس Access
والله اخى @ابوخليل حاولت افعلها ولكنها لم تنجح معى لعملي انها سوف تحتاج الى مكتبة Recordset فاذا كان لديك قليلاً من الوقت لشرحها هى وادواتها اكون لك شاكراً . -
اخى والله الى انت عاوزة هيتم بأذن الله ولكن اعطيني مثال لاقوم بتعديله اليك ولا اريد كل البرنامج فاعمل مشروع جديد به المطلوب الذى تريده فقط ويكون مبسط .
-
اخى تفاصيل اكثر حتى اسامى الحقول ومثال للتعديل عليه !
-
سوف تجد كيفية وضع القيم بهذه المشاركة .
- 1 reply
-
- 1
-
حساب عدد مدينة محددة و عدد الخلايا الصحيحة
king5star replied to محمد احمد لطفى's topic in قسم الأكسيس Access
تفضل اخى الكريم 6000.mdb -
test.mdb تفضل اخى الدالة التى تريدها هي nz بمعني No Zero فى حالة عدم وجود قيمة يقوم بوضع الصفر كقيمة افتراضية للحقل .
-
احتاج اظهار رسالة بتخطي حفظ اكثر من 3 سجلات بنفس التاريخ
king5star replied to التميمي 2009's topic in قسم الأكسيس Access
اخى تفضل ولكن نصيحة من اخ قم بكتابة اسماء الحقول والجداول باللغة اللاتينية لكي تتزن الاكواد وتتقي شر الاخطاء . 123456.mdb -
سلمت يداك اخى بداية موفقة .
-
اخى هل يوجد متغير ؟؟ واذا امكن ارفاق مثال او كل الكود
-
تنبيه للمستخدم بعدم وجود بيانات بالجدول قبل تصديره لملف أكسل
king5star replied to أحمد العيسى's topic in قسم الأكسيس Access
Dim Q as Integer Q = Dcount("*","Teacher") if Q > 0 then DoCmd.OutputTo acOutputTable, stDocName, acFormatXLS, "C:\" & "Teacher" & ".xls", False else msgbox " لا يوجد سجلات لتصديرها " endif