الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعديل عل كود النسخ من جدول إلى أخر

بدأه ramynassif في 12 يناير 2011 · 5 رد · 633 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أعزائى أهل الخبرة

لقد قمت بعمل كود برمجى يقوم بنسخ محتويات حقل من جدول إلى جدول أخر

ولكن عندما قمت بإضافة علامة تبويب لنسخ فقط الحقل الذى به علامة التبويب فشلت!!

أرجو من سيادتكم إضافة خبرتكم وتعديل هذا الكود بحيث ينسخ فقط الحقل الذى به علامة التبويب

كما لو أمكن أريد عند فتح النموذج إزالة كل علامات التبويب

وأكون شاكر جداً

Database1.rar

#2

تفضل اخى الكريم

تم عمل المطلوب

لكن خذ هذه الملاحظات و التزم بها قدر الامكان فى برامجك القادمة

1- استخدم اسماء حقول انجليزية دوما

2- لا تستخدم الفراغ داخل اسم الحقلمطلقا / يمكن للضرورة استخدام المدة التحتية .. اندرسكور

3- لا تستخدم العبارة on error الا بعد التاكد من عمل الكود جيدا

* يمكن الاستغناء عن نقل السجلات باضافة حقل نعم/لا ليحدد هل تم صرف الشيك ام لا

تمنياتي لك بالتوفيق

Database1_mod.rar

#3

الاخ الكريم tbzah

جزاك الله خيرا على مساعدتك لاخوانك

لكن لى ملاحظه بسيطه

لماذا تفحص جميع السجلات لتحدد السجلات المطلوبه

يمكنك ان تفرز هذه السجلات اولا ثم تنقلها ( اذا كانت موجودة )

الفارق قد لا يكون ملحوظا الان لكن لو كان عدد السجلات كبير فستلاحظ الفارق بوضوح

الاخ رامى

الكود الموضجود ينقل السجل الحالى فقط

لذلك يجب فحص السجلات لتحديد السجل/ السجلات المطلوب نقلها حتى تتم العملية بنجاح

المرفق به تعديل للكود بالشكل الذى تريد

و الله الموفق

عدل كود الزر ليكون هكذا

On Error GoTo Err_Command46_Click
       Dim db As DAO.Database, rs, rs2 As DAO.Recordset
       Dim c, i As Integer
       Set db = CurrentDb
       Set rs2 = db.OpenRecordset("SELECT Checksbankup.* FROM Checksbankup WHERE (((Checksbankup.chack)=True)); ")
       c = rs2.RecordCount

   If c > 0 Then
            rs2.MoveFirst

    For i = 1 To c
      'If Check43 = True Then
       Set rs = db.OpenRecordset("Checks")
       rs.AddNew
       rs("Checks") = rs2![ValueofCheck]
       rs("Payee") = rs2![Payee]
       rs("Data") = rs2![Data]
       rs("Code") = rs2![Code]
       rs("Number Of Check") = rs2![Number of Check]
       rs("Date of Checks") = rs2![Date of Checks]
       rs.Update

       rs2.MoveNext
       'rs.Close
    Next
       'Me.Requery
       MsgBox "áÞÏ ÊãÊ ÚãáíÉ ÇáÊäÝíÐ ÈäÌÇÍ"
 Else
       MsgBox "Êã ÇáÅáÛÇÁ "

End If
Exit_Command46_Click:
    Exit Sub

Err_Command46_Click:
If err.Number = 3022 Then
MsgBox "ÓÌá ãßÑÑ"
    End If

    Resume Exit_Command46_Click

تم تعديل هذه المشاركة بواسطة Abo_Yossof في 13 يناير 2011 في 08:55

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#4

بارك الله فيك اخى ابو يوسف

بصراحة انا اعتبرت انه ربما تم تحديد اكثر من سجل مرة واحدة

اما بخصوص تعديلكم المقترح ... فقد جربت هذا الكود و لم يعمل عندي و لا اعلم ما السبب ؟؟؟ هل يحتاج الى مرجع ؟؟ ارجو الافادة

Set rs2 = db.OpenRecordset("SELECT Checksbankup.*, Checksbankup.chack FROM Checksbankup WHERE (((Checksbankup.chack)=True)); ")

* نقطة اخرى غفلنا عنها انا و انت وهي اننا لم نفحص الجدول هل تم اضافة هذا السجل مسبقا ؟؟ يعني لو ضغط المستخدم مرتين على زر الترحيل فسيتم اضافة نفس السجل مرتين و هذا خطأ

#5

الأخ طبزة والأخ أبو يوسف أنا بشكركم على سرعة ردكم ومشاركتكم

ولكن بالنسبة للأخ أبو يوسف لى تعليق بسيط بحيث أنه فى حالة اختيار أكثر من سجل لا يقوم إلا بنقل الأول فقط ؟؟

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

وشكراً لاهتمامكم

#6

تفضل اخى الكريم

تم اضافة تعديلين مهمين

1- تبدأ جميع علامات التبويب غير محددة كما طلبت

2- و هو الاهم :/ فحص هل هذا السجل مضاف مسبقا ؟؟؟ حيث غيرت فى الكود بحيث لو تكت اضافة نفس السجل عدة مرات فلن يرحل الا مرة واحدة فقط و بالتالى لن يظهر الا مرة واحدة فى الجدول الثاني checks

Database1_mod1.rar

مواضيع مشابهة