اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

نجوم المشاركات

  1. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      6

    • Posts

      12,205


  2. king5star

    king5star

    03 عضو مميز


    • نقاط

      5

    • Posts

      352


  3. صالح حمادي

    صالح حمادي

    أوفيسنا


    • نقاط

      2

    • Posts

      1,745


  4. Ali Mohamed Ali

    Ali Mohamed Ali

    المشرفين السابقين


    • نقاط

      2

    • Posts

      11,630


Popular Content

Showing content with the highest reputation on 10 أغس, 2018 in all areas

  1. فى البداية نقوم بفتح برنامج الاردوينو ومسح المحتوي الذى بداخلة كله ولصق هذا الكود : // 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);} وفى حالة عدم تحقق الشرط او عدم وجود قيمة يقوم بابقاء الفولت منخفض للحفاظ على غلق البوابة . وبعد الانتهاء من ادخل الكود نقوم بالضغط على علامه الصح بالاعلى للتأكد من صحه الكود وفى حالة الخطأ سيقوم البرنامج بالتوضيح فى الجزء الذى بالاسف بالاخطاء الموجوده ويجب ان تظهر هذه العبارات التى توضح المساحة المستخدمة من الذاكره الخاصة بالميكرو والرام فاذا ظهرت هذه الرسالة يكون الكود خالى من الاخطا وبامكانك شحن الاردوينو بالبرنامج من هذه العلامة : وهكذا نكون اتممنا برمجه الاردوينو بنجاح . والله الموفق . ونلتقي قريباً .
    4 points
  2. تم التعديل المشكلة التي وقفت امامي هي محاولة احتواء اي نظام تعليمي ، وتمت المعالجة ولله الحمد بحد اقصى 8 حصص في اليوم فأقل الآن اي نظام تعليمي يمكنه الاستفادة من هذا المعالج . تم تمكين خيار الحصص المزدوجة ، ولكن معالجة المشكلة الاساسية انستني ادراج وتفعيل خيارات حجب وتفعيل الايام للمعلمين اتمنى من الاخوة الكرام الاطلاع والتجربة GDwal_1.rar
    3 points
  3. السلام عليكم أيها الحاضرون في هذا الموضوع تفضل أخي هذه الطريقة التي تبحث عنها عندما تكتب في مربع القائمة يبدأ بالتصفية و عند اختيار عنصر ما. قم بالضغط على زر إضافة سوف تجد هذا السجل ذهب للنموذج الفرعي search.rar
    2 points
  4. السلام عليكم اخواني واحبائى فى الله . اليوم اتيت لكم بمشروع جديد وحصري وهو التحكم فى العالم الحقيقي باستخدام الاكسس ، كالتحكم فى ( فتح البوبات - تشغيل الاناره - تسجيل قرائات حساسات - العد من العالم الحقيقى وتسجيل البيانات - الخ.....) وهذا فيديو للتحفيز : وللبداية والانطلاق فى هذا المشروع يجب من ان تتوفر لديكم بعض من العتاد الاساسية كـ : 1- برنامج اكسس اصدار 2010 او اعلى . 2- كارت اردوينو وهى كارت مفتوحة المصدر و سهلة البرمجة والاستخدام وسوف اقوم بشرحها بالتفصيل على حلقات والتأكد من تنصيب برنامج البرمجة الخاص بها ممكن تحميله من هنا . ويفضل قراءه هذا المقال الذي يعطي نبذة جيده لهذا الكارت للبدء فى استخدامها يمكنك قراءته من هنا . 3- موديل ريلاى واحد خط او اكثر على حسب الرغبة فى عدد الخطوط المرغوب فى التحكم بها او البوابات . وبرجاء قراءه هذا المقال الذي سوف يوضح ما هذا المفتاح وطريقة استخدامه من هنا . 4- اسلاك توصيل بين الموديل و الاردوينو وهى اسلاك جاهزة كما هو موضح . <-----------------------------------------------------------------------------------------------------------------------------------------> كيف سيتم الاتصال : من اسهل طرق التوصيل واكثرها فاعلية وسرعة واتصال فى الجهاتين اى ( ارسال بيانات - واستقبال بيانات ) هو المنفذ التسلسلي Serial Port او RS232 ولمعلومات عنه بالتفصيل بامكانك قراءه هذا المقال من هنا . برجاء قراءه المقالات الموضحه بعاليه قبل البدء فى اى شئ وللحديث بقيه .
    1 point
  5. السلام عليكم ورحمة الله وبركاته اخوتي الكرام ، احببت المشاركة واثراء هذا المنتدى بفكرة وطريقة جديدة لتوزيع الفترات الدراسية على المعلمين خلال اسبوع والفكرة سهلة ويسيرة وقابلة للتطوير والاضافة وتقوم على اعطاء كل حصة رقم معرف فريد يخصها ابتداء من الحصة الأولى لأول يوم حضور وحتى الحصة الأخيرة لآخر يوم دراسي في الاسبوع والعملية تعتمد على جدولين أساسين فقط tblFsl جدول الفصول و tblTechData جدل بيانات المعلم والجدول الثالث tbldivision هو لتوزيع العملية نتيجة العملية استعلامين : 1- جدول الفصول faslTable 2- جدول المعلمين teachersTable ومع المثال يكتفى عن اطالة المقال jadwal.rar
    1 point
  6. السلام عليكم ورحمة الله عندي جدول اصناف وفيه عدة حقول منها حقل السعر وحقل الكمية عندي نموذج مستمر ممكن افتح في النموذج الواحد خمسة اصناف او اكثر ودخل الكميات المشتراة واسعارها الجديده محتاج انو اعمل استعلام تحديث يعمل عن طريق زر ويحدث الكميات الموجوده في النموذج واكيد بالاعتماد على كود الصنف يحدث الكمية انا عملت استعلام لكنه يقوم بتحديث اول قيمة فقط يعني ياخذ اول قيمة من النموذج المستمر ويتوقف ويترك باقي الاصناف لا يقوم بتحديثها . هل هناك نجعل استعلام التحديث يحدث كافة الاصناف الموجوده بالنموذج وليس اول صنف فقط؟
    1 point
  7. اهلا بك استاذ خالد وبكل من يهمه هذا الموضوع المنتدى كما تعلمون مدرسة ، كلنا نتعلم ، وحتى نحصل على الفائدة القصوى لا بد من اشراك الجميع في العمل ، ولا يتم هذا حتى ابسط العمل امام الجميع وكان الاولى ان اعمل هذه الخطوة من بداية افتتاح الموضوع ، وهذا ما سأقوم به .. ان شاء الله
    1 point
  8. شكرا استاذ حمدي على المداخلة والملاحظة . المثال اعلاه تم فيه توزيع جداول 51 معلما لمرحلة ابتدائية تضم 18 فصلا ومن المستحيل تطبيق الرغبات كما نرغب بالضبط ، ولكن " سددوا وقاربوا" فمهما كانت درجة العمل الاحترافية فلن يستغنى عن التعديل اليدوي من التحسينات التي يمكن اضافتها : 1- التحكم بحجب ايام عن بعض المعلمين ( وهذا اساسي ) وقد سقط سهوا 2- يمكن اتاحة اكثر من محاولة للتوزيع عن طريق تغيير الفرز المتبع في الجداول فبدلا من الفرز حسب الصف يكون الفرز حسب المادة
    1 point
  9. يجب اولا ان تقوم بشراء العنوان الثابت(public ip ) من مزوّد الخدمة لديك وبعدها عن طريق الويندوز سيرفر اعمل مشاركة وأثناء خطوات العمل سوف تظهر نافذة قم بوضع الاي بي الثابت وبعد الانتهاء من المشاركة سوف يظهر ملف في سطح المكتب لديك remotapp يوجد فيه اسم مستخدم وكلمة سر فقط قم بنسخة الى حواسيب المستخدمين وممكن من الهاتف المحمول
    1 point
  10. وعليكم السلام استاذ هشام-اهلا بك اخ كريم فى المنتدى تفضل هذ الكود به طلبك -يعمل على حماية الخلايا بعد الحفظ Public Sub Ziad_Prodc() Dim Sh As Worksheet Dim Rng As Range Ch_P On Error Resume Next With Application .ScreenUpdating = False .Calculation = xlCalculationManual .EnableEvents = False For Each Sh In ThisWorkbook.Worksheets If Sh.ProtectContents = True Then Sh.Unprotect Password:="123": Sh.Cells.Locked = False If Not Sh.Cells.HasFormula Then Sh.Cells.Locked = False Else Sh.Cells.FormulaHidden = True With Sh.Cells .SpecialCells(2).Locked = True .SpecialCells(-4123).Locked = True End With If Sh.Cells(1, "IV") = "True" Then Sh.Protect Password:="123" Next .EnableEvents = True .Calculation = xlCalculationAutomatic .ScreenUpdating = True End With End Sub Private Sub Ch_P() Dim Sn As Worksheet For Each Sn In ThisWorkbook.Worksheets If Sn.ProtectContents = True Then Sn.Unprotect Password:="123": Sn.Cells(1, "IV") = "True": Sn.Protect Password:="123" Next End Sub
    1 point
  11. اتفضل اضفت لك الحقلين و نموذج بحث لكشف حساب العميل sa.mdb
    1 point
  12. يجب ان تتحكم بمصدر النموذج الداخلي بدل نموذج الرئيسي اي فقط غير من Me.RecordSource الى Me.Qwaz.Form.RecordSource اي غير الكود الى هذا لانك اضفت حقل اخر جديد Private Sub choo_AfterUpdate() If Me.choo.Value = 0 Then Me.Qwaz.Form.RecordSource = "SELECT Tab1.name1, Tab1.wazefa, Tab1.salary FROM Tab1 " Else Me.Qwaz.Form.RecordSource = "SELECT Tab1.name1, Tab1.wazefa, Tab1.salary FROM Tab1 WHERE (((Tab1.wazefa) = [Forms]![manag]![choo])) WITH OWNERACCESS OPTION;" End If DoCmd.Requery End Sub اليك مثالك بعد تعديل chooseAll_2.mdb
    1 point
  13. السلام عليكم ورحمة الله أهلا بك من جديد يا أبا مهند كيف هي أحوالك؟ قد بدأت العمل على ملفك لكن صادفتني بعض التساؤلات وأريد الرد عليها قبل إنهاء العمل: 1- هل يمكن أن يكون الدعم في أي مادة من المواد؟ 2- هل أستاذ الدعم في مادة ما هو نفسه أستاذ هذه المادة؟ 3- من هو أستاذ مادة "التربية الاسلامية"؟ ومن هو أستاذ الدعم فيها؟ 4- في توقيت الأساتذة لا أجد مادة "التربية المدنية"... أم هي مادة لا تدخل في التوقيت ومن يدرّسها؟ أنتظر الإجابة على هذه التساؤلات... أخوك بن علية حاجي
    1 point
  14. وعليكم السلام اهلا بك اخ كريم فى المنتدى تفضل Monthly Time Sheet1.xlsx
    1 point
  15. تفضل 3 طرق لتصفح الانترنت من الاكسس ، والبحث عن اسم الطالب في Google.com . وهذا كود الازرار: Private Sub cmd_FollowHyperlink_Click() url_address = "http://www.google.com/search?lr=lang_ar&cr=&hl=ar&ie=windows-1256&oe=windows-1256&q=" Application.FollowHyperlink url_address & Me!name End Sub Private Sub cmd_ie_Click() Dim ie As Object Set ie = CreateObject("internetexplorer.application") url_address = "http://www.google.com/search?lr=lang_ar&cr=&hl=ar&ie=windows-1256&oe=windows-1256&q=" ie.Visible = True ie.Navigate url_address & Me!name End Sub Private Sub cmd_objIE_Click() 'Reference to Microsfot Internet Controls 'c:\windows\system32\ieFrame.dll Dim web As WebBrowser Set web = Me.objIE.Object url_address = "http://www.google.com/search?lr=lang_ar&cr=&hl=ar&ie=windows-1256&oe=windows-1256&q=" web.Silent = True 'stop script errors web.Navigate url_address & Me!name End Sub جعفر 255.web.accdb.zip
    1 point
  16. بعد اذن أخى الحبيب الشهابي ولاثراء الموضوع هذا حل آخر باستخدام المعادلة sumproduct test1.rar
    1 point
  17. هذا حل وجدته باحد المواقع عن طريقه فتح اتصال مع قاعده البيانات الخلفيه لتسريع الاتصال قم بانشاء الوحده النمطية التالية Sub OpenAllDatabases(pfInit As Boolean) ' Open a handle to all databases and keep it open during the entire time the application runs. ' Params : pfInit TRUE to initialize (call when application starts) ' FALSE to close (call when application ends) ' Source : Total Visual SourceBook Dim x As Integer Dim strName As String Dim strMsg As String ' Maximum number of back end databases to link Const cintMaxDatabases As Integer = 2 ' List of databases kept in a static array so we can close them later Static dbsOpen() As DAO.Database If pfInit Then ReDim dbsOpen(1 To cintMaxDatabases) For x = 1 To cintMaxDatabases ' Specify your back end databases Select Case x Case 1: strName = "C:\Users\Guest\Documents\Backend1.accdb" End Select strMsg = "" On Error Resume Next Set dbsOpen(x) = OpenDatabase(strName) If Err.Number > 0 Then strMsg = "Trouble opening database: " & strName & vbCrLf & _ "Make sure the drive is available." & vbCrLf & _ "Error: " & Err.Description & " (" & Err.Number & ")" End If On Error GoTo 0 If strMsg <> "" Then MsgBox strMsg Exit For End If Next x Else On Error Resume Next For x = 1 To cintMaxDatabases dbsOpen(x).Close Next x End If End Sub مع تعديل مسار القاعده الخلفيه في الكود ثانيافي نموذج الرئيسي في الواجهه الاماميه(الموجوده على اجهزه المستخدمين) وفي حدث عند التحميل او onload قم باستدعى الوحده النمطية كاتالي OpenAllDatabases True وفي حدث عند الاغلاق للنموذج ضع الكود التالي OpenAllDatabases False مع العلم انه يجب تشغل هذا النموذج طول الوقت مادم المستخدم يعمل على القاعده الامامية
    1 point
×
×
  • اضف...

Important Information