-
Posts
1,925 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
2
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو محمد احمد لطفى
-
عند إخفاء مكونات قاعدة البيانات يظهر خطأ برمجي
محمد احمد لطفى replied to abofayez1's topic in قسم الأكسيس Access
طب جرب Dim db As Database Set db = CurrentDb() او ارفق مثال صغير للعمل عليه بالتوفيق -
استعلام تغيير و تحديث من خلال جدول ( 2 )
محمد احمد لطفى replied to محمد احمد لطفى's topic in قسم الأكسيس Access
استاذى @kanory بفضل الله ثم بفضل حضرتك وجدت الحل عن طريق ثلاثة استعلامات تحديث 1 - تم تحديث النشاط مباشرة بدالة FnSearch بعد أن تم تغييرها الى likeA و ليس likeB اى ما سيتم نقله هو likeA . 2 - تم مسح النشاط من حقل namex Replace([TableX].[NameX],[LikeA],"""");" 3 - تم تحديث النشاط الى LikeB اذا كان هناك شيىء خاطىء أو لم انتبه اليه يرجى اعلامى وجزاكم الله كل خير قد لمعت عيناه Replace&add Final.mdb -
استعلام تغيير و تحديث من خلال جدول ( 2 )
محمد احمد لطفى replied to محمد احمد لطفى's topic in قسم الأكسيس Access
أستاذى @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 -
تفضل بالتوفيق #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
-
استعلام تغيير و تحديث من خلال جدول ( 2 )
محمد احمد لطفى replied to محمد احمد لطفى's topic in قسم الأكسيس Access
أستاذى @kanory بالفعل تم اضافة نشاط للطوب الطفلى و نقل طوب الطفلى و تم جعل حقل likea = likeb للطوب الطفلى = للطوب الطفلى و نقل بالفعل للطوب الطفلى و مسح للطوب الطفلى من الاسم و المفترض مسح الاسم (namex) likea و ليس likeb و مازلات بعض الانشطة لم يتم مسحها من namex و نقلها خطا او جزء منها حتى بعد اضافتها للمرة الثانية فى جدول الانشطة تعديل لا حظت أن الاستعلام qy_kan مخطىء بعض الانشطة لا يجلبها كاملة الصورة الثانية Replace&add.rar -
استعلام تغيير و تحديث من خلال جدول ( 2 )
محمد احمد لطفى replied to محمد احمد لطفى's topic in قسم الأكسيس Access
أستاذى @kanory ربنا ريباركلك و يحفظك المشكلة الثانية انه بمراجعة الاستعلام qy_kan كل شيء تمام أما بخصوص الاستعلام 1 التنفيذ هناك بعض الانشطة تنقل خطأ ومرفق ملف اكسس و ملف اكسل به الانشطة الخطا حيث namex لا يمسح بعض الحروف و الكلمات kinedx لا ينقل بطريقة صحيحة او ينقل جزء من الكلام Replace&add.rar -
استعلام تغيير و تحديث من خلال جدول ( 2 )
محمد احمد لطفى replied to محمد احمد لطفى's topic in قسم الأكسيس Access
جزاك الله كل خير استاذى @kanory جارى التجربة -
استعلام تغيير و تحديث من خلال جدول ( 2 )
محمد احمد لطفى replied to محمد احمد لطفى's topic in قسم الأكسيس Access
أستاذى @ابو البشر جاب عدد السجلات الصحيح و لكنى أصبح بطىء جدا -
ويمكن الاختصار الى 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
-
استعلام تغيير و تحديث من خلال جدول ( 2 )
محمد احمد لطفى replied to محمد احمد لطفى's topic in قسم الأكسيس Access
تحديث تم اضافة 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 ولا يكرر حيث التكرار بسبب النشاط المتكرر -
استعلام تغيير و تحديث من خلال جدول ( 2 )
محمد احمد لطفى replied to محمد احمد لطفى's topic in قسم الأكسيس Access
أكرر هذا الاستعلام هو من يبطىء العمل كيف يمكن تغييره و يصبح اسرع متابع 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)<>"")); -
شكراُ أستاذ @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 وجارى مشاهدة الملف المرفق
-
فى هذا الموضوع أريد أن اعرف اخر تاريخ لقاعدة البيانات على الشبكة هو نفسه اخر تاريخ لملفى حاولت و لكن لم اصل بالطريقة السهلة 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 المطلوب تشغيل الطريقة الاولى أو هل هناك طريقة أخرى وهذا لهدف فى حالة أنهم غير متطابقين أقوم بحذف الجداول القديمة و نقل الجديدة وجزاكم الله كل خير
-
استعلام تغيير و تحديث من خلال جدول ( 2 )
محمد احمد لطفى replied to محمد احمد لطفى's topic in قسم الأكسيس Access
أعتقد أن هذا الاستعلام هو من يبطىء العمل 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)<>""));