-
Posts
9920 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
وعليكم السلام 🙂 جرب هذا التعديل: بدلا عن = Me.[Last Situation] استعمل = Me.[Last Situation].oldvalue & vbCrLf & Me.[Last Situation].text او = Me.[Last Situation].oldvalue & vbCrLf & Me.[Last Situation] جعفر
-
ماهي الطريقة لتحويل ملف اكسل الى قاعدة بيانات للموظفين (معدل)
jjafferr replied to ام زهراء's topic in قسم الأكسيس Access
يتم استيرادها من الملفات الموجودة مسبقاً اختصارا للوقت والجهد , ولكن قد تحتاج لبعض التهيئة والترتيب لاستيرادها للجدول الجديد. السلام عليكم 🙂 طبعا هناك عدة طرق لهذا العمل ، ويعتمد اذا عندك ملف واحد او عدة ملفات ، واذا كانت الملفات ستتكرر لاحقا ، وعليه يمكننا مساعدتك في استيراد اول ملف وتجهيز الجدول والكود للملفات التالية 🙂 جعفر -
وعليكم السلام 🙂 واهلا وسهلا بك في المنتدى 🙂 للاستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى: اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة استخدم ="#https://www.google.com/maps/place/" & [N] & " " & [E] . هذا مثال عملته الآن ، مع مراعاة الحقلين من نوع HyperLink ، ومصدر البيانات من النموذج وليس الجدول : . والنتيجة . جعفر 1466.HyperLink URL.accdb.zip
-
السلام عليكم 🙂 اخي حسام شكرا على قاعدة البيانات 🙂 استعمل الكود التالي في كمعيار في حقل التاريخ ، حتى يأتيك بالسجل كاملا: (Select TOP 1 [XDate] FROM [tbl] AS TN WHERE [ID] = Forms![Form1]![ID] ORDER BY [XDate] desc) . والنتيجة جعفر Root4.zip
-
وعليكم السلام 🙂 سيدي الفاضل ، استعمل الطريقة الابسط والاسهل واللي انت تعرفها ، وهي بتفكيك الامر الى اوامر ابسط ، ثم اجمعها ، هذا: dim mySQL as string mySQL="[TBLibrary]![bookname]=Forms![FLibraryMain]![FLibrarySub].Form![bookname]" mySQL= mySQL & " And " mySQL= mySQL & "[TBLibrary]![Writer]=Forms![FLibraryMain]![FLibrarySub].Form![Writer]" 'اعمل التغيير المطلوب في هذا السطر فقط If DCount("*", "[TBLibrary]", mySQL) >= 1 Then وعلشان تتأكد ان المعادلة تعمل ، اوقف عمل السطر الثاني والثالث من المتغير mySQL بوضع علامة ' امام كل سطر ، وجرب 🙂 جعفر
-
ارسال رسائل whatsapp (وتساب) بدون حفظ الرقم
jjafferr replied to kanory's topic in قسم الأكسيس Access
في هذه الحالة ، اضف علامة ' قبل بقية الاسطر (امام كل سطر ضع علامة ' الى آخر سطر في الدالة) ، على الاقل علشان ما تحصل على خطأ ، وجرب البرنامج مرة اخرى. -
رسومات بيانية باستخدام لغة الجافا من الانترنت
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
شكرا جزيلا اخوي أبو إبراهيم في اثراء الموضوع ، وشكرا على المثال الجميل 🙂 صحيح نحن نعرض الرسومات البيانية في النموذج ، ولكن العادة نحتاج لها في التقارير ، وكما تفضلت ، فلو كان زر الاختيار في النموذج يكون افضل للمستخدم ، واسهل للفهم 🙂 جعفر -
ارسال رسائل whatsapp (وتساب) بدون حفظ الرقم
jjafferr replied to kanory's topic in قسم الأكسيس Access
وعليكم السلام 🙂 المفروض ان سطر End Function يكون آخر سطر في الدالة ، ولا يكون بعده سطر إلا في الحالات التالية : بداية دالة اخرى ، ويكون السطر مثل هذا القبيل: Public Function ABC(....) او Function ABC(....) او Sub ABC(....) او يكون ملاحظة ، فيكون اول السطر: يا علامة ' او كلمة rem جعفر -
هذا تعديل لكود اخي المهندس قاسم : = iif([الصف]="بنون" or [الصف] = "بنات" ; "" ;NZ([بنات];0) + NZ([بنون];0)) جعفر
-
هل يمكن رفع قاعدة البيانات على قوقل درايف Google Drive
jjafferr replied to ابوخليل's topic in قسم الأكسيس Access
السلام عليكم 🙂 وانا متابع ، ولكن للاسف ما عندي ما ادلو به 😞 جعفر -
وعليكم السلام ورحمة الله وبركاته 🙂 للاسف ، اصبح الملف معطوب ، وقد تستطيع استرجاع الجداول وكائنات اخرى باستعمال البرنامج المرفق هنا جعفر
-
كيفية إضافة خيار A3 في طابعة التقرير ولا يوجد خيار A3 (معدل)
jjafferr replied to عبدالقدوس48's topic in قسم الأكسيس Access
وعليكم السلام 🙂 هذه الخيارات ، بالاضافة الى خيارات اخرى ، يأخذها الاكسس من الطابعة ، فلا يمكن ان تضيف شيء غير موجود. فإذا الطابعة لا تطبع A3 وهو ضعف حجم A4 ، فلن تجد هذا الاختيار. يمكنك ان تضيف طابعة بها خيار A3 ، او تستخدم احد الطابعات الافتراضية التالية: Microsoft XPS Document Writer Microsoft Print to PDF او طابعة افتراضية مجانية لطباعة pdf مثل: https://www.dopdf.com/ او طابعة افتراضية لطباعة الصور. جعفر -
اعطنا المعادلة اللي عملتها للجملة ، علشان نعدل عليها
-
السلام عليكم 🙂 كنت اتصفح الانترنت واقرأ عن مستقبل الاكسس ، فوجدت احد محترفي الاكسس عنده صفحة جديدة في اليوتيوب ، وبها رأيت انه هناك محترف آخر عمل ربط بين بيانات الاكسس المحلية ، وكود/شفرة جافا على الانترنت ، وهذه الشفرة متخصصه في عمل رسومات بيانية في صفحات الانترنت ، وهنا تفاصيل الشفرة https://www.chartjs.org/docs/latest/samples/information.html قمت بإنزال الملف واسمه Better-Access_Charts.accdb من موقع https://github.com/team-moeller/better-access-charts وهذه احد الرسومات البيانية اللي فيه: . ونتحكم بنوع الرسومات وتفاصيل المحاور وووو ، من النموذج التالي ، ثم ننقر على الزر الذي عليه السهم الاحمر ، ليعمل تغيير في نموذج الرسومات البيانية . (وهناك ملف آخر هنا https://github.com/team-moeller/better-access-pivottable جميل ان يتم الاطلاع عليه ايضا). تواصلت مع اخي الاستاذ @أبو إبراهيم الغامدي لكي ينظر في الملف وطريقة عمله ، فما شاء الله عليه امدّني بملف اسمه Web Charts.zip وهو برنامج مختصر ومبسّط للملف الآخر ، وهذه احدى صور رسومات البيانات منه: . واتمنى على اخي أبو إبراهيم ان يجعل برنامجه يقبل تغيير انواع الرسومات البيانية كما في البرنامج الآخر 🙂 ميزات الموضوع: فتح باب جديد لطريقة عمل/عرض الاكسس وربطه مع ميزات حديثة من الانترنت . عيوب الموضوع: يجب ان تعرف مكان وجود هذه الشفرات في الانترنت ، وتعرف كيفية استعمالها ، وتتعلم كيف تربطها بالاكسس ، لا تتوقع الحصول على مساعدة من منتدى الاكسس لحل مشكلتك ، فنحن لا نفهم لغة الجافا او HTML . جعفر Better-Access_Charts.accdb.zip Web Charts.zip
-
وعليكم السلام 🙂 السطر المسؤول عن النقل (او اعادة التسمية مع النقل) هو Name OFN.lpstrFile As Me.Image_Path . وللنسخ استعمل : FileCopy OFN.lpstrFile , Me.Image_Path جعفر
-
اذا طريقة اخي احمد لم تعطك النتيجة الصحيحة ، جرب هذا الكود: iif(len([tmmg1] & "")=0,0,[tmmg1]) + iif(len([tmmg] & "")=0,0,[tmmg]) جعفر
-
وعليكم السلام 🙂 استعمل الامر Nz ، لتحويل الفراغ الى صفر ، ويتم الجمع هكذا: في المثال ، ABC هو اسم الحقل المطلوب جمعه : = Sum(Nz([ABC],0)) جعفر
-
لاحظت ان الكود يستعمل الامر Right ، فقد يكون هو المشكلة ، استعمل كود آخر ، او جرب : https://www.devhut.net/access-color-picker/ https://www.devhut.net/ms-access-sample-colors/ جعفر
-
ظهور رسالة أو حقل عند تمرير الماوس على حقل معين
jjafferr replied to hougar's topic in قسم الأكسيس Access
-
في الجدول ، تأكد بأنك تستخدم نوع النص Plain Text وفي اعتقادي بأن هذه النصوص اللي تتكلم عنها ، صار لها هذا الشيء بالخطأ بسبب التجارب ، وتم حفظ هذه النتائج الى الجدول مرة اخرى. لذا يجب على المبرمج التأكد من هذه النقطة في البرمجة 🙂 بالنسبة لي ، السببين مرفوضين ، ويجب على البرنامج ان يعمل عليها جميعا ، نقطة وانتهى السطر. للعلم ، المشكلة ليست في برمجة اخي حمدي ، وانما هي في الاكواد اللي حصل عليها من الانترنت واللي تقوم بعمل تغيير قيم الالوان. جعفر
-
السلام عليكم 🙂 انا طرف ثالث ، شو تريدون اجرب ؟ جعفر
-
بناء قاعدة بيانات عهدة أجهزة من الصفر(الجداول)
jjafferr replied to samisalim's topic in قسم الأكسيس Access
بالبحث والاستكشاف لساعات ، ياما نلتفت ، واذا بعمود الفجر قد ظهر 🙂 جعفر -
بناء قاعدة بيانات عهدة أجهزة من الصفر(الجداول)
jjafferr replied to samisalim's topic in قسم الأكسيس Access
السلام عليكم 🙂 اخوي ابوخليل ، الله يعطيك الصحة والعافية ، شغل جميل وخفيف 🙂 اخوي سامي ، طبعا هذه ملاحظات عامة ، واهميتها هي لتسريع عمل البرنامج ، وتجنب الاخطاء 🙂 تركت ملاحظتي سابقا والآن الى التفاصيل من واقع مرفقك في مشاركتك الاخيرة اعلاه ، وبدون ترتيب: الكود : 1. كل مكان عندك الامر Dcount ، مثل DCount("aaa","ttt") او DCount("aaa","ttt","ccc="& ddd) ، احذف aaa واستعمل النجمة * ، يعني Dcount("*","ttt") هذا يعطيك نفس النتيجة ، ولكنه اسرع ، لأنه يطلب عدد السجلات دون ان يعمل فرز لإسم الحقل وحساب عدد سجلاته. 2. كل مكان عندك الامر DCount("aaa","ttt","ccc="& ddd) ، الحقل ccc يجب ان يكون مفرس في الجدول (تسمح بالتكرار او لا ، يعتمد على دور الحقل في الجدول) ، وهذا ينطبق على الاوامر Dlookup و Dmax وووو ، فالمثال التالي ، الحقل ename يجب ان يكون مفهرس DCount("ename", "tblUsersName", "[ename]= '" & Trim(Me.ename) & "'") 3. في كل مكان في الكود ، اذا كنت ستستخدم اسم احد حقول النموذج ، فاستخدم كلمة .Me او !Me قبل الاسم ، حتى بعد سنين لما ترجع للكود ، تعرف ان هذا ليس متغير وانما هو اسم حقل. 4. في راس كل صفحة الكود استخدم السطرين Option Compare Database Option Explicit حتى تضطر ان تصرح عن المتغير المستعمل عن طريق Dim ، حتى يعمل الكود بطريقة اسرع ، وانت تعرف نوع المتغير وتعرف مكان الخطأ. 5. عند كتابة الكود ، وبين كل فترة واخرى استعمل Debug>Compile ، حتى ترى اذا كان الكود فيه اخطاء (انا عملت اختصار له في القائمة) ، انظر احد الاخطاء الموجود عندك مثلا: . 6. من الجميل عمل تنسيق الكود ، حتى تعرف من رؤيته ، بداية ونهاية الحلقات ، مثلا ، بدلا عن Private Sub cmdremove_Click() If MsgBox("هل تريد حذف السجل?", _ vbExclamation + vbOKCancel, _ "warning") = vbOK Then Me.deleteBox = True Else Exit Sub End If Me.Requery End Sub اكتب Private Sub cmdremove_Click() If MsgBox("هل تريد حذف السجل?", _ vbExclamation + vbOKCancel, _ "warning") = vbOK Then Me.deleteBox = True Else Exit Sub End If Me.Requery End Sub 7. اختصر الكلمات الطويلة ، حتى تستطيع ان تقرأها بسهولة : فبدلا عن Forms!frmdevDetails!frmDetails!userType.Enabled = False Forms!frmdevDetails!frmDetails!users.Enabled = False Forms!frmdevDetails!frmDetails!receiveDate.Enabled = False Forms!frmdevDetails!frmDetails!idOffice.Enabled = False Forms!frmdevDetails!frmDetails!dateHireEnd.Enabled = False Forms!frmdevDetails!frmDetails!returnDate.Enabled = True استخدم with Forms!frmdevDetails!frmDetails !userType.Enabled = False !users.Enabled = False !receiveDate.Enabled = False !idOffice.Enabled = False !dateHireEnd.Enabled = False !returnDate.Enabled = True end with وبدلا عن Private Sub zerClose_Click() If IsNull(Forms!frmdevDetails!frmDetails!receiveDate) And Not IsNull(Forms!frmdevDetails!frmDetails!users) Then MsgBox "لطفاً أدخل تاريخ التسليم" ElseIf Forms!frmdevDetails!frmDetails!userType = 4 And IsNull(Forms!frmdevDetails!frmDetails!dateHireEnd) Then MsgBox "لطفاً أدخل تاريخ نهايةالإعارة" ElseIf IsNull(Forms!frmdevDetails!frmDetails!userType) And Not IsNull(Forms!frmdevDetails!frmDetails!receiveDate) Then MsgBox "لطفاً أدخل نوع المستخدم" ElseIf IsNull(Forms!frmdevDetails!frmDetails!users) And Not IsNull(Forms!frmdevDetails!frmDetails!receiveDate) Then MsgBox "لطفاً أدخل المستخدم" Exit Sub Else DoCmd.Close End If End Sub استخدم Private Sub zerClose_Click() with Forms!frmdevDetails!frmDetails If IsNull(!receiveDate) And Not IsNull(!users) Then MsgBox "لطفاً أدخل تاريخ التسليم" ElseIf !userType = 4 And IsNull(!dateHireEnd) Then MsgBox "لطفاً أدخل تاريخ نهايةالإعارة" ElseIf IsNull(!userType) And Not IsNull(!receiveDate) Then MsgBox "لطفاً أدخل نوع المستخدم" ElseIf IsNull(!users) And Not IsNull(!receiveDate) Then MsgBox "لطفاً أدخل المستخدم" Exit Sub Else DoCmd.Close End If end with End sub 8. لا تستعمل الكلمات المحجوزة للأكسس في تسمية اي كائنات او متغيرات ، واذا اضطررت ان تستعملها: مثلا: لا تستعمل Me.section ، وانما استعمل Me![section] الاستعلامات : 9. كل مرة نستخدم معيار او فرز ، وفي اي مكان في البرنامج ، يجب فهرست الحقل ، مثل : . وحتى في مربع القائمة المنسدلة : . الحقل UsrType يجب ان يكون مفهرس . 10. لما تربط النموذج الرئيسي بالنموذج الفرعي ، فيجب ان يكون بينهما علاقة ، وكلا الحقلين يجب ان يكونا مفهرسين : . 11. الصور في البرنامج ، ولحفظ حجم البرنامج صغيرا ، يجب ان تكون الصور موجودة في مجلد في الكمبيوتر ، وليست في الجداول ولا مضمنه في النماذج والتقارير ، وانا استعمل المجلدات بهذه الطريقة ، فحتى لما تنقلها لكمبيوتر آخر ، كل شيء يشتغل بدون مشاكل: . وقد عملت نسخة من الصور الثلاث الموجودة في التقارير ، ووضعتها في المجلد images ، وفي التقارير ، تعمل تغيير في الاعدادات ، بدلا عن Embedded ، نعملها Linked : . حجم ملفك الاصل بعد الضغط والاصلاح: . ثم لربط الصور بالتقارير ، انظر الصور موجودة في اي قسم من التقرير ، وهنا نرى انها في رأس التقرير Report Header ، فنستخدم حدث "عند التنسيق" لهذا القسم: انقر على الخط المكتوب عليه Report Header ، ثم استعمل حدث "عند التنسيق" ، والكود سيكون : Private Sub ReportHeaderSection_Format(Cancel As Integer, FormatCount As Integer) On Error GoTo err_ReportHeaderSection_Format Me.img_Ministry_of_Education.Picture = Application.CurrentProject.Path & "\images\Ministry_of_Education.jpg" Me.img_Oman_Vision_2040.Picture = Application.CurrentProject.Path & "\images\Oman_Vision_2040.jpg" Me.img_Quality_Management_System.Picture = Application.CurrentProject.Path & "\images\Quality_Management_System.jpg" Exit_ReportHeaderSection_Format: Exit Sub err_ReportHeaderSection_Format: If Err.Number = 2220 Then 'image not found Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description Resume Exit_ReportHeaderSection_Format End If End Sub . عليه اصبح حجم الملف ، حوالي النصف : . 12. لما تكون عندك علاقة في الاستعلام بين الجداول ، بهذه الطريقة مثلا : . ففعلا انت محتاج الى عمل علاقة بين الجداول (خارج الاستعلام) ، والتي ستجبرك على عمل فهرسة مسبقا لحقل من جانب واحد ، او عمل فهرسة للجانبين ، بمعنى: اذا عملت فهرسة لحقل في جدول واحد ، ثم عملت علاقة بين هذا الحقل A وحقل B في جدول آخر ، فيمكنك ان لا تفهرس الحقل B في الجدول ، لأن العلاقة تلقائيا تجعله مفهرسا ، والاكسس يفهم هذا. بعض الملاحظات اعلاه تقدر تقوم بها مباشرة الآن ، ولكن لا تعمل العلاقات إلا بعد ان يعطيك اخوي ابوخليل الضوء الاخضر 🙂 جعفر -
وعليكم السلام 🙂 لاحظ هذا المثال: استعملنا اسم الحقل الذي في النموذج ، ولم نستخدم اسم الحقل "مصدر المعلومات" . . بينما كان يجب ان نستخدم اسم الحقل "مصدر المعلومات" . جعفر