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

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

قام بنشر

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

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

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

image.png.e9946459eec5d6f58bddcd78ba2e15c5.png Database2.accdbFetching info...

قام بنشر

تفضل 

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.accdbFetching info...

  • Like 1
  • Thanks 1
قام بنشر
  في 1‏/3‏/2023 at 12:40, ابوخليل said:

تفضل 

Expand  

ماشاء الله

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

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

ليكون الامر

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.accdbFetching info...

  • Like 1
  • Thanks 1
  • تمت الإجابة
قام بنشر
  في 1‏/3‏/2023 at 14:14, Mohamed Khaled Galal said:

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

Expand  

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

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

اخيرا

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

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

 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).accdbFetching info...

  • Thanks 1
قام بنشر
  في 1‏/3‏/2023 at 13:04, متقاعد said:

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

Expand  

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

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

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

  اقتباس

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

Expand  

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

  • 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