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

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

الخبراء
  • Posts

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

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

  • Days Won

    2

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

  1. طب جرب Dim db As Database Set db = CurrentDb() او ارفق مثال صغير للعمل عليه بالتوفيق
  2. استاذى @kanory بفضل الله ثم بفضل حضرتك وجدت الحل عن طريق ثلاثة استعلامات تحديث 1 - تم تحديث النشاط مباشرة بدالة FnSearch بعد أن تم تغييرها الى likeA و ليس likeB اى ما سيتم نقله هو likeA . 2 - تم مسح النشاط من حقل namex Replace([TableX].[NameX],[LikeA],"""");" 3 - تم تحديث النشاط الى LikeB اذا كان هناك شيىء خاطىء أو لم انتبه اليه يرجى اعلامى وجزاكم الله كل خير قد لمعت عيناه Replace&add Final.mdb
  3. أستاذى @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
  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. جزاك الله كل خير استاذى @kanory جارى التجربة
  8. لمنع ترك الحقل فارغ بالتوفيق If IsNull(Me.اسم_الحقل) Then MsgBox "يجب ملء حقل الاسم قبل الحفظ.", vbExclamation, "تحذير" Cancel = True ' إلغاء عملية التحديث End If او If Me.اسم_الحقل= "" Then MsgBox "يجب ملء حقل الاسم قبل الحفظ.", vbExclamation, "تحذير" Cancel = True ' إلغاء عملية التحديث End If
  9. أستاذى @ابو البشر جاب عدد السجلات الصحيح و لكنى أصبح بطىء جدا
  10. ويمكن الاختصار الى 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
  11. ده بالنسبة للموبايل If DLookup("[mobile]", "[settings_general_tbl]", "-1") Then else End If If DLookup("[full_name]", "[settings_general_tbl]", "-1") Then else End If غير موبايل باى حقل تانى و اكتبى الشروط الى حضرتك عاوزها هل هذا هو المطلوب
  12. لقد وجدت الحل بالفعل ووضعت عليها افضل اجابة شكرا يا معلمى
  13. جزاك الله خير أستاذى @Foksh هذا لجلب التاريخ من قاعدة أخرى
  14. تحديث تم اضافة 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 ولا يكرر حيث التكرار بسبب النشاط المتكرر
  15. أكرر هذا الاستعلام هو من يبطىء العمل كيف يمكن تغييره و يصبح اسرع متابع 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)<>""));
  16. شكراُ أستاذ @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 وجارى مشاهدة الملف المرفق
  17. اخر تاريخ DMax("[datex]", "main1115") يساوى اخر تاريخ F\\10.12.20.125\Updatedata\البحث.accdb فى جدول main1115 فى حقل datex
  18. الموضوع مختلف أنا عاوز اعرف لو اخر تاريخ غير متطابق التحديث يتم اليا عند فتح قاعدة البيانات الطريقة التانية شغالة بس لازم انقل الجدول و بعد التحديث احذف الجدول
  19. فى هذا الموضوع أريد أن اعرف اخر تاريخ لقاعدة البيانات على الشبكة هو نفسه اخر تاريخ لملفى حاولت و لكن لم اصل بالطريقة السهلة 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 المطلوب تشغيل الطريقة الاولى أو هل هناك طريقة أخرى وهذا لهدف فى حالة أنهم غير متطابقين أقوم بحذف الجداول القديمة و نقل الجديدة وجزاكم الله كل خير
  20. أعتقد أن هذا الاستعلام هو من يبطىء العمل 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