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

لماذا هذا الكود يعطي رسالة خطأ


الردود الموصى بها

السلام عليكم ورحمة الله وبركاته

اخواني الكرام

عندي هذا الكود أريد من خلاله نقل تحديث بيانات الجدول الاول من بيانات الجدول الثاني باستخدام recordset لكن تظهر رسالة خطأ تقول انه لا يوجد سجل

        Set DB = CurrentDb
        Set RsW = DB.OpenRecordset("item") ' جدول الوجهة
        Set RsM = DB.OpenRecordset("tmpadvb") 'جدول المصدر
    Do Until RsM.BOF
    RsW.MoveFirst
        Do Until RsW.BOF

        If RsW!id = RsM!ItId Then
        
            RsW.Edit
            RsW!LastDate = RsM!ExDate
            RsW!Cost = RsM!Price
            RsW.Update
            Exit Do
            End If

        RsW.MoveNext

      Loop

    RsM.MoveNext
    Loop
    RsM.Close
    RsW.Close
    Set DB = Nothing

هذه هي رساله الخطا

2019-11-09_21h56_08.png.e78999301b217901343ce8f3b39a9e62.png

تم تعديل بواسطه عبد الله قدور
رابط هذا التعليق
شارك

وتعديل على الكود علشان يعمل اسرع 🙂

        Set DB = CurrentDb
        Set RsW = DB.OpenRecordset("item") ' جدول الوجهة
        Set RsM = DB.OpenRecordset("tmpadvb") 'جدول المصدر
    
	Do Until RsM.EOF
    
		RsW.FirstFirst "id=" & RsM!ItId
       
        RsW.Edit
			RsW!LastDate = RsM!ExDate
			RsW!Cost = RsM!Price
        RsW.Update

		if RsW.nomatch then
			'اذا مافي هذا السجل ، شو تريد عمله
		end if
		
		RsM.MoveNext
    Loop
	
    RsM.Close: set RsM=nothing
    RsW.Close: set RsW=nothing
    Set DB = Nothing

 

جعفر

  • Like 5
رابط هذا التعليق
شارك

27 دقائق مضت, عبد الله قدور said:

RsW.MoveFirst Do Until RsW.BOF

منطقيا كيف يتوالى هذان السطران

6 دقائق مضت, jjafferr said:

RsW.FirstFirst

انتبه أستاذنا

تم تعديل بواسطه عبد الفتاح كيرة
رابط هذا التعليق
شارك

11 دقائق مضت, jjafferr said:

جب ان تستعمل EOF 🙂

حياك الله وبياك اخي جعفر

لم انتبه اني استخدم التعبير الخطأ الى ان ذكرت انت ذلك

جزاك الله كل خير

 

  • Like 2
رابط هذا التعليق
شارك

بس اسهل واسرع لك اذا عملت استعلام تحديث 🙂

 

جعفر

هذه الطريقة تأخرك كثيرا :

If RsW!id = RsM!ItId Then

 

تصور اذا عندك 10,000 او 20,000 سجل او اكثر ، فانت تطلب من الكود ان يبحث فيهم سجل بسجل ، ولكل سجلات الجدول المصدر !!

 

جعفر

  • Like 3
رابط هذا التعليق
شارك

11 دقائق مضت, jjafferr said:

بس اسهل واسرع لك اذا عملت استعلام تحديث 🙂

 

جعفر

هذه الطريقة تأخرك كثيرا :


If RsW!id = RsM!ItId Then

 

تصور اذا عندك 10,000 او 20,000 سجل او اكثر ، فانت تطلب من الكود ان يبحث فيهم سجل بسجل ، ولكل سجلات الجدول المصدر !!

 

جعفر

نعم استاذي لقد جربت الكود على 250 الف سجل وكان بطي جدا 

فرجعت الي استعلام تحديث الحمدلله انتهت المشكله

الا عاجبني فيك استاذي الغالي انك ترد  علينا بالاجوابه  ثم تعقب علينا بالطرق الصحيحه 

وهذا ممتاز جدا

شكرا اليك ابو الجعافر:fff:

  • Like 2
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information