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

محمد احمد لطفى

الخبراء
  • Posts

    1,899
  • تاريخ الانضمام

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

  • Days Won

    2

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

  1. استاذى @kanory بفضل الله ثم بفضل حضرتك وجدت الحل عن طريق ثلاثة استعلامات تحديث 1 - تم تحديث النشاط مباشرة بدالة FnSearch بعد أن تم تغييرها الى likeA و ليس likeB اى ما سيتم نقله هو likeA . 2 - تم مسح النشاط من حقل namex Replace([TableX].[NameX],[LikeA],"""");" 3 - تم تحديث النشاط الى LikeB اذا كان هناك شيىء خاطىء أو لم انتبه اليه يرجى اعلامى وجزاكم الله كل خير قد لمعت عيناه Replace&add Final.mdb
  2. أستاذى @kanory ما اقصده أن نشاط للطوب الطفلى موجود بالفعل فى حقل likea وقمت ايضا بكتابته فى likeb و تم مسح للطوب الطفلى من حقل namex حاليا قمت باضافة If Nz(DLookup("LikeA", "KindX", "LikeA='" & Trim(Arr(i)) & " " & Trim(Arr(i + 1)) & " " & Trim(Arr(i + 2)) & " " & Trim(Arr(i + 3)) & " " & Trim(Arr(i + 4)) & " " & Trim(Arr(i + 5)) & " " & Trim(Arr(i + 6)) & " " & Trim(Arr(i + 7)) & "'"), 0) <> 0 Then FnSearch = DLookup("LikeB", "KindX", "LikeA='" & Trim(Arr(i)) & " " & Trim(Arr(i + 1)) & " " & Trim(Arr(i + 2)) & " " & Trim(Arr(i + 3)) & " " & Trim(Arr(i + 4)) & " " & Trim(Arr(i + 5)) & " " & Trim(Arr(i + 6)) & " " & Trim(Arr(i + 7)) & "'") Exit For ElseIf Nz(DLookup("LikeA", "KindX", "LikeA='" & Trim(Arr(i)) & " " & Trim(Arr(i + 1)) & " " & Trim(Arr(i + 2)) & " " & Trim(Arr(i + 3)) & " " & Trim(Arr(i + 4)) & " " & Trim(Arr(i + 5)) & " " & Trim(Arr(i + 6)) & "'"), 0) <> 0 Then FnSearch = DLookup("LikeB", "KindX", "LikeA='" & Trim(Arr(i)) & " " & Trim(Arr(i + 1)) & " " & Trim(Arr(i + 2)) & " " & Trim(Arr(i + 3)) & " " & Trim(Arr(i + 4)) & " " & Trim(Arr(i + 5)) & " " & Trim(Arr(i + 6)) & "'") Exit For فتم تصحيح جزء من الخطأ فى الصورة 1 ( هذه الصورة قبل اضافة الكود بالاعلى ) وتبقى جزء صغير فى الصورة 2 Replace&add.rar
  3. استخدم برنامج ventoy بسيط وسهل هناك فيديوهات شرح للبرنامح عربى على اليوتيوب بالتوفيق
  4. تفضل بالتوفيق #If VBA7 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) #End If Sub TestSleep() ' انتظار لمدة 1000 مللي ثانية (واحدة ثانية) Sleep 1000 End Sub
  5. أستاذى @kanory بالفعل تم اضافة نشاط للطوب الطفلى و نقل طوب الطفلى و تم جعل حقل likea = likeb للطوب الطفلى = للطوب الطفلى و نقل بالفعل للطوب الطفلى و مسح للطوب الطفلى من الاسم و المفترض مسح الاسم (namex) likea و ليس likeb و مازلات بعض الانشطة لم يتم مسحها من namex و نقلها خطا او جزء منها حتى بعد اضافتها للمرة الثانية فى جدول الانشطة تعديل لا حظت أن الاستعلام qy_kan مخطىء بعض الانشطة لا يجلبها كاملة الصورة الثانية Replace&add.rar
  6. أستاذى @kanory ربنا ريباركلك و يحفظك المشكلة الثانية انه بمراجعة الاستعلام qy_kan كل شيء تمام أما بخصوص الاستعلام 1 التنفيذ هناك بعض الانشطة تنقل خطأ ومرفق ملف اكسس و ملف اكسل به الانشطة الخطا حيث namex لا يمسح بعض الحروف و الكلمات kinedx لا ينقل بطريقة صحيحة او ينقل جزء من الكلام Replace&add.rar
  7. لمنع ترك الحقل فارغ بالتوفيق If IsNull(Me.اسم_الحقل) Then MsgBox "يجب ملء حقل الاسم قبل الحفظ.", vbExclamation, "تحذير" Cancel = True ' إلغاء عملية التحديث End If او If Me.اسم_الحقل= "" Then MsgBox "يجب ملء حقل الاسم قبل الحفظ.", vbExclamation, "تحذير" Cancel = True ' إلغاء عملية التحديث End If
  8. أستاذى @ابو البشر جاب عدد السجلات الصحيح و لكنى أصبح بطىء جدا
  9. ويمكن الاختصار الى Dim dbExternal As DAO.Database ' افتح قاعدة البيانات الخارجية Set dbExternal = OpenDatabase("F:\21102023\Updatedata\البحث.accdb") If DMax("[datex]", "main1115") <> dbExternal.OpenRecordset("SELECT MAX(datex) AS MaxDate FROM main1115").Fields("MaxDate").Value Then call update End If ' أغلق قاعدة البيانات الخارجية dbExternal.Close
  10. ده بالنسبة للموبايل If DLookup("[mobile]", "[settings_general_tbl]", "-1") Then else End If If DLookup("[full_name]", "[settings_general_tbl]", "-1") Then else End If غير موبايل باى حقل تانى و اكتبى الشروط الى حضرتك عاوزها هل هذا هو المطلوب
  11. تحديث تم اضافة id لعدم تكرار السجلات فى استعلام التحديث ومازل هناك تكرار UPDATE TableX INNER JOIN (qy_kan LEFT JOIN KindX ON qy_kan.Expr2 = KindX.LikeB) ON TableX.id = qy_kan.id SET TableX.NameX = Replace([TableX].[NameX],[LikeA],""), TableX.KindX = [KindX].[LikeB] WHERE (((qy_kan.Expr2)<>"")); عدد السجلات المطلوب تحديثها 234 عدد سجلات استعلام التحديث السابق 10816 عدد سجلات استعلام التحديث الجديد 416 مازال هناك 182 متكرر طبعا ده سرع الامر من 10816 الى 416 كيف اجعل الاستعلام عدد السجلات الاصلى 234 ولا يكرر حيث التكرار بسبب النشاط المتكرر
  12. أكرر هذا الاستعلام هو من يبطىء العمل كيف يمكن تغييره و يصبح اسرع متابع UPDATE (TableX INNER JOIN qy_kan ON TableX.NameX = qy_kan.NameX) LEFT JOIN KindX ON qy_kan.Expr2 = KindX.LikeB SET TableX.NameX = Replace([TableX].[NameX],[LikeA],""), TableX.KindX = [KindX].[LikeB] WHERE (((qy_kan.Expr2)<>""));
  13. شكراُ أستاذ @Moosak توصلت الى حل كل ما كنت أريده ان يتم التحديث بطريقة ألية بدون التدخل من احد حيث أقوم بتحديث بعض الجداول فقط Dim strSQL As String, dbLocal As DAO.Database, dbExternal As DAO.Database, maxDateLocal As Date, maxDateExternal As Date ' افتح قاعدة البيانات المحلية Set dbLocal = CurrentDb() ' احصل على أقصى تاريخ للجدول المحلي maxDateLocal = dbLocal.OpenRecordset("SELECT MAX(datex) AS MaxDate FROM main1115").Fields("MaxDate").Value ' افتح قاعدة البيانات الخارجية Set dbExternal = OpenDatabase("\\10.12.20.125\Updatedata\البحث.accdb") ' احصل على أقصى تاريخ للجدول الخارجي maxDateExternal = dbExternal.OpenRecordset("SELECT MAX(datex) AS MaxDate FROM main1115").Fields("MaxDate").Value ' أغلق قاعدة البيانات الخارجية dbExternal.Close ' قارن بين القيمتين واتخذ الإجراء المناسب If maxDateLocal <> maxDateExternal Then ' غير متطابقين Call Update End If وجارى مشاهدة الملف المرفق
  14. اخر تاريخ DMax("[datex]", "main1115") يساوى اخر تاريخ F\\10.12.20.125\Updatedata\البحث.accdb فى جدول main1115 فى حقل datex
  15. الموضوع مختلف أنا عاوز اعرف لو اخر تاريخ غير متطابق التحديث يتم اليا عند فتح قاعدة البيانات الطريقة التانية شغالة بس لازم انقل الجدول و بعد التحديث احذف الجدول
  16. فى هذا الموضوع أريد أن اعرف اخر تاريخ لقاعدة البيانات على الشبكة هو نفسه اخر تاريخ لملفى حاولت و لكن لم اصل بالطريقة السهلة If DMax("[datex]", "main1115") = DMax("datex", "main1115", "\\10.12.20.125\Updatedata\main1115.accdb") Then و لكنه لم يعمل فقمت بعمل كود أخر يعمل DoCmd.TransferDatabase acImport, "Microsoft Access", _ "F\\10.12.20.125\Updatedata\البحث.accdb", acTable, "main1115", "main1116", False If DMax("[datex]", "main1115") = DMax("[datex]", "main1116") Then ' MsgBox "متطابقين" Else Call updatex ' MsgBox "غير متطابقين" End If المطلوب تشغيل الطريقة الاولى أو هل هناك طريقة أخرى وهذا لهدف فى حالة أنهم غير متطابقين أقوم بحذف الجداول القديمة و نقل الجديدة وجزاكم الله كل خير
  17. أعتقد أن هذا الاستعلام هو من يبطىء العمل UPDATE (TableX INNER JOIN qy_kan ON TableX.NameX = qy_kan.NameX) LEFT JOIN KindX ON qy_kan.Expr2 = KindX.LikeB SET TableX.NameX = Replace([TableX].[NameX],[LikeA],""), TableX.KindX = [KindX].[LikeB] WHERE (((qy_kan.Expr2)<>""));
×
×
  • اضف...

Important Information