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

نسخ أو تكرار سجل سابق


ابو جودي

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

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

اولا وقبل اى شئ لم يتم ترتيب اسماء اساتذتى الكرام الذين تم كتابة اسمائهم لسبب محدد فالترتيب لا يعنى اى شئ اطلاقا فجميعهم النجوم اللامعة بمن نقتضى منهم فى هذا الصرح نهتدى ان شاء الله كما خو الحال مع باقى الاساتذة الذين لم اكتب اسمهم فلا يعنى ذلك اى شئ كلهم فى مرتبة واحدة وكلهم معلمينا الافاضل لا غنى لنا عنهم عذا فقط مجرد مثال

اسرد اليكم الشـرح سريعا لفكرتى
قبل البدء قد يتفق معى من يتفق ويختلف من يختلف
لذلك انتظر ارائكم ان شاء الله فيشيد بهذه الطريقه من يشيد و يعترض من يعترض فنخرج ان شاء الله بأطيب النتائج

هنا ان شاء الله اتعامل مع جدول باسم  tblMainData    والذى يختوى على الحقول    A,B,C
ونموذج  باسم    يضم الحقول على الترتيب  txtA , txtB, txtC

هذا الكود حتى اهئ النموذج للتعامل مع اختصار المفاتيح من الكيبورد

Private Sub Form_Load()
    Me.KeyPreview = True
End Sub

وهذا الجزء حتى اسند القيم التى احتاج لنسخها الى متغيرات
وكتبته هكذا ليسهل استدعاءه وقت الحاجة

Private Sub SpecialCopy()
    'الاعلان عن المتغيرات
    Dim VarFildeA As Variant
    Dim VarFildeB As Variant
    Dim VarFildeC As Variant
        'اسناد قيم مربعات النص الى المتغيرات
        VarFildeA = txtA
        VarFildeB = txtB
        VarFildeC = txtC
            DoCmd.GoToRecord , , acNewRec  'سجل جديد
                'نسخ قيم المتغيرات الى مربعات النص في السجل الجديد
                txtA = VarFildeA
                txtB = VarFildeB
                txtC = VarFildeC
                    'تفريغ المتغيرات
                    VarFildeA = Empty
                    VarFildeB = Empty
                    VarFildeC = Empty
End Sub

وهذا الجزء لاسناذ القيم من المتغيرات الى مربعات النص للسجل الجديد

وكتبته هكذا ليسهل استدعاءه وقت الحاجة

 
Private Sub DoCopy()
DoCmd.RefreshRecord

    If DCount("[ID]", "tblMainData") = 0 Then
        DoCmd.RefreshRecord
        Exit Sub
    ElseIf DCount("[ID]", "tblMainData") >= 1 Then
            If NewRecord Then
                DoCmd.GoToRecord , , acLast
                Call SpecialCopy
            Else
                Call SpecialCopy
            End If
    End If
End Sub

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

واهيرا استدعاء الكود من هلال زر امر لتنفيذ عملية نسه السجل الاأهير وقت الحاجة

Private Sub BtnDuplicate_Click()
    Call DoCopy
End Sub

وهذا الجزء كما يقولون عنه الـ  Hot Key  استدعاء الكود من خلال زر من الكيبورد عن الضغط عليه
 


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = 117 Then   ' استبدل هذا الرقم برقم المفتاح بالاعلى كما يحلو لك
    Call DoCopy
        KeyCode = 0
        Exit Sub
  End If
End Sub

 

تنويه ببعض الحيل ان اردنا نقوم بنسخ سجل محدد ان اردنا سجل بعينه تبعا لشرط او شروط محدده حسب ما تقتضى الحاجة

واخيـــرا المرفق 

Duplicate Last Record.mdb

تم تعديل بواسطه ابا جودى
  • Like 5
رابط هذا التعليق
شارك

عمل رائع وجميل أبا جودي

مع مداخلة بسيطة جدا جدا

امر

12 minutes ago, ابا جودى said:

DoCmd.RefreshRecord

لا اعتقد ان له دور هنا

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

هذا والله اعلم

يفضل ازالته

::

تحياتي

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

8 دقائق مضت, AlwaZeeR said:

عمل رائع وجميل أبا جودي

مع مداخلة بسيطة جدا جدا

امر

لا اعتقد ان له دور هنا

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

هذا والله اعلم

يفضل ازالته

::

تحياتي

له دور استاذى القدير ومعلمى الجليل ان كان السجل الاول  يتم ادخاله الان فى الجدول لابد من التحديث حتى استطيع نسخ القيم ان اردت نسخها :yes:

الان, ابا جودى said:

له دور استاذى القدير ومعلمى الجليل ان كان السجل الاول  يتم ادخاله الان فى الجدول لابد من التحديث حتى استطيع نسخ القيم ان اردت نسخها :yes:

لاننى هنا اعتمد فى طريقتى على نسخ القيم من السجل الاخير بعد الذهاب اليه اولا :yes::wink2:

جرب مسح الجدول نهائيا وافتح النموذج وبعد تسجيل اول سجل انسخه بدون هذا السطر من الكود

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

3 minutes ago, ابا جودى said:

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

جرب بدونه وسترى نفس النتيجة

 

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

4 دقائق مضت, AlwaZeeR said:

جرب بدونه وسترى نفس النتيجة

 

:biggrin: سبحان الله والله الاكسس خاف منك استاذى القدير ومعلمى الجليل :yes::fff:

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

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

19 ساعات مضت, essam rabea said:

بارك الله فيك أستاذنا أبا جودى .. كما أن النسخ لا يتم للسطر الأخير فقط وإنما للسطر النشط

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

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

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

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

وبالموافقة على الرسالة يتم النسخ والا يتم التجاهل و احباط العملية :wink2:

Duplicate Last Record (2).mdb

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

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