اذهب الي المحتوي
أوفيسنا

محمد طاهر عرفه

إدارة الموقع
  • Posts

    8730
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    37

كل منشورات العضو محمد طاهر عرفه

  1. بسم الله الرحمن الرحيم يَا أَيُّهَا النَّاسُ إِنَّا خَلَقْنَاكُم مِّن ذَكَرٍ وَأُنثَى وَجَعَلْنَاكُمْ شُعُوباً وَقَبَائِلَ لِتَعَارَفُوا إِنَّ أَكْرَمَكُمْ عِندَ اللَّهِ أَتْقَاكُمْ إِنَّ اللَّهَ عَلِيمٌ خَبيرٌ صدق الله العظيم أخوتي الكرام هذا الموضوع مخصص للتعارف بين أعضاء المنتدي و نأمل أن يزيدنا قربا و محبة و تعارف و أرجو أن تكون بداية المواضيع بنفس نسق المشاركة التالية قدر الامكان مع تحياتي
  2. السلام عليكم من الممكن اختبار رغبته الاولي مع جميع الشركات اولا ثم الثانية ثم الثالثة و ذلك بتعديل مسار الحلقات و لكن ... ماذا عن أولوية الشركات فى التسكين هل ليست فى نفس مستوي الاهمية ؟ فاما أن تكون االأهمية الاولي لتسكين الشركات باولوياتها كما هو حادث ، أي أننا نملأ الاماكن فى الشركات ذات الاولوية اولا بصرف النظر عن ترتيب الرغبة ( ما هو الان ) أو يمكننا الاهتمام بالرغبة أولا و لكن هذا سيعود بنا الي اقتراحي الاصلي ، بفصل رغبات الطلاب فى جدول منفصل فان هذا سيمكننا من ادخال الرغبات الثلاثة فى حلقة اخري مثلما فعلنا مع الطلاب و الفرص و هذا هو الافضل و يمكن ايضا التعامل معها بالتصميم الحالي و لكن هذا ليس الافضل فى انتظار ردك مع تحياتي
  3. طبق الكود السابق هكذا On Error GoTo errsub DoCmd.Hourglass True DBEngine.CompactDatabase datapath, Backuppath, DB_LANG_ARABIC DoCmd.Hourglass False errsub: If Err.Number = 3204 Then MsgBox " A database with the same name exists in the same location ! ", 64, "Duplicate Backup Name" ElseIf Err.Number = 3356 Then MsgBox "Another user is Currently using the Database" + Chr(10) + Chr(13) + "Wait Until No Other Users are Using the Database !", 16, " Other Users WArning Message " ElseIf Err.Number = 3024 Then m = " The Database Source File : " + datapath + Chr(10) + Chr(13) + " is not available !" + Chr(10) + Chr(13) + "Please check the Source Database Name and Location" MsgBox m, 16, "Missing Data Table " ElseIf Err.Number = 3044 Then m = " Invalid File Name : " + Chr(10) + Chr(13) + "Please check the File name and location " MsgBox m, 64, "Invalid File Name " ElseIf Err.Number = 20477 Then m = " Invalid File Name : " + m3 + Chr(10) + Chr(13) + " OR " + m4 + Chr(10) + Chr(13) + " is not available !" + Chr(10) + Chr(13) + "Please check the Source Database Name and Location" MsgBox m, 64, "Invalid File Name " Else MsgBox Str(Err.Number) + Err.Description End If MsgBox "Action Canceled ! " DoCmd.Hourglass False فى زر اغلاق التطبيق
  4. الأخ أبو دلال وصلني الملف ، مع الشكر و هو نفس الملف المنشور أعلاه
  5. السلام عليكم و جزاكم الله خيرا ، و فى انتظار مشاركاتك و نحن جميعا سعداء لاحساسك هذا و بالنسبة لاضافة ال 1 فهذا لاحتساب يوم نهاية الاجازة نفسه ضمن الاجازة اما لو سجلنا يوم العودة من الاجازة فلن نضيف 1 و أهلا بك
  6. السلام عليكم أخي الكريم لم يصلني بعد شيء علي البريد الا يمكنك رفعه علي موقع مجاني أو مركز تحميل ؟؟ و هذا هو كود الاخ ابو بكر الذي أشاراليه الاخ عبدالله مشكورا و مرف المثال 'قم بتحديد رقم المنفذ لعنصر المودم إن كان غير الرقم 1 Private Sub Form_Load() On Error GoTo errhandle MSComm1.PortOpen = True MSComm1.Output = "AT+VCID=1" & vbCr 'يتيح الأمر السابق للمودم استقبال رقم المتصل 'و ليست جميع المودمات تدعم كاشف الرقم 'كما أنها لا تستخدم جميعها نفس التعليمة السابقة ' كما أنا الكثير منها يعاني من عدم الاستجابة أحياناً 'لذا تأكد من ظهور 'OK 'عند تشغيل البرنامج Exit Sub errhandle: MsgBox "خطأ في رقم المنفذ أو أن المنفذ مفتوح مسبقاً", vbOKOnly + vbCritical End Sub Private Sub MSComm1_OnComm() If MSComm1.CommEvent = comEvReceive Then Dim Buffer As Variant Buffer = MSComm1.Input Text1 = Text1 & Buffer End If End Sub myid.zip
  7. هذا شرح مبسط علي السريع و إن شاء الله لنا أن نكمل الدورة ، سيكون هناك شرح بطريقة أفضل ملاحظة : فى نهاية الكود استبدل 'mychances.Close 'mystudents.Close ب mychances.Close mystudents.Close حيث انها منسية Private Sub CmdTaskin_Click() 'استدعاء دالة التسكين ثم تحديث لبيانات النموذج TheTaskin Me.Refresh End Sub Sub TheTaskin() 'تعريف مجموعتي سجلات من نوع ادو الاولي لعدد الفرص و التثانية للطلاب Dim mychances As ADODB.Recordset, mystudents As ADODB.Recordset 'فتح مجموعتي السجلات Set mychances = New ADODB.Recordset Set mystudents = New ADODB.Recordset 'تخصيص مجموعتي السجلات الي الجداول المناظرة mychances.Open "qryremchances", CurrentProject.Connection, adOpenKeyset, adLockOptimistic mystudents.Open "QryStudents", CurrentProject.Connection, adOpenKeyset, adLockOptimistic 'تعريف متغيرين لاستخدامهما كعدد للطلاب و الفرص Dim Students As Long, comp As Long 'تحديد قيمة عداد الشركات الي عدد سجلات مجموعة الفرص comp = mychances.RecordCount 'تحديد قيمة عداد الطلاب الي عدد سجلات مجموعة الطلاب Students = mystudents.RecordCount 'اذا عدد السجلات فى أي من المجموعتين = صفر نخرج ولا نكمل التنفيذ مع اصدار رسالة If comp = 0 Or Students = 0 Then MsgBox "chances or Students are not recorded" Exit Sub End If 'التحرك الي أول سجل فى مجموعة الطلبة mystudents.MoveFirst 'بدء حلقة للمرور علي جميع سجلات مجموعة الطلبة Do Until mystudents.EOF 'MsgBox "Sudent : " & Str(mystudents!lngstudid) 'التحرك الي أول سجل فى مجموعة الفرص mychances.MoveFirst 'بدء حلقة للمرور علي جميع سجلات مجموعة الفرص Do Until mychances.EOF ' MsgBox "Sudent : " & Str(mystudents!lngstudid) & " comp : " & Str(mychances!lngcompid) ' كانت عدد الفرص المتاحة فى السجل الحالي = صفر أو كود المادة فى الفرصة ' لا يوافق تخصص الطالب نخرج من اختبار السج لالحالي بالذهاب الي النهاية الحلقة ' فى المكان المحدد If Nz(mychances!intchancesrem, 0) = 0 Or mystudents!lngspecid <> mychances!lngspecid Then GoTo nextchance End If 'اذا توافقت رغبة اللأولي للطالب في شركة مع كود الفرصة يتم تخفيض عدد الفرص المتاحة ن الشركة بواحد ' و يتم تسكين كود الشركة فى مجموعة الطلاب لهذا الطالب If mystudents!lngreqcompID1 = mychances!lngcompid Then mychances!intchancesrem = mychances!intchancesrem - 1 mystudents!lngcompid = mychances!lngcompid 'تحديث بيانات مجموعتي السجلات بناء علي ما سبق mychances.Update mystudents.Update ' و يتم تخطي اختبار الرغبات التالية له GoTo nextstudent End If ' نفس الموضوع للرغبة الثانية If mystudents!lngreqcompID2 = mychances!lngcompid Then mychances!intchancesrem = mychances!intchancesrem - 1 mystudents!lngcompid = mychances!lngcompid mychances.Update mystudents.Update GoTo nextstudent End If ' نفس الموضوع للرغبة الثالثة If mystudents!lngreqcompID3 = mychances!lngcompid Then mychances!intchancesrem = mychances!intchancesrem - 1 mystudents!lngcompid = mychances!lngcompid mychances.Update mystudents.Update GoTo nextstudent End If 'مكان محدد لتخطي الدراسة و الوصول الي خطوة التحرك الي الفرصة التالية فى المجموعة nextchance: 'التحرك الي السجل التالي فى مجموعة الفرص mychances.MoveNext 'نهاية حلقة للمرور علي جميع سجلات مجموعة الفرص Loop 'مكان محدد لتخطي الدراسة و الوصول الي خطوة التحرك الي الطالب التالي فى المجموعة nextstudent: 'التحرك الي السجل التالي فى مجموعة الطلبة mystudents.MoveNext 'نهاية حلقة للمرور علي جميع سجلات مجموعة الطلبة Loop 'اغلاق مجموعتي السجلات التين تم فتحهما mychances.Close mystudents.Close End Sub ------------------ ' كود الغاء التسكين و هو عبارة عن تفعيل لجملة اس كيو ال مناظرة لاستعلام تحديث 'و يقوم بوضع''مكان كود الشركة السابق تسكينه فى جدول الطلاب و يجعل عدد الفرص المتبقية مساوي للكلية Private Sub CmdcancelTaskin_Click() DoCmd.SetWarnings False DoCmd.RunSQL "UPDATE tblstudents SET tblstudents.lngcompid = '';" DoCmd.RunSQL "UPDATE tblchances SET tblchances.intchancesrem = [tblchances]![intchancesno];" DoCmd.SetWarnings True Me.Refresh End Sub
  8. و جزاكم الله خيرا و مبروك و عقبال التطبيقات القادمة :)
  9. أنشيء 3 مربعات نص الاول لتاريخ بداية الاجازة و سمه d1 الثاني لتاريخ نهاية الاجازة و سمه d2 و اختار تنسيقهما أحد تنسيقات التاريخ و الثالث تنسيقه Standard بدون علامات عشرية ضع فى مصدر بياناته الجملة التالية =[d2]-[d1]+1
  10. بالنسبة للتصدير يمكنك استنتاج التقدير فى حقل فى استعلام بنفس الطريقة و تصدير الاستعلام و من وجهة نظري ، عدم تخزين التقدير فى حقل لن ينقص من البرنامج بل يزيده :) ، لانك لن تخزن بيانات لا لزوم لها و عموما لو أردت تخزينه ، فقد تكلمنا عن كيفية تخزينه فى حقل بالكود مع ادخال الدرجة مع تحياتي
  11. قد يوجد حل أسهل و لكن هذا أحد الحلول : أنك عند فتح التقرير ( الفاتورة) تقوم بحساب كل ما سحيه المشترك ، و كل ما سدده ، و تطرحهم لتحصل علي الرصيد السابق هذا مثال لما أقصد ضع تسمية لنحسب رصيد المديونية السابق ثم نضعه فيه مع فتح التقرير و التسمية هذه هنا اسمها PREVBAL Private Sub Report_Open(Cancel As Integer) Dim M As Double If DCount("[AMOUNT]", "BILLS", "(([FIDFROM]=" & [Forms]![FBILLIN]![FIDFROM] & _ " ) AND ( [BID] < " & Forms![FBILLIN]![BID] & "))") Then M = DSum("[AMOUNT]", "BILLS", "(([FIDFROM]=" & [Forms]![FBILLIN]![FIDFROM] & _ " ) AND ( [BID] < " & Forms![FBILLIN]![BID] & "))") M = M - DSum("[PAID]", "BILLS", "(([FIDFROM]=" & [Forms]![FBILLIN]![FIDFROM] & _ " ) AND ( [BID] < " & Forms![FBILLIN]![BID] & "))") Else M = 0 End If M = Format(M, "#,##0.00") Me!PREVBAL.Caption = M End Sub حيث فى المثال أعلاه BID هو رقم الفاتورة و FIDfrom هو كود العميل و ما حدث فى الكود السابق هو حساب قيمة الفواتير السابقة علي الفاتورة الجالية لهذا العميل و طرح المدفوع منها و في البداية تم اختبار هل هناك فواتير سابقة علي رقم هذه الفاتورة لهذا العميل ام لا ، فاذا لم يكن يكون الرصيد السابق = صفر
  12. أن تقوم بعمل نموذج بدون مصدر بيانات و تسجل به بيانات المعاملة و تستدعي قيمة العملة من جدول العملات باستخدام Dlookup ثم تسجل مجموعة البيانات فى الجدول فكلما يحدث تحديث تستبدل القيمة فى جدول العملات و مع كل عملية يتم ساتدعاء القيمة الموجودة فى جدول العملات و تسجيلها فى جدول العمليات و يوجد أمثلة علي اضافة السجل من فورم بدون مصدر بيانات ب3 طرق فى اوائل مشاركات قسم النماذج فى الارشيف و يوجد موضوع لشرح دوال تجميع المجال و أمثلة عليها فى قسم الدوال فى الارشيف مع تحياتي
  13. السلام عليكم بالرغم من أن الحل الذي تفضل به الأخوة هو الأفضل الا أنه حدثت هذه المشكلة علي أحد الاجهزة قريبا و انتهت بعد تحميل فيجوال بيزيك 6 علي الجهاز طبعا هذا ليس حل مناسب ، و لكن وددت ذكره أيضا مع تحياتي
  14. و لك منا جميعا أجمل تحية هل جرب الأخوة المزيني و أبو هاجر ، طريقة برنامج الفيجوال مع ملفك ؟؟
  15. يبدو أنني لم أوضح قصدي بصورة كافية :) ما قصدته هو أن جدول أسعار العملات يتم تحديث القيمة فيه دوريا (به دائما قيمة واحدة لكل عملة ) و مع تنفيذ أي عملية يتم سحب القيمة من جدول العملات الي جدول العمليات ما قصدته بالقيمة الاخيرة ، هو اخر تحديث للقيمة المناظرة لكل عملة فى جدول العملات مع تحياتي
  16. أخي الكريم أنت فقط تدخل الدرجة ، و التقدير سيظهر فى النموذج أو التقدير كما فى المثال و لن يكون هناك تغيير حال كون مربع النص الذي به الدرجة مرتبط بحقل فى جدول ( الباقي مثل المثال تماما )
  17. بالنسبة للاستفسار سيتم اتباع نفس الخطوات بان ترسل رقم المستخدم الي النموذج عند فتحه مثلما حدث سابقا : Forms!data_frm!user_code = Me.userlist و تعدل الاسماء بحسب النماذج لديك و بعد ذلك يتم الحفظ بنفس الطريقة و بوجود نفس المربعات و الحقول المبنية عليها ( أو بحسب الأسماء لديك ) : Private Sub Form_BeforeUpdate(Cancel As Integer) If IsNull(Me![DateEntered]) Then Me![DateEntered] = Date Me![DateModified] = Date Me![TimeEntered] = Time Me![TimeModified] = Time Me.userentered = Me.user_code Me.userModified = Me.user_code Else Me![DateModified] = Date Me![TimeModified] = Time Me.userModified = Me.user_code End If End Sub
  18. هذه نسخة من المثال المفيد مع الشكر لابن مسقط و ابو هاجر save_undo.rar
  19. أخي أبو دلال يمكنك وضع الكود نفسه هنا أو رفع المثال علي أي موقع تحميل أو ارساله الي الأخ فيصل ليضعه أو أرسله لي مع تحياتي
  20. و لماذا تريد تخزين معلومة اضافية..؟؟ فالدرجة تكفي ، و تستخدم احدي الطرق لاستنتاج التقدير سواء فى النماذج أو التقارير عموما ، فى شاشة ادخال الدرجات ، فى حدث بعد التحديث لمربع النص الذي ستدخل فيه الدرجة ، ضع الكود التالي Me.grade = GetGrade(Me.number) حيث grade هو اسم مربع النص المرتبط بحقل التقدير فى الجدول و number هو اسم مربع النص الذي ستدخل فيه الدرجة و لا تنسي نقل الكود الخاص بالدالة الي الموديول
  21. جدول العمليات المالية يكون فيه حقل لسعر العملة و يتم تسجيله مع كل حركة مالية بناء علي سعر العملة الأخير الموجود فى جدول العملات و لاداعي للربط بينهما الا اذا أردت تسجيل كود العملة بدل اسمها و استدعاء الاسم من العلاقة أما القيمة فيتجل مع كل حركة فى جدول المعاملات المالية مع تحياتي
  22. مرفق بسيط لضرب الفئة فى القيمة و الحصول علي المجموع الاجمالي Product.rar
      • 2
      • Thanks
      • Like
  23. مرفق المثال بالاكسس و به 4 طرق واحدة باستخدام IIF و 3 بال VBA مع تحياتي Grades.rar
  24. أخي الكريم الكود يصلح للاكسس و للاكسيل فقط استبدل mycell باسم مربع النص لديك الذي تريد وضع التصنيف للقيمة فيه أو ب اسم الحقل اذا كان فى استعلام فجرب اي من ال 3 اكواد بحسب ما يناسبك و سيعمل باذن الله و اذا واجهتك مشكلة أخبرني لأضعه فى مثال مع تحياتي
×
×
  • اضف...

Important Information