24-02-18, 01:58 AM (آخر تعديل لهذه المشاركة : 24-02-18, 12:50 PM {2} بواسطة مصمم هاوي.)
[/font]
السلام عليكم
هل يتكرم أحد الأساتذة أو الخبراء بالتعديل على هذا المثال الصغير
المطلوب فيه : نسخ بيانات الحقول التالية :
ID - ID_COde - Name_Student
من الجدول Tech_Table إلى الجدول TBL_Exem
فقد تم عملية نسخ البيانات المطلوبة بشكل صحيح في حالة تشابه الجدولين تماماً
ولكن عند اختلاف الجدولين فإنه يتم مسح بيانات حقول الجدول Tech_Table
أو يبقى الجدول الثاني فارغ بدون أن تتم عملية النسخ.
وأنا أريد نسخ بيانات الحقول الثلاثة فقط ... وبقاء بيانات حقول الجدول الآخر
السلام عليكم و رحمة الله و بركاته
اساتذتي الكرام نفس مثال الاخ لكن يكون نقل الجدول بشروط
مثلا :
الجدول 1 : Table1
يحتوي على الحقول التالية
01 Name
02 Number
03 Resulta
يوجد في حقل : Resulta نتائج مختلفة : ناجح مثلا و راسب
اريد نقل الراسبين فقط الى الجدول 2 و قد حاولت كثيرا لكنني فشلت
ربي يجعل جهودكم في صالح اعمالكم
28-08-22, 07:23 PM (آخر تعديل لهذه المشاركة : 28-08-22, 07:32 PM {2} بواسطة Taha Okla.)
(28-08-22, 06:34 PM)2003amin كتب : السلام عليكم و رحمة الله و بركاته
اساتذتي الكرام نفس مثال الاخ لكن يكون نقل الجدول بشروط
مثلا :
الجدول 1 : Table1
يحتوي على الحقول التالية
01 Name
02 Number
03 Resulta
يوجد في حقل : Resulta نتائج مختلفة : ناجح مثلا و راسب
اريد نقل الراسبين فقط الى الجدول 2 و قد حاولت كثيرا لكنني فشلت
ربي يجعل جهودكم في صالح اعمالكم
نفس مثال الاخ لكن ببعض التعديلات
وعليكم السلام ورحمة الله وبركاته
ادخل على قاعدة البيانات وامسح الاسطر الفارغة من الجدول الثاني
ثم
خذ هذا الكود وضعه في أمر نسخ البيانات ..
كود :
Dim Rs1 As New ADODB.Recordset
Dim Rs2 As New ADODB.Recordset
' If RS.State = adStateOpen Then RS.Close
Rs1.Open "SELECT * FROM [Table1] Where Resulta ='راسب'", DB, adOpenDynamic, adLockOptimistic 'DB, adOpenStatic, adLockOptimistic
Rs2.Open "SELECT * FROM [Table2] ", DB, adOpenDynamic, adLockOptimistic
If Rs1.RecordCount > 0 Then Rs1.MoveFirst
If Rs2.RecordCount > 0 Then Rs2.MoveLast
Do Until Rs1.EOF
Rs2.AddNew
Rs2![Name] = Rs1![Name]
Rs2![Number] = Rs1![Number]
Rs2![Resulta] = Rs1![Resulta]
Rs2.Update
Rs1.Delete ' اذا كنت لا تريد النقل فقط نسخ - امسح هذا السطر
Rs1.MoveNext
Loop
بارك الله فيك استاذي مثالك شغال و عال العال لكن صراحة عندما اردت نقله الى مشروعي لم يشتغل
ارفقت لك جزء من المشروع ياريت تلقي نظرة اين يقع الخطا
شكرا لك سلفا استاذي الغالي
28-08-22, 10:41 PM (آخر تعديل لهذه المشاركة : 28-08-22, 10:48 PM {2} بواسطة Taha Okla.)
(28-08-22, 09:15 PM)2003amin كتب : بارك الله فيك استاذي مثالك شغال و عال العال لكن صراحة عندما اردت نقله الى مشروعي لم يشتغل
ارفقت لك جزء من المشروع ياريت تلقي نظرة اين يقع الخطا
شكرا لك سلفا استاذي الغالي
المرفق
المتغيرات اللي شغلهن جزئي لا تعرفهن خارج أحداثهن - حتى يتم تدميرهن لما ينتهي عملهن - وما يظلوا سبب لمشاكل أنت بغنى عنهن.. أمسح تعريفهن من قسم التعريف العام ..
خذ هذا الكود وانقله عندك - ولا تنسى تصحيح اسماء الحقول في الجدوال في قاعدة البيانات - أو تصلحهن ضمن الكود .. لأن الأسماء غير مطابقة للحقول في الجداول بعضهن خطأ..
كود :
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
rs1.Open "SELECT * FROM [addbook] Where NamEtatLivre ='ضائع'", Cn, adOpenDynamic, adLockOptimistic 'DB, adOpenStatic, adLockOptimistic
rs2.Open "SELECT * FROM [addbookLoste] ", Cn, adOpenDynamic, adLockOptimistic
If rs1.RecordCount > 0 Then rs1.MoveFirst
If rs2.RecordCount > 0 Then rs2.MoveLast
Do Until rs.EOF
rs2.AddNew
rs2![Code] = rs1![Code]
rs2![Name] = rs1![Name]
rs2![auther] = rs1![auther]
rs2![CategorieLivre] = rs1![CategorieLivre]
rs2![publisher] = rs1![publisher]
rs2![yearEntrerLibrary] = rs1![yearEntrerLibrary]
rs2![NamEtatLivre] = rs1![NamEtatLivre]
rs2![Etab] = rs1![Etab]
rs2![AgentLibrary] = rs1![AgentLibrary]
rs2.Update
rs1.Delete ' اذا كنت تريد النقل فقط دون الحذف افسخ هذا الحقل
rs1.MoveNext
Loop
(28-08-22, 09:15 PM)2003amin كتب : بارك الله فيك استاذي مثالك شغال و عال العال لكن صراحة عندما اردت نقله الى مشروعي لم يشتغل
ارفقت لك جزء من المشروع ياريت تلقي نظرة اين يقع الخطا
شكرا لك سلفا استاذي الغالي
المرفق
المتغيرات اللي شغلهن جزئي لا تعرفهن خارج أحداثهن - حتى يتم تدميرهن لما ينتهي عملهن - وما يظلوا سبب لمشاكل أنت بغنى عنهن.. أمسح تعريفهن من قسم التعريف العام ..
خذ هذا الكود وانقله عندك - ولا تنسى تصحيح اسماء الحقول في الجدوال في قاعدة البيانات - أو تصلحهن ضمن الكود .. لأن الأسماء غير مطابقة للحقول في الجداول بعضهن خطأ..
كود :
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
rs1.Open "SELECT * FROM [addbook] Where NamEtatLivre ='ضائع'", Cn, adOpenDynamic, adLockOptimistic 'DB, adOpenStatic, adLockOptimistic
rs2.Open "SELECT * FROM [addbookLoste] ", Cn, adOpenDynamic, adLockOptimistic
If rs1.RecordCount > 0 Then rs1.MoveFirst
If rs2.RecordCount > 0 Then rs2.MoveLast
Do Until rs.EOF
rs2.AddNew
rs2![Code] = rs1![Code]
rs2![Name] = rs1![Name]
rs2![auther] = rs1![auther]
rs2![CategorieLivre] = rs1![CategorieLivre]
rs2![publisher] = rs1![publisher]
rs2![yearEntrerLibrary] = rs1![yearEntrerLibrary]
rs2![NamEtatLivre] = rs1![NamEtatLivre]
rs2![Etab] = rs1![Etab]
rs2![AgentLibrary] = rs1![AgentLibrary]
rs2.Update
rs1.Delete ' اذا كنت تريد النقل فقط دون الحذف افسخ هذا الحقل
rs1.MoveNext
Loop
[/code]
بارك الله فيك أستاذ طه على ردك الذي أعنز به كثيراً
والمشكلة قد أنحلت والحمد لله
(28-08-22, 09:15 PM)2003amin كتب : بارك الله فيك استاذي مثالك شغال و عال العال لكن صراحة عندما اردت نقله الى مشروعي لم يشتغل
ارفقت لك جزء من المشروع ياريت تلقي نظرة اين يقع الخطا
شكرا لك سلفا استاذي الغالي
المرفق
المتغيرات اللي شغلهن جزئي لا تعرفهن خارج أحداثهن - حتى يتم تدميرهن لما ينتهي عملهن - وما يظلوا سبب لمشاكل أنت بغنى عنهن.. أمسح تعريفهن من قسم التعريف العام ..
خذ هذا الكود وانقله عندك - ولا تنسى تصحيح اسماء الحقول في الجدوال في قاعدة البيانات - أو تصلحهن ضمن الكود .. لأن الأسماء غير مطابقة للحقول في الجداول بعضهن خطأ..
كود :
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
rs1.Open "SELECT * FROM [addbook] Where NamEtatLivre ='ضائع'", Cn, adOpenDynamic, adLockOptimistic 'DB, adOpenStatic, adLockOptimistic
rs2.Open "SELECT * FROM [addbookLoste] ", Cn, adOpenDynamic, adLockOptimistic
If rs1.RecordCount > 0 Then rs1.MoveFirst
If rs2.RecordCount > 0 Then rs2.MoveLast
Do Until rs.EOF
rs2.AddNew
rs2![Code] = rs1![Code]
rs2![Name] = rs1![Name]
rs2![auther] = rs1![auther]
rs2![CategorieLivre] = rs1![CategorieLivre]
rs2![publisher] = rs1![publisher]
rs2![yearEntrerLibrary] = rs1![yearEntrerLibrary]
rs2![NamEtatLivre] = rs1![NamEtatLivre]
rs2![Etab] = rs1![Etab]
rs2![AgentLibrary] = rs1![AgentLibrary]
rs2.Update
rs1.Delete ' اذا كنت تريد النقل فقط دون الحذف افسخ هذا الحقل
rs1.MoveNext
Loop
[/code]
[/code]
كود :
بارك الله فيك أستاذ طه على ردك الذي أعنز به كثيراً
والمشكلة قد أنحلت والحمد لله
أعلم بارك الله فيك ولكن هنا عضو جديد سأل عن مشكلة تشابه موضوع هذه الصفحة.. هذا الرد له على سؤاله ..
(28-08-22, 09:15 PM)2003amin كتب : بارك الله فيك استاذي مثالك شغال و عال العال لكن صراحة عندما اردت نقله الى مشروعي لم يشتغل
ارفقت لك جزء من المشروع ياريت تلقي نظرة اين يقع الخطا
شكرا لك سلفا استاذي الغالي
المرفق
المتغيرات اللي شغلهن جزئي لا تعرفهن خارج أحداثهن - حتى يتم تدميرهن لما ينتهي عملهن - وما يظلوا سبب لمشاكل أنت بغنى عنهن.. أمسح تعريفهن من قسم التعريف العام ..
خذ هذا الكود وانقله عندك - ولا تنسى تصحيح اسماء الحقول في الجدوال في قاعدة البيانات - أو تصلحهن ضمن الكود .. لأن الأسماء غير مطابقة للحقول في الجداول بعضهن خطأ..
كود :
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
rs1.Open "SELECT * FROM [addbook] Where NamEtatLivre ='ضائع'", Cn, adOpenDynamic, adLockOptimistic 'DB, adOpenStatic, adLockOptimistic
rs2.Open "SELECT * FROM [addbookLoste] ", Cn, adOpenDynamic, adLockOptimistic
If rs1.RecordCount > 0 Then rs1.MoveFirst
If rs2.RecordCount > 0 Then rs2.MoveLast
Do Until rs.EOF
rs2.AddNew
rs2![Code] = rs1![Code]
rs2![Name] = rs1![Name]
rs2![auther] = rs1![auther]
rs2![CategorieLivre] = rs1![CategorieLivre]
rs2![publisher] = rs1![publisher]
rs2![yearEntrerLibrary] = rs1![yearEntrerLibrary]
rs2![NamEtatLivre] = rs1![NamEtatLivre]
rs2![Etab] = rs1![Etab]
rs2![AgentLibrary] = rs1![AgentLibrary]
rs2.Update
rs1.Delete ' اذا كنت تريد النقل فقط دون الحذف افسخ هذا الحقل
rs1.MoveNext
Loop
[/code]
[/code]
كود :
بارك الله فيك أستاذ طه على ردك الذي أعنز به كثيراً
والمشكلة قد أنحلت والحمد لله
أعلم بارك الله فيك ولكن هنا عضو جديد سأل عن مشكلة تشابه موضوع هذه الصفحة.. هذا الرد له على سؤاله ..
لأنني دخلت عن طريق الجوال لم أنتبه للموضوع جيدا؛ إنه البصر ياسادة ههههههه