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

أحمد العيسى

03 عضو مميز
  • Posts

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

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

كل منشورات العضو أحمد العيسى

  1. تم التعديل على هذا الملف من مشاركة الأخ العزيز / عبدالله بشير عبدالله Private Sub Form_Open(Cancel As Integer) Dim tb As DAO.Recordset ' التأكد من استخدام DAO Recordset Dim Q As Integer Q = DCount("*", "tbl_Student1") If Q > 0 Then Set tb = CurrentDb.OpenRecordset("tbl_student1", dbOpenDynaset) tb.MoveFirst Else MsgBox ("لا يوجد سجلات لعرضها "), vbOKOnly + vbMsgBoxRight, "تنبيه" Exit Sub End If Do While tb.EOF = False tb.Edit ' وضع السجل في وضع التحرير tb.Fields("OnlyYou") = False ' تعديل قيمة الحقل tb.Update ' تحديث السجل في قاعدة البيانات tb.MoveNext ' الانتقال للسجل التالي Loop tb.Close ' إغلاق الكائن بعد الاستخدام Set tb = Nothing ' إلغاء الإشارة إلى الكائن End Sub وإلى الآن التجربة مع المثال تبشر بعمل شبه كامل لكن لماذا عملية البحث بطيئة جداً بهذا الشكل ؟؟؟ db2.mdb
  2. هل طلبي غير واضح ؟؟ مر تقريبا يوم كامل ، ولا يوجد رد سواء بالايجاب أو السلب ..
  3. ما زال المثال يحتاج إلى الكثير من التعديلات ، فمثلاً إذا حذفت كامل السجلات يقطع البرنامج مساره برسالة خطأ وقد استطعت التغلب على هذه الرسالة من خلال التعديل على الكود السابق Private Sub Form_Open(Cancel As Integer) Dim tb As DAO.Recordset Dim Q As Integer Q = DCount("*", "tbl_Student1") If Q > 0 Then Set tb = CurrentDb.OpenRecordset("tbl_student1", dbOpenDynaset) tb.MoveFirst Else MsgBox ("لا يوجد سجلات لعرضها "), vbOKOnly + vbMsgBoxRight, "تنبيه" Exit Sub End If Do While Not tb.EOF tb.Edit tb.Fields("OnlyYou") = False tb.Update tb.MoveNext Loop tb.Close Set tb = Nothing End Sub كذلك لى بعض الملاحظات على عملية الفلترة من خلال تلك الصور أدناه
  4. تمام حصل .. وأصلحت المكتبة المعطلة ( فى أكسس 2003 ) لكن ظهر خطأ آخر
  5. بارك الله فيك أخى موسى ، وأطال الله عمرك ونفع بك تعديلك فى المثال ممتاز للبحث ، والحذف للسجلات المختارة بعد البحث جربته على أكسس 2010 وجدته يعمل بكفاءة لكن عند تجربته على أكسس 2003 وهو الإفتراضى عندى كانت هناك بعض أخطاء التوافق فى المكتبات لكن الغريب عندما أردت إضافة تلك المكتبات وجدت الأمر References باهت ولا يمكن اختياره أما بخصوص كلمة Name لم أجد لها تأثير فى أكسس 2003 .. لكن جاري تغييرها فى أصل التطبيق تحسباً لعدم تسامح البرنامج فى مواضع أخرى لكلماته المحجوزة
  6. تمام كما أسلفت عدد السجلات يتجاوز ٤٠٠ سجل وبالبحث عن بدايات اسماء الحقول سوف يتقلص العدد الى ١٠ سجلات مثلا .. يمكن حينها اختيار ٣ سجلات منهم ، و يمكن حذفهم بالضغط على زر حذف المحدد ، وبالطبع يوجد رسالة تحذير من الحذف .. إذا أمكن هل هذا التعديل متاح ؟؟
  7. لا بأس .. مرة أخرى شكرا لك البحث الذي من طرفك يبحث عن أي حرف يحتوي عليه الحقل كله حتى ولو في اسم الجد !! في انتظار أخونا الجليل أبو خليل
  8. شكراً لك للأسف ليس هو المطلوب لا أريد نموذج فرعى ، كما أن كلمة name ليست كلمة محجوزة ولا تؤثر فى عمل المثال البحث لم يتم تلقائياً بالحرف الأول ثم الثانى ثم الثالث من كتابة كلمة البحث كما أريد كذلك بعد الاختيار لا يتم حذف السجلات من قاعدة البيانات ، واصبح المثال مهنجاً
  9. السلام عليكم هذا نموذج يحتوي على عدد كبير من الأسماء به حقل اختيار (نعم/لا) المطلوب تكرماً إضافة إمكانية البحث فى حقل الأسم بالحروف الأولى بحيث يجعل الاختيار سهلاً من خلال تقليص المعروض على النموذج دون اللجوء لتحريك الأسماء أعلى وأسفل من خلال مسطرة الإنزلاق وإذا تم حذف كل السجلات لا تخرج رسالة خطأ عقب هذا الحذف ( Debug ) مع جزيل الشكر مقدمأ db1.mdb
  10. وجدت " كود " كنت قد استخدمته فى برنامج أكسل ويعتبر متوافق 100% مع الطريقة التقليدية فى حساب الفرق بين تاريخين بوضعهما يدوياً اسفل بعضهما ويتم الطرح مباشرة أو بالإستلاف Function d_ay(Calculate As Date, birth As Date) As Integer If Day(Calculate) >= Day(birth) Then d_ay = Day(Calculate) - Day(birth) Else d_ay = Day(Calculate) + 30 - Day(birth) End If End Function Function m_on(Calculate As Date, birth As Date) As Integer If Day(Calculate) >= Day(birth) Then If Month(Calculate) >= Month(birth) Then m_on = Month(Calculate) - Month(birth) Else m_on = Month(Calculate) + 12 - Month(birth) End If Else If Month(Calculate) > Month(birth) Then m_on = Month(Calculate) - 1 - Month(birth) Else m_on = Month(Calculate) + 11 - Month(birth) End If End If End Function Function y_er(Calculate As Date, birth As Date) As Integer If Day(Calculate) >= Day(birth) Then If Month(Calculate) >= Month(birth) Then y_er = Year(Calculate) - Year(birth) Else y_er = Year(Calculate) - 1 - Year(birth) End If Else If Month(Calculate) > Month(birth) Then y_er = Year(Calculate) - Year(birth) Else y_er = Year(Calculate) - 1 - Year(birth) End If End If End Function
  11. شكراً على النصيحة لكن أأكد لك أن كل برامجى المصممة على أكسس 2000 وليست 2003 وحدها تعمل على كل الإصدارات التالية إنما كلامك _ أكيد _ أن كل البرامج المصممة على أكسس 2007 وما بعدها من المؤكد أنها لا تعمل على 2003
  12. السلام عليكم الكود التالى هو الذى أستخدمه لإيجاد الفرق بين تاريخ الميلاد وتاريخ اليوم ليخرج عمر الموظف باليوم والشهر والسنة كذلك يتم استخدامه لإيجاد الفرق بين تاريخ الإحالة للمعاش وتاريخ اليوم ليخرج الزمن المتبقى على الخروج باليوم والشهر والسنة لأننى أحياناً أجد فرق يوم بين استخدام هذا الكود وبين الحساب اليدوى كما تعودنا قديماً Function d_ay(Calculate As Date, birth As Date) As Integer Dim m_on As Integer m_on = DateDiff("m", birth, Calculate) d_ay = DateDiff("d", DateAdd("m", m_on, birth), Calculate) If d_ay < 0 Then m_on = m_on - 1 d_ay = DateDiff("d", DateAdd("m", m_on, birth), Calculate) End If End Function Function m_on(Calculate As Date, birth As Date) As Integer Dim d_ay As Integer m_on = DateDiff("m", birth, Calculate) d_ay = DateDiff("d", DateAdd("m", m_on, birth), Calculate) If d_ay < 0 Then m_on = m_on - 1 End If m_on = m_on Mod 12 End Function Function y_er(Calculate As Date, birth As Date) As Integer Dim m_on As Integer, d_ay As Integer m_on = DateDiff("m", birth, Calculate) d_ay = DateDiff("d", DateAdd("m", m_on, birth), Calculate) If d_ay < 0 Then m_on = m_on - 1 End If y_er = m_on \ 12 End Function مرفق ملف مختصر للملف الأصلى به الكود المراد التعقيب عليه db1.mdb
  13. أعلم ذلك لكن ما يخص تطبيق تم عمله ب أكسس 2003 (mdb ) لا يؤثر عند تشغيله على أكسس 2016 مثلاً ( accdb ) هل معنى ذلك أنه يجب عمل تطبيقان بنفس الوظيفة لكل منهما ؟
  14. لم يتفضل أحد بالرد ممكن أو غير ممكن !!!
  15. السلام عليكم أفضل دائماً العمل على أكسس 2003 ، لسهولة العمل فيه وربما لتعودى عليه ولا يوجد أى مشكلة فى عمل هذا التطبيق على كافة إصدارات الأكسس التالية له وفى قائمة شاشة بدء التشغيل لـ 2003 يمكن التحكم فى إخفاء أشرطة الأدوات وفى بداية تشغيل التطبيق فعلاً يتم إخفاء واجهة وأشرطة وقوائم أكسس 2003 لكن عند تشغيل نفس التطبيق على إصدار أكسس 2024 يعمل بكفاءة لكن مع ظهور القوائم الغير مطلوبة هل يوجد إجراء أو كود يمكن استخدامه يصلح لجميع الإصدارات من 2003 إلى 2024 لإخفاء واجهة الأكسس ؟
  16. ممكن لو تكرمت تعديل هذا المرفق ليعمل على أكسس 2003 "mdb" بجانب أى أكسس أعلى "accdb" .. وللنواتين 32 ، 64 بمعنى أن يكون تطبيق واحد شامل بمعنى الكلمة . مع الشكر مقدماً
  17. تمام كلا السطرين صحيحين وجدت الخطأ بعد فحص لكل عناصر الجدول المشكلة كانت فى قاعدة التحقق من الصحة بالجدول ، إذ أنها كانت "مستجد" Or "محول" Or "باق" Or "دمج" والمفترض أن يكون بها "منقول " ، أو الإستغناء عن كتابة شروط القاعدة بالجدول
  18. السلام عليكم فى الجدول حقل يحتوى على كلمة "مستجد" أو "باق" أو ... وأريد تغيير كل هذه الكلمات بهذا الحقل مرة واحدة إلى كلمة "منفول" هذا التكوين لا يلبى الطلب ، ما الخطأ فى الصورة التالية وحبذا لو وجدت عبار ة SQL تقوم بهذه الوظيفة مثل: DoCmd.RunSQL "UPDATE tbl_student1 SET tbl_student1.[Case] = ""منقول"";"
  19. جميل جداً هذا الـ "بريمج " حسب وصفك لكن أريد تصحيح كلمة للأخ figo82eg وحدات الكهرباء تقاس بالكيلو وات وليس بالأمتار !!!!
  20. السلام عليكم بالمرفقات تطبيق قديم بقوم بتفعيل ميزة الـ Shift أو تعطيلها ولكن فى ملفات أكسس 2003 المطلوب التعديل _إن أمكن_ ليشمل أيضاً ملفات "accdb" بجانب "mdb" هذه صورة البداية لعمله: وعند الضغط على زر "البحث فى قاعدة البيانات" يظهر هذا التحذير لكن لا يعطل باقى الخطوات فى هذه الشاشة يظهر اختيارك للملف الهدف ، ولكن دون التعرف عليه إن كان الشيفت مغلق أم لا بعد تحديد الاختيار والنقر على زر تفعيل الاختيار shiftCancel.mdb
  21. تمام إذن لا يوجد فى خصائص الـ List Box وكذلك الـ Queries ما يجعل محازاة معاينة الناتج العربى يميناً وذلك فى الواجهة الإنجليزية للأوفيس مهما كان إصداره ، وهذا غير مطلوب للطباعة .. فقط للمعاينة لكن الحمد لله أن هذا لا ينطبق على Text Box فى الـ Reports فمنه تكون الطباعة الاحترافية . إذن النصيحة مؤقتاً لمن يطلب رؤية عربية 100% أن يستخدم الواجهة العربية فى تطبيقات الأكسس
  22. شكراً أخى على ردك كما ذكرت _ أنا _ هذا الوصف لا يحدث إلا لو كان برنامج الأكسس بالواجهة الإنجليزية (بأى إصدار ) تغلبت على هذه المشكلة فى الــ Text Box بـ ( المحازاة يمين ) لكن فى الـ List Box لا توجد فى خصائصة (المحازاة يمين) علماً بأن عنصر الـ List Box مصدر محتوياته هو : SELECT DISTINCTROW Mid([Name],7) AS Expr1, MSysObjects.Type FROM MSysObjects WHERE (((MSysObjects.Type)=-32764 Or (MSysObjects.Type)=-32768) AND ((MSysObjects.Name) Like "تقرير1*")) ORDER BY MSysObjects.Name; أكتشفت أيضاً أن معاينة أى Queries به نفس المشكلة أى أن محازاة أى حقل به يكون من اليسار إلى اليمين "إجباريا"
  23. يبدو أن الرد سهلاً فى مربع النص إذ أنه فى تنسيق مربع النص يجب اختيار محازاة النص : يمين هذا عن مربع النص لكن فى "مربع قائمة" _ List Box _ لا يوجد هذا الاختيار ويظل كل المحتوى ناحية اليسار هل من حل فى"مربع قائمة"
  24. السلام عليكم فى الواجهة العربية لبرنامج أكسس لا توجد مشكلة فى ظهور محازاة النص داخل الحقل من اليمين لليسار لكن فى الواجهة الإنجليزية تجد أن المحازاة عكس ذلك كما هو واضح فى الصورة المطلوب تثبيت هذه المحازاة ( من اليمين لليسار ) سواء كانت الواجهة انجليزية أو عربية مع جزيل الشكر
×
×
  • اضف...

Important Information