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

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

قام بنشر

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

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

مرفق لكم مثال على هذا

image.png.e9946459eec5d6f58bddcd78ba2e15c5.pngDatabase2.accdb

قام بنشر

تفضل 

Private Sub itemCode_AfterUpdate()
 Me.Refresh
 Dim rs As Recordset
 Dim strsql As String
 strsql = "SELECT Table1.* FROM Table1 WHERE Table1.[itemCode]=" & [Forms]![AdditemPerCode]![itemCode]
 Set rs = CurrentDb.OpenRecordset(strsql)
 Me.itemname = rs!itemname
 Me.itemdesc = rs!itemdesc
 Me.itemqty = rs!itemqty
 Me.dateee = rs!dateee
End Sub

 

Database3.accdb

  • Like 1
  • Thanks 1
قام بنشر
23 دقائق مضت, ابوخليل said:

تفضل 

ماشاء الله

كنت بدأت في العمل ثم شاهدت مشاركة استاذي

تم اضافة فكرة عد السجل لمنع تكرار الحاق سجل سبق الحاقه

ليكون الامر

Dim x As Integer
x = DCount("*", "table2", "[itemcode]=" & Me.itemCode)
If x > 0 Then
GoTo a
Else
GoTo b
End If
b:
 Me.Refresh
 Dim rs As Recordset
 Dim strsql As String
 strsql = "SELECT Table1.* FROM Table1 WHERE Table1.[itemCode]=" & [Forms]![AdditemPerCode]![itemCode]
 Set rs = CurrentDb.OpenRecordset(strsql)
 Me.itemname = rs!itemname
 Me.itemdesc = rs!itemdesc
 Me.itemqty = rs!itemqty
 Me.dateee = rs!dateee
 rs.Close
 GoTo c
a: MsgBox "الصنف سبق الحاقة"
Me.Undo
GoTo c
c: Exit Sub

الملف مرفق

 

Database3.accdb

  • Like 1
  • Thanks 1
  • أفضل إجابة
قام بنشر
1 ساعه مضت, Mohamed Khaled Galal said:

متشكر جدا لكم اخواني

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

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

اخيرا

في مثل هذه الحالات التي تتساوي فيها مسميات حقول الجدولين

يمكن عدم كتابة اسماء الحقول باستبدال

 Me.itemname = rs!itemname
 Me.itemdesc = rs!itemdesc
 Me.itemqty = rs!itemqty
 Me.dateee = rs!dateee

الى

For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Then
ctl.Value = rs.Fields(ctl.Name)

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

الامر بعد التعديل

Dim x As Integer
x = DCount("*", "table2", "[itemcode]=" & Me.itemCode)
If x > 0 Then
GoTo a
Else
GoTo b
End If
b:
Me.Refresh
Dim rs As Recordset
Dim strsql As String
Dim ctl As Control
strsql = "SELECT Table1.* FROM Table1 WHERE Table1.[itemCode]=" & [Forms]![AdditemPerCode]![itemCode]
Set rs = CurrentDb.OpenRecordset(strsql)
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Then
ctl.Value = rs.Fields(ctl.Name)
End If
Next ctl
rs.Close
GoTo c
a: MsgBox "الصنف سبق الحاقة"
Me.Undo
GoTo c
c: Exit Sub

الملف مرفق

 

 

Database3(1).accdb

  • Thanks 1
قام بنشر
3 ساعات مضت, متقاعد said:

تم اضافة فكرة عد السجل لمنع تكرار الحاق سجل سبق الحاقه

الله يحفظك استاذنا الكريم

فكرة منع التكرار جميلة .. والذي جاء على بالي بعد تصفح المرفق ان جدول1 اصناف وجدول2 تفاصيل و كما تعلم التكرار مطلوب

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

اقتباس

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

بل اجابتك الاخيرة هي افضل اجابة

  • Thanks 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