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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

كل منشورات العضو jjafferr

  1. السلام عليكم 🙂 البارحة ، سؤالك كان يوجه تفكيري في اتجاه معين ، فعليه كان جوابي ، ولكن هناك طريقتين اتت على بالي اردت ان اوضحهم لك: 1. الآن عندك 3 طرق للبحث ، نموذجين وتقرير : 2. النموذج الاول ، وهو الذي ارفقه البارحة: لما تنقر على اي سجل ، سترى ان الكلمة التي تبحث عنها والمؤشرة باللون الاحمر ، اصبحت في منتصف السجل ، ويمكنك قراءة السطر ، 3. النموذج الثاني: يخبرك عدد كلمات البحث في السجل ، ويقوم بتضليل الكلمة ، وبالاسهم ، تستطيع الذهاب الى الكلمة التالية ، ويتم تضليلها : . 4. التقرير: بصيغة عرض التعيين: ويعرض السجل كاملا ، بلون كلمة البحث: . جعفر تلوين2.zip
  2. وعليكم السلام 🙂 لوسمحت ترفق برنامجك علشان نعدل عليه 🙂 جعفر
  3. يجب استعمال دالة التاريخ Dim myWhere As String myWhere = "[FirstName] ='" & [txtFirstName] & "'" myWhere = myWhere & " And " myWhere = myWhere & "[LastName] ='" & [txtLastName] & "'" myWhere = myWhere & " And " 'myWhere = myWhere & "[DateOfBirth]=#" & Format([txtDateOfBirth], "dd/mm/yyyy") & "#" myWhere = myWhere & "[DateOfBirth] =" & DateFormat([txtDateOfBirth]) myWhere = myWhere & " And " myWhere = myWhere & "[SIR]= " & [ChckSIR] Debug.Print myWhere Me.txtCount = DCount("*", "[tblTestCount]", myWhere) Function DateFormat(varDate As Variant) As String 'Purpose: Return a delimited string in the date format used natively by JET SQL. 'Argument: A date/time value. 'Note: Returns just the date format if the argument has no time component, ' or a date/time format if it does. 'Author: Allen Browne. allen@allenbrowne.com, June 2006. ' 'calling the Function: DateFormat(The_Date_Field) 'a = dlookup("[some field]","some table","[id]=" & me.id & " And [Date_Field]=" & DateFormat(The_Date_Field)) ' If IsDate(varDate) Then If DateValue(varDate) = varDate Then DateFormat = Format$(varDate, "\#mm\/dd\/yyyy\#") Else DateFormat = Format$(varDate, "\#mm\/dd\/yyyy hh\:nn\:ss\#") End If End If End Function جعفر
  4. وعليكم السلام 🙂 كود جدا جميل ، وجدا عملي 🙂 محتاج ترك مسافة بعد كل And : وقد تحتاج الى استعمال الدالة التالية للتاريخ (صدقني انها انقذتني مرات ومرات) : جعفر
  5. على راسي🙆‍♂️
  6. وهنا انا عملت مثال لنفس الغرض الذي اردته انت ، ولكن بشكل اوسع ، ولنموذج فرعي 🙂 جعفر
  7. حياك الله 🙂 في الواقع فيه حيله للعمل بالطريقة التي تريدها واللي عملها اخونا ناقل مشكورا 🙂 الطريقة هي ان يكون عندك جدول محلّي على كمبيوتر المستخدمين فيه حقل بيانات مربع القائمة Listbox ، ويأخذ مربع القائمة بياناته منه ، ويكون هذا الحقل مفهرس في الجدول ، وكلما فتح المستخدم البرنامج ، تحذف بيانات الجدول المحلي وتعمل نسخ/الحاق للبيانات من جدول الشبكة الى هذا الجدول المحلّي 🙂 ولوسمحت تفتح موضوع جديد لإهتزاز النموذج ، واعطنا اكبر كمية من التفاصيل 🙂 جعفر
  8. السلام عليكم 🙂 نصيحة ، اذا كان مصدر البيانات في شبكة ، فسيكون هذا العمل جدا بطيء ، لأنك تنادي البيانات من الجداول على كل نقرة !! وسيكون الحل ، بأن تكتب الكلمة التي تريدها ، ثم تعمل تصفية ، سواء عن طريق "حدث بعد التحديث" للحقل ، او عمل زر "البحث" 🙂 وفي كل الاحوال ، يجب ان يكون هذا الحقل مُفهرس في الجدول ، وتقوم بعملية ضغط واصلاح حتى تتم عملية الفهرسة 🙂 جعفر
  9. انزلت المرفق ، ونزل بدون مشاكل ، وما كان فيه شيء ، مجرد ان المتصفح يقوم بتحذيرك من ان المرفق قد يكون به مشاكل امنية !! جعفر
  10. ممكن تخبرنا شو عملت ، وبالتفصيل لوسمحت. جعفر
  11. وعليكم السلام 🙂 نعم تطلع هذه الرسالة ، اذا اشتغل البرنامج عند المستخدم من مجلد غير موثوق به ، فكل اللي عليهم عمله ، ولمرة واحدة فقط ، هو ، النقر على زر "تمكين المحتوى" الموجود في الخط الاصفر في اعلى الشاشة ، او يمكنك استعمال هذه الطريقة : جعفر
  12. السلام عليكم 🙂 في الاكسس ، السجلات التي ليس عليها التركيز ، تبدأ البيانات التي بها من اول سطر في الحقل ، ومن اول موقع (على اليمين او اليسار ، يعتمد على اتجاه الحقل) ، فعلشان نرفع بيانات الحقل ، يمكنك وضع هذا الكود على "حدث الحالي" للنموذج Find1 : Me.nassx.SetFocus Me.nassx.SelStart = InStr(Me.nassx, Forms!Book!tx1) - Len("<font color=red>") فلما تنقر على اي سجل ، سترى ان الكلمة التي تبحث عنها والمؤشرة باللون الاحمر ، اصبحت في منتصف السجل ، ويمكنك قراءة السطر (كما هي في الصورة التي ارفقتها انت). حاولت ان اتحكم في السجل الاول عند فتح النموذج ، ولكني للاسف لم افلح 😞 جعفر
  13. اذا وضعت البرنامج على الشبكة حتى يستخدمه اكثر من مستخدم ، فيجب تفكيك البرنامج الى: 1. اعمل نسختين من البرنامج: نسخة تضعها في مجلد المشاركة ، وستكون للجداول ، نسخة على كمبيوتر كل مستخدم ، وستكون للواجهة. 2. الجداول: افتح البرنامج ، واحذف جميع الكائنات ، ماعدا الجداول ، احفظ البرنامج ، ثم ضغط واصلاح ، 3. الواجهة: ولا تكون في مجلد المشاركة ، وانما على كمبيوتر كل مستخدم ، والواجهة عبارة عن جميع كائنات الاكسس ماعدا الجداول ، وتربط الجداول بالواجهة ، ثم تجعل نسخة منها على كمبيوتر كل مستخدم ، احفظ البرنامج ، ثم ضغط واصلاح. جعفر
  14. اخي @capitala 🙂 رجاء اختيار افضل اجابة ، كما موضح في الدوائر الحمراء في الصورة ادناه:
  15. طيب والاجابة عن السؤال الاول والثاني ؟
  16. في الكود لا يوجد عندنا كائنات ، وانما: اسماء الكائنات في النموذج (مثل Me.ID) او التقرير او الجدول او الاستعلام ، وفهرسة هذه الكائنات تأتي/تُورّث من الجداول ، وينطبق عليها المادة #3 ، اوامر (مثل Docmd او Len او Split او Dlookup او ....) ، وهذه لا تفهرس ، اسماء المتغيرات ، وهذا ما تنطبق عليه المادة #4 ، وجميعها يُفهرس. بالنسبة الى برمجة الاكواد ، فأفضل طريقة لتعلمها ، هي حل المشكلة على ورقة ، سطر تحت آخر ، وبالتفصيل ، ثم تعطي كل كلمة/جملة اسم متغير (واحترافيا ، يجب ان يكون هذا الاسم يدل على نوع المتغير ، مثل User_ID ، وليس U فقط) ، ويجب ان تحصل على نفس النتائج كما كتبتها باليد 🙂 واما عن الاوامر ، فقد قام الاستاذ @صالح حمادي بجهد مميز في هذا الموضوع: جعفر
  17. وعليكم السلام 🙂 المبتدئ: يريد ان يعمل برنامج ، ويشتغل البرنامج حسب المطلوب ، المحترف: يريد ان يعمل برنامج ، ويشتغل البرنامج حسب المطلوب ، ثم تركيزه يصب على سرعة عمل البرنامج: تجربة قاعدة البيانات على ما لا يقل عن 10,000 سجل ، عمل العلاقات بين الجداول ، عمل فهرسة الحقول في الجداول ، وذلك بفهرسة جميع الحقول التي نعمل لها فرز او تصفية ، في اي مكان في قاعدة البيانات ، عمل فهرسة لجميع المتغيرات في محرر الاكواد ، بإستخدام Dim او Private او ... لهذه المتغيرات ، وافضل طريقة لإجبار المستخدم على العمل بها ، هو إضافة السطر الثاني: Option Explicit (طبعا بالاضافة الى السطر الاول) ، استعمال الاستعلام العادي بدلا عن استعلام الكود ، الاستفادة من وجود البيانات في النموذج ، وعمل المطلوب بها ، بدل ان يطلب البيانات مرة اخرى من الجداول بأوامر مثل Dlookup واخواتها ، وذلك لتقليل الضغط على الشبكة ، عدم استعمال الاوامر Dlookup واخواتها في الاستعلام ، إلا في حالات جدا نادرة ، واكيد اني نسيت ملاحظات اخرى 🙂 فالرد على سؤالك هو النقطة 4 🙂 جعفر
  18. تفضل : تحت كل مشاركة ، هناك سطر يمكنك النقر عليه "إختر كأفضل إجابة" (وكما هو موضح في الصورة التاليه بالدوائر الحمراء) : جعفر
  19. السلام عليكم 🙂 رجاء توضيح طلبك ، وبمثال لوسمحت 🙂 جعفر
  20. السلام عليكم 🙂 اخي الفاضل @السبيل1 ، رجاء اختيار مشاركة اخونا ناقل كأفصل إجابة ، حيث تمت الاجابة على السؤال 🙂 جعفر
  21. السلام عليكم 🙂 كان هذا لصيغة mdb ، وليس لصيغة accdb 🙂 كلامي عن البرنامج وليس محرر الاكواد. وبالاضافة الى شرح اخوي ابوجودي واخوي ناقل ، هذه احد طرق الحماية: جعفر
  22. السلام عليكم 🙂 ومتابع 🙂 جعفر
  23. السلام عليكم 🙂 جواب اخوي الدكتور حسين يأتي من رؤيته للاشكال في كل صورة ، وحسب رقم الصور 🙂 ولكن ، اذا اعدت تسمية المرفقات بأرقام او اسماء اخرى ، فهنا نحتاج الى طريقة ثابته لتأخذ جميع الاحتمالات ، اسماء اشكال وفواكه وبلدان وووووو ، فأحد الطرق ان يكون اسم الملف هو يشرح محتواه ، ولكن الطريقة الاصح هي ان تضيف معلومات اضافية في MetaData الصورة (البيانات الوصفية) عن طريق البيانات في EXIF الصورة ، في احد الحقول ، مثل tag ، ويمكنك رؤية وتغيير هذه البيانات عن طريق: متصفح الملفات ، ثم تنقر على ملف الصورة بالزر اليمين ، ثم تفاصيل ، ثم تفاصيل : . وهذه الاضافات يمكنك اضافتها في جميع انواع ملفات الصور (jpg , bmp , tiff ...) ، ماعدا صيغة png القديمة. وتستطيع استعمال كود لقراءة هذه البيانات ، مثل: https://docs.microsoft.com/en-us/previous-versions/tn-archive/ee176615(v=technet.10)?redirectedfrom=MSDN او https://www.devhut.net/get-image-exif-properties-using-vba-and-powershell/ جعفر
  24. السلام عليكم 🙂 الجواب المختصر ، لا يمكنك توسيط عنوان النموذج ، في الشريط اعلى النموذج. نظرياً ، هذا الشريط يقبل 2048 حرفا فقط ، وهذا لا يُمثل عرض النموذج ، وعملياً ، لم يأخذ اكثر من 127 حرفا ، اما الاحرف الباقية فهي تختفي 😥 جعفر
×
×
  • اضف...

Important Information