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

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

قام بنشر

أحبائي .. السلام عليكم

لدي مربعي نص في النموذج

الأول باسم tt1

والثاني باسم tt2

ولدي زري أمر الأول ( نسخ) والثاني ( لصق)

أريد عندما أضغط على الزر ( نسخ ) أن يقوم بنسخ النص الذي في المربع tt1

وعندما أضغط الزر ( لصق) يقوم بلصق الكلام المنسوخ في المربع tt2

أرجو أن يكون السؤال واضح :d

وللجميع خالص تحياتي :fff::fff:

  • Thanks 1
قام بنشر

شكراً لك أخي أحمد

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

قام بنشر

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

كالتالي بالنسبة للنسخ

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70

DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70

وبالنسبة للصق كما يلي

DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70

قام بنشر

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

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

DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70

قام بنشر

اذا أردت نسخ سجل بالكامل فلا أفضل استخدام استدعاء أوامر القوائم

و لكن يتم ذلك بال dao

أو ال ado

هذا مثال لنسخ السجل الموجود فى النموذج الي سجل جديد مع تغيير الترقيم باضافة 1

و هو يحتاج الي اضافة مرجع dao

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

Private Sub copyRec_Click()


Dim MYDB As Database, MYSET1 As Recordset

Set MYDB = CurrentDb()

Set MYSET1 = MYDB.OpenRecordset("Query-or-Tablename")

 MYSET1.AddNew


    Dim n As Long

    n = DMax("inID", "Query-or-Tablename") + 1

  MYSET1![ID] = n

  MYSET1![Field1] = Me![TextBox1]

  MYSET1![Field2] = Me![TextBox2]

  MYSET1![Field3] = Me![TextBox3]

  MYSET1![Field4] = Me![TextBox4]



 MYSET1.Update

MYSET1.Close

Set MYDB = Nothing


DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

MsgBox " Copy Record Data Completed into record no. :" & Str(n), 64, "Alert"


Dim stLinkCriteria As String

  stLinkCriteria = "[ID]=" & n

  DoCmd.OpenForm "Formname", , , stLinkCriteria


End Sub

  • Like 2
قام بنشر

أستاذي محمد طاهر

سأجرب هذا الكود الذي وضعته فلك الشكر . بقي لدي تساؤل هل يتم إستدعاء أوامر القوائم (dao) بهذا الكود ؟؟ وماذا عن تعطيل كود من خلال كود آخر ! هل يمكن عمل ذلك ؟

قام بنشر

شكراً لك أستاذي وأعتذر عن عدم إجادتي في صياغة السؤال فسأحاول أن أوصل ما أريد

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

قام بنشر

الكود الذي ذكرت هو لل

Paste Append

و لانشاء الكود يكنك استخدام معالج انشاء االازرار

و من مجموعة Record

نختار نسخ السجلات

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

و لايقاف الرسالة الي حين تعديل تلك القيمة

اوقف اظهار الرسائل

On Error GoTo Err_Command4_Click

DoCmd.SetWarnings False



    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70

    DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70

    DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append



DoCmd.SetWarnings True

Exit_Command4_Click:

    Exit Sub


Err_Command4_Click:

    MsgBox Err.Description

    Resume Exit_Command4_Click

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

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

قام بنشر

شكراً لك أستاذي محمد

بالنسبة لقيمة حقل الرقم فأنا لا أرغب بأكثر من التنبيه فقط . اما بالنسبة للتكرار فهو بالنسبة للبرنامج متاح مع تغير القيمه في حقل آخر ( هنا لا توجد لدي مشكله ) والرسالة لا تعني أكثر من إيضاح تكرار الرقم وليس منع التكرار هذا بناء على الغرض من البرنامج . فأعتقد أن الكود الذي وضعته أخيراً يفي بالغرض وسوف أقوم يتجربته .

قام بنشر

أخي محمد للأسف لم يمنع هذا الكود ظهور الرسالة عند عملية اللصق

وهذا هو الكود الذي يظهر الرسالة بتكرار الرقم وهو ما أريد إيقافه عند اللصق

Private Sub nkind_AfterUpdate()

If (Eval("DLookUp(""[nkind]"",""[personal]"",""[nkind] =form![nkind]"") Is Not Null")) Then

Beep

    MsgBox "هذا الرقم تم تسجيله من قبل ؟ هل تريد مشاهدة الرقم المسجل مسبقاً والإطلاع على البيانات"

DoCmd.CancelEvent


    stDocName = "datepers"

    stLinkCriteria = "[nkind]=" & "'" & Me![nkind] & "'"

    DoCmd.OpenForm stDocName, , , stLinkCriteria

   'Forms![personal_subform]![nkind] = Null



End If

SendKeys "{f2}", False


End Sub

قام بنشر

حسناً أخي محمد .

يبدو أنني مثل من بعد طول جهد فسر الماء بالماءِ . عزيزي حقل الرقم الشخصي المبني عليه الرسالة مسموح بالتكرار فيه و لايوجد مشكله . الكود السابق يقوم بعرض رسالة تفيد بتكرار الرقم الذي أدخله المستخدم وتنتقل لفتح نموذج آخر على نفس الرقم المكرر لعرض بياناته ( هذا في حال التكرار فقط ) . أعلم أنك لم تعني الاستفسار عن عمل الكود بالضبط ولكن لماذا هو هنا !!! هذا هو الكود الذي أريد إيقاف عمله عند عملية اللصق .

قام بنشر

أخي محمد أريد بمعنى أدق تجميد عمل الكود نهائياً عند عملية اللصق . فهذا الكود مفعل عند تحديث حقل الرقم الشخصي وهذه العملية ( أي تحديث حقل الرقم الشخصي ) تتكرر بعد عملية اللصق حيث سيتم لصق البيانات في جميع الحقول ومن ضمنها حقل الرقم الشخصي . وهنا تظهر الرسالة ويتم الإنتقال للنموذج الذي قام بفرز الرقم المدخل .

عزيزي هل يوجد أو يمكن عمل كود تتم إضافته لزر الأمر (اللصق) ويتم من خلاله تجميد الكود الخاص بالرقم الشخصي عند تحديثه .

فأنا لا أريد حذف كود الحقل الشخصي نهائياً بل أريده للتنبيه والإشعار فقط لا غير وذلك عند التحديث ولا أريده عند اللصق .

قام بنشر

ربما يكون مناسبا أن تضع مربع نص مخفي مثلا و تجعل قيمته = 1

أو ـن تعرف متغير عام فى النموذج و تجعل قيمته = 1

و تجعل كود التحديث للحقل يعمل بشرط ان مربع النص هذا = 1

و قبل اللصق تغير قيمته الي صفر

و تعدلها الي 1 بعد اللصق

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