أبو أحمد قام بنشر الإثنين at 12:08 قام بنشر الإثنين at 12:08 (معدل) السلام عليكم ورحمة الله / اعضاء الجروب الكرام كل عام وأنتم بخير بمناسبة شهر رمضان الكريم عندي نموذج مبني على جدولين يشتمل على مجموعة سجلات وليكن 100 سجل الترقيم التلقائي به مسجل من 1 إلى 100 ما على المستخدم الا أن يختار رقم السجل الموجود (من 1 إلى 100) ثم يقوم بتسجيل البيانات به سؤالي إذا رغبت حذف جميع الحفول في أحد السجلات (من الجدولين) بدون حذف رقم السجل (الترقيم التلقائي) فكيف يمكن ذلك أرجو أن يكون سؤال واضج وجزاكم الله خيرا تم تعديل الإثنين at 12:10 بواسطه أبو أحمد زيادة للتوضيح
Foksh قام بنشر الإثنين at 12:43 قام بنشر الإثنين at 12:43 34 دقائق مضت, أبو أحمد said: السلام عليكم ورحمة الله وعليكم السلام ورحمة الله وبركاته .. زودنا بملف بسيط على الأقل للتعرف على اسماء الحقول والجداول يا صديقي
أبو أحمد قام بنشر الإثنين at 13:30 الكاتب قام بنشر الإثنين at 13:30 41 دقائق مضت, Foksh said: زودنا بملف بسيط على الأقل للتعرف على اسماء الحقول والجداول تمام أستاذي الكريم حقك ولكن أنا اعتقد أنه يوجد كود معين لحذف جميع محتوى السجل باستثناء حقل الترقيم التلقائي المسجل لذلك لم أضع مثال جربت محاولة كتاب Me.filedname.value = " " مع جميع الحقول في النموذج ولكن للاسف بعد الحذف تماما وعند التسجيل من جديد في السجل تظهر علامات الجدول الثاني من جديد تلقائيا حيث الجدول الاول أسماء وبيانات وفي الجدول الثاني علامات فقط مثل ، : ; = / وغيرهم
Foksh قام بنشر الإثنين at 14:06 قام بنشر الإثنين at 14:06 (معدل) 38 دقائق مضت, أبو أحمد said: ولكن أنا اعتقد أنه يوجد كود معين لحذف جميع محتوى السجل باستثناء حقل الترقيم التلقائي المسجل لذلك لم أضع مثال يوجد كود لدي ، ولكنه يقوم بحذف جميع سجلات الجدول باستثناء حقل المفتاح الأساسي .. أم تريد حذف سجل محدد !!!! تم تعديل الإثنين at 14:09 بواسطه Foksh 💥 توضيح بعض النقاط ..
kkhalifa1960 قام بنشر الإثنين at 17:54 قام بنشر الإثنين at 17:54 تفضل استاذ @أبو أحمد حسب مافهمت اليك مرفق بطلبك . ووافني بالرد . DDBoAhmed.rar
أبو أحمد قام بنشر الإثنين at 19:47 الكاتب قام بنشر الإثنين at 19:47 1 ساعه مضت, kkhalifa1960 said: حسب مافهمت اليك مرفق بطلبك استاذي الكريم / أنا أسف لو أمكن ممكن تحوله إلى أكسس 2003 أسف لعدم ذكر ذلك في الأول ... شكرا على سعة صدرك 5 ساعات مضت, Foksh said: يوجد كود لدي ، ولكنه يقوم بحذف جميع سجلات الجدول باستثناء حقل المفتاح الأساسي هذا هو المطلوب أين هو ؟؟ ولكن لو أمكن أنا بعمل على أكسس 2003 شكرا
Foksh قام بنشر الإثنين at 19:59 قام بنشر الإثنين at 19:59 5 دقائق مضت, أبو أحمد said: هذا هو المطلوب أين هو ؟؟ ليس لدي آكسيس 2003 ، ولكن على حد علمي ، تأكد من وجود مكتبة "Microsoft DAO 3.6 Object Library" اذا لم يعمل معك الكود ، رغم أن آكسيس 2003 يدعم DAO ( على حد علمي ، والله أعلم ) . على كل حال ، جرب الكود التالي ، ومتابع معك حتى تصل للنهاية .. Private Sub Command0_Click() Dim db As DAO.Database Dim rst As DAO.Recordset Dim fld As DAO.Field Dim sqlUpdate As String Dim tableName As String tableName = "Employee" 'اسم الجدول Set db = CurrentDb Set rst = db.OpenRecordset(tableName, dbOpenDynaset) sqlUpdate = "UPDATE " & tableName & " SET " For Each fld In rst.Fields If fld.Name <> "EmployeeID" Then 'حقل المفتاح الأساسي If (fld.Attributes And dbAutoIncrField) = 0 Then sqlUpdate = sqlUpdate & "[" & fld.Name & "] = Null, " End If End If Next fld If Right(sqlUpdate, 2) = ", " Then sqlUpdate = Left(sqlUpdate, Len(sqlUpdate) - 2) db.Execute sqlUpdate, dbFailOnError MsgBox "تمت تصفية جميع البيانات باستثناء حقل المفتاح الأساسي", vbInformation, "" Else MsgBox "لا توجد حقول يمكن مسح محتوياتها", vbExclamation, "" End If rst.Close Set rst = Nothing Set db = Nothing End Sub ملف للتطبيق :- Delete Records.accdb
kkhalifa1960 قام بنشر الإثنين at 20:10 قام بنشر الإثنين at 20:10 22 دقائق مضت, أبو أحمد said: استاذي الكريم / أنا أسف لو أمكن ممكن تحوله إلى أكسس 2003 أسف لعدم ذكر ذلك في الأول ... شكرا على سعة صدرك تفضل استاذ DDBoAhmed -1.rar
أبو أحمد قام بنشر الإثنين at 20:53 الكاتب قام بنشر الإثنين at 20:53 52 دقائق مضت, Foksh said: اذا لم يعمل معك الكود ، رغم أن آكسيس 2003 يدعم DAO ( على حد علمي ، والله أعلم ) . على كل حال ، جرب الكود التالي ، ومتابع معك حتى تصل للنهاية .. بالفعل الكود لم يعمل معي أستاذي الكريم لو سهلت علي ممكن تحوله ألى أكسس 2003 جزاكم الله خيرا تكون سهلت عليا كثير
أبو أحمد قام بنشر الإثنين at 21:02 الكاتب قام بنشر الإثنين at 21:02 3 ساعات مضت, kkhalifa1960 said: حسب مافهمت اليك مرفق بطلبك بحاول أفهم لاني على قد حالي أخي الكريم احاول افهم وارد عليك ان شاء الله لانه واضح انه به شغل كثير جزاكم الله خيرا استاذي الكريم
Foksh قام بنشر الإثنين at 21:31 قام بنشر الإثنين at 21:31 37 دقائق مضت, أبو أحمد said: لو سهلت علي ممكن تحوله ألى أكسس 2003 جزاكم الله خيرا تكون سهلت عليا كثير جرب هذا المرفق Delete Records.mdb
أبو أحمد قام بنشر الإثنين at 23:21 الكاتب قام بنشر الإثنين at 23:21 1 ساعه مضت, Foksh said: جرب هذا المرفق أسف على اإطالة ولكن أعطى خطأ كما هو موضح بالصورة جاجة ثانية أريد مسح سجل واحد وليس جميع السجلات أسف على التعب وجزاكم الله خيرا
أبو أحمد قام بنشر الإثنين at 23:29 الكاتب قام بنشر الإثنين at 23:29 3 ساعات مضت, kkhalifa1960 said: فضل استاذ السلام عليكم ورحمة الله أستاذي الكريم الكود لا يعمل ويعطي رسالة عند الفتح كما في الصورة
Foksh قام بنشر الإثنين at 23:35 قام بنشر الإثنين at 23:35 (معدل) 11 ساعات مضت, أبو أحمد said: أسف على اإطالة ولكن أعطى خطأ كما هو موضح بالصورة جاجة ثانية أريد مسح سجل واحد وليس جميع السجلات أسف على التعب وجزاكم الله خيرا حسناً ، جرب هذا التعديل ، كنت قد جهزته مسبقاً للإحتياط لهكذا رد . مع العلم أنني لا أملك أوفيس 2003 للأسف ، وعل أحد الأخوة ممن يملك هذا الإصدار إفادتنا بالنتيجة أيضاً .. Private Sub Command0_Click() On Error GoTo ErrorHandler Dim db As Database Dim rst As Recordset Dim fld As Field Dim sqlUpdate As String Dim tableName As String tableName = "Employee" 'اسم الجدول Set db = CurrentDb() Set rst = db.OpenRecordset(tableName) sqlUpdate = "UPDATE " & tableName & " SET " For Each fld In rst.Fields If fld.Name <> "EmployeeID" Then 'حقل المفتاح الأساسي If Not (fld.Attributes And dbAutoIncrField) Then sqlUpdate = sqlUpdate & "[" & fld.Name & "] = Null, " End If End If Next fld If Right(sqlUpdate, 2) = ", " Then sqlUpdate = Left(sqlUpdate, Len(sqlUpdate) - 2) db.Execute sqlUpdate MsgBox "تمت تصفية جميع البيانات باستثناء حقل المفتاح الأساسي", vbInformation Else MsgBox "لا توجد حقول يمكن مسح محتوياتها", vbExclamation End If ExitSub: If Not rst Is Nothing Then rst.Close Set rst = Nothing Set db = Nothing Exit Sub ErrorHandler: MsgBox "حدث خطأ", vbCritical Resume ExitSub End Sub 1. حيث ما تم تعديله هو حذف مرجعيات DAO من تعريفات الكائنات لأنها غير ضرورية في أكسس 2003 حسب علمي . 2. قمت بإضافة معالجة الأخطاء باستخدام On Error GoTo ErrorHandler . 3. قمت بحذف dbFailOnError لأنه غير ضروري مع وجود معالج الأخطاء . جرب وأخبرني بالنتيجة ,, جرب بدايةً على الحذف الكامل ، ثم ننتقل لحذف سجل محدد مع العلم ، هذا ردك على حذف سجل واحد مؤخراً تم تعديل منذ 14 ساعات بواسطه Foksh
Foksh قام بنشر منذ 11 ساعات قام بنشر منذ 11 ساعات قمت بتثبيت نسخة أوفيس 2003 لمتابعة النتائج ، وهذه صورة للتوضيح للنتيجة :- المرفق :- Delete Records 1By1.mdb
أبو أحمد قام بنشر منذ 4 ساعات الكاتب قام بنشر منذ 4 ساعات 20 ساعات مضت, Foksh said: حسناً ، جرب هذا التعديل ، تمام هذا هو المطلوب ولكن للاسف مش عارف أعمل الكود على القاعدة عندي إذا كان الجدول الرئيسي عندي للاسف عنوان باللغة العربية جدول تسجيل الكتب فكيف يكتب في الكود هذا هو الكود الذي قمت بتعديله من عندكم فهل سحتاج للتعديل .. جزاكم الله خيرا Option Compare Database Private Sub Command0_Click() On Error GoTo ErrorHandler Dim db As dao.Database Dim rst1 As Recordset, rst2 As Recordset Dim fld As Field Dim sqlUpdate1 As String, sqlUpdate2 As String Dim جدول تسجيل الكتب D As Long If Me. searinumber= 0 Or IsNull(Me. searinumber) Or Me. searinumber= "" Then MsgBox "الرجاء إدخال رقم الكتاب", vbExclamation Me. searinumber.SetFocus Exit Sub End If جدول تسجيل الكتب D = Val(Me. searinumber) Set db = CurrentDb() Dim strCheck As String strCheck = "SELECT COUNT(*) FROM Empl WHERE NoMArks = " & empID If DCount("*", "Empl", " NoMArks = " & empID) = 0 Then MsgBox "رقم الكتاب غير موجود", vbExclamation Me. searinumber.SetFocus GoTo ExitSub End If Set rst1 = db.OpenRecordset("Empl") 'الجدول الرئيسي sqlUpdate1 = "UPDATE Empl SET " For Each fld In rst1.Fields If fld.Name <> " Marks ID" Then 'المفتاح الأساسي If Not (fld.Attributes And dbAutoIncrField) Then sqlUpdate1 = sqlUpdate1 & "[" & fld.Name & "] = Null, " End If End If Next fld If Right(sqlUpdate1, 2) = ", " Then sqlUpdate1 = Left(sqlUpdate1, Len(sqlUpdate1) - 2) sqlUpdate1 = sqlUpdate1 & " WHERE NoMArks = " & empID End If Set rst2 = db.OpenRecordset("Marks ") 'الجدول الفرعي sqlUpdate2 = "UPDATE Marks SET " For Each fld In rst2.Fields If fld.Name <> " Marks ID" Then 'الحقل المرتبط به If Not (fld.Attributes And dbAutoIncrField) Then sqlUpdate2 = sqlUpdate2 & "[" & fld.Name & "] = Null, " End If End If Next fld If Right(sqlUpdate2, 2) = ", " Then sqlUpdate2 = Left(sqlUpdate2, Len(sqlUpdate2) - 2) sqlUpdate2 = sqlUpdate2 & " WHERE NoMArks = " & empID End If db.Execute sqlUpdate1 db.Execute sqlUpdate2 MsgBox "تمت تصفية بيانات الموظف رقم " & empID & " في الجدولين", vbInformation Me. Marks.Requery ExitSub: If Not rst1 Is Nothing Then rst1.Close If Not rst2 Is Nothing Then rst2.Close Set rst1 = Nothing Set rst2 = Nothing Set db = Nothing Exit Sub ErrorHandler: MsgBox "حدث خطأ", vbCritical Resume ExitSub End Sub وفي النهاية اعطاني هذه الرسالة بالمرفق جزاكم الله خيرا
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.