أبو وليد قام بنشر أغسطس 18, 2003 قام بنشر أغسطس 18, 2003 عندي جدول للمعاملات ولا اريد ان احفظ المعاملات حتى لا يكبر حجم القاعدة ولكن اريد ان احفظ اخر عشرين معاملة (سجل) ================ أي عند وصول السجلات في الجدول إلى عشرين سجل بعد ذلك عند اضافت سجل يقوم الكود بحذف أول سجل وهكذا أي لا يزيد عدد السجلات عن 20 سجل ويتم الحذف من السجل الاول بارك الله فيكم 1
امير عاطف قام بنشر أغسطس 18, 2003 قام بنشر أغسطس 18, 2003 ضع عند حدث زر الامر الذي يقوم باضافة سجل جديد الكود التالي : DoCmd.SetWarnings False If Me.RecordsetClone.RecordCount > 10 Then DoCmd.GoToRecord , , acFirst DoCmd.RunCommand acCmdDeleteRecord End If DoCmd.GoToRecord , , acNewRec 1
أبو وليد قام بنشر أغسطس 19, 2003 الكاتب قام بنشر أغسطس 19, 2003 نعم هذا هو المطلوب بارك الله فيك وجعلها في ميزان حسناتك
أبو وليد قام بنشر أغسطس 28, 2003 الكاتب قام بنشر أغسطس 28, 2003 اسف اخواني فأسئلتي كثيرة ولكن عشمي فيكم اكبر لدي جدولين مرتبطين راس بطراف الاول ( الشركة) الثاني ( الشركة- التاريخ-السعر) تلحق السجلات في الثاني عن طريق استعلام الحاق (جيد) السؤال أوريد ان اضع معير في الجدول الثاني ان السجلات لا تتعدى 10 سجلات وعند الزيادة يحدف الاول وهكذا سبق ان اجاب الاخ امير ولكن كان ذلك عن طريق النموذج وهذا الجدول ليس له نموذج لتعبئته اتمنى ان تكون اتضحت الصورة
امير عاطف قام بنشر أغسطس 28, 2003 قام بنشر أغسطس 28, 2003 يمكنك عمل ذلك ذلك ايضاً بدون النموذج عن طريق التعامل مع الجدول مباشرةً والغاء اول سجل من الجدول عن طريق وضع هذه الدالة بوحدة نمطبة عامة : Public Function delfirstrec() Dim db As DAO.Database Dim rst As DAO.Recordset Set db = CurrentDb Set rst = db.OpenRecordset("TableName") If rst.RecordCount > 10 Then rst.MoveFirst rst.Delete rst.Close MsgBox "تم الغاء السجل الأول من الجدول", vbOKOnly, "Officena" End If End Function وبعد ذلك تقوم باستدعاء الدالة من خلال ماكرو للعلم هذا الكود يقوم بالغاء السجل الأول فقط اذا عدد السجلات عن عشر سجلات 1
امير عاطف قام بنشر أغسطس 28, 2003 قام بنشر أغسطس 28, 2003 اما اذا اردت ايى عدد من السجلات اي ليس السجل الاول فقط اي كل السجلات الأولى يتم حذفها في حالة زيادة عدد السجلات عن عشر سجلات فها هو الكود ايضاً: Public Function delfirstrec() Dim db As DAO.Database Dim rst As DAO.Recordset Set db = CurrentDb Set rst = db.OpenRecordset("TableName") While rst.RecordCount > 10 rst.MoveFirst rst.Delete Wend rst.Close MsgBox "تم الغاء كل السجلات اللازمة", vbOKOnly, "Officena" End Function
أبو وليد قام بنشر أغسطس 28, 2003 الكاتب قام بنشر أغسطس 28, 2003 شكرا عزيزي دئما مبادر بالمساعدة وفقك الله ورعاك يعلم كم من الفائدة اجد في اجابتك اخي : يبدو انني لم اوصل لك المعلومة كما يجب لدي جدولين بين علاقة راس بطرف الجدول الاول ( الشركة) الجدول الثاني ( الشركة - الرمز - السعر) عند تشغيل الاستعلام تنتقل البيانات الى الجدول الثاني المطلوب ان السجلات المرتبطة بالجدول الاول لا تزيد عن عشرة تقريبا اما نفس الجدول مفتوح السجلات الشرح غير واضح اعانك الله عليه الجدول الاول =========== الشركة ------- السعودية مصر للطيران الامارتية الجدول الثاني ============== الشركة ________ الرمز_______ السعر ---------------------------------- السعودية ______01___________110 السعودية ______01___________20 السعودية_______01___________300 مصر للطيران____02___________200 مصر للطيران____02___________223 الامارتية_______03___________98 ==================== من الملاحظ في الجدول الثاني والاول عملية الارتباط المطلوب في الجدول الثاني الشركة السعودية لا تزيد عن عشرين سجل وعند الزيادة يحذف السجل الاول الخاص بالشركة السعودية اتمنى ان اكون وضحت الصورة بارك الله فيك ورزقك من نعيمه
امير عاطف قام بنشر أغسطس 28, 2003 قام بنشر أغسطس 28, 2003 هل تعني ان لا يزيد عدد سجلات كل شركة عن عشرون سجل بغض النظر عن سجلات الجدول بشكل عام؟ بمعنى ان لا يزيد عدد السجلات عن عشرون سجل لشركة السعودية و لا يزيد عدد السجلات عن عشرون سجل لشركة مصر للطيران و لا يزيد عدد السجلات عن عشرون سجل للشركة الاماراتية .................................................. وهكذا هل تعني ذلك ؟
امير عاطف قام بنشر أغسطس 30, 2003 قام بنشر أغسطس 30, 2003 (معدل) ااسف على التأخير اخي ابو وليد ... ولكن حتى نصل لحل مناسب هذه الدالة تفي بالمطلوب كما تريد بالضبط واذا زاد عدد سجلات اي مدينه عن عشرون سوف تقوم الداله بالغاء السجلات الاولى الزائدة عن العشرون سجل وذلك بالطبع لكل مدينة على حدة : Public Function delfirstrec() On Error Resume Next Dim db As DAO.Database Dim rst As DAO.Recordset Dim rsttransaction As DAO.Recordset Dim rst_temp As DAO.Recordset Dim tblofficena As DAO.TableDef Dim qryOfficena As DAO.QueryDef Dim fldtest As DAO.Field Set db = CurrentDb Set rst = db.OpenRecordset("TableName", dbOpenTable) rst.MoveFirst Do Until rst.EOF Set tblofficena = db.CreateTableDef("tbltest") Set fldtest = tblofficena.CreateField("city_temp", dbText) fldtest.Size = 50 tblofficena.Fields.Append fldtest db.TableDefs.Append tblofficena Set rst_temp = db.OpenRecordset("tbltest", dbOpenTable) rst_temp.AddNew rst_temp!city_temp = rst!city rst_temp.Update rst_temp.Close Set qryOfficena = db.CreateQueryDef("Officena", _ "SELECT city FROM TableName where city = dlookup('[city_temp]','[tbltest]')") Set rsttransaction = db.OpenRecordset("Officena") Do Until DCount("[city]", "[officena]") <= 20 rsttransaction.MoveFirst rsttransaction.Delete Loop rsttransaction.Close rst.MoveNext db.TableDefs.Delete ("tbltest") db.QueryDefs.Delete ("officena") Loop rst.Close db.Close MsgBox "تم الغاء السجلات اللازمة", vbOKOnly, "فريق اوفيسنا" End Function كل ما عليك هو استبدال اسم الجدول الذي به البيانات لديك بدلاً من TableName واستبدال اسم حقل المدينه بدلاً من City تم تعديل أغسطس 30, 2003 بواسطه امير عاطف
أبو وليد قام بنشر أغسطس 30, 2003 الكاتب قام بنشر أغسطس 30, 2003 (معدل) وفقك الله دنيا واخرة حقيقة يعجز اللسان عن الشكر ونسأل الله ان يرزقك الصحة والعافية والرزق الحلال في الدنيا والجنة في الاخرة لم تنجح معي يعلق برنامج الاكسس علما ان حقل المدينة بالعربي هل هذا يؤثر تم تعديل سبتمبر 2, 2003 بواسطه أبو وليد
امير عاطف قام بنشر سبتمبر 3, 2003 قام بنشر سبتمبر 3, 2003 يبدو انك لم تنسخ الدالة السابقة بشكل سليم .... بقم بعمل نسخ ولصق للدالة كما هي منعاً للخطأ وبعد ذلك كل ما عليك هو استبدال اسم الجدول الذي به البيانات لديك بدلاً من TableName واستبدال اسم حقل المدينه بدلاً من City ولا مشكله اذا كان اسم حقل المدينه بالعربي لكن ضعه بين قوسين مربعين هكذا []
أبو وليد قام بنشر سبتمبر 3, 2003 الكاتب قام بنشر سبتمبر 3, 2003 لم تنجح معي اسم الجدول tss5 والحقل الشركة عدلي في الكود
امير عاطف قام بنشر سبتمبر 3, 2003 قام بنشر سبتمبر 3, 2003 في حالة ان اسم الجدول tss5 والحقل الذي نريد الحذف على اساسه الشركة يكون الكود هكذا Public Function delfirstrec1() On Error Resume Next Dim db As DAO.Database Dim rst As DAO.Recordset Dim rsttransaction As DAO.Recordset Dim rst_temp As DAO.Recordset Dim tblofficena As DAO.TableDef Dim qryOfficena As DAO.QueryDef Dim fldtest As DAO.Field Set db = CurrentDb Set rst = db.OpenRecordset("tss5", dbOpenTable) rst.MoveFirst Do Until rst.EOF Set tblofficena = db.CreateTableDef("tbltest") Set fldtest = tblofficena.CreateField("city_temp", dbText) fldtest.Size = 50 tblofficena.Fields.Append fldtest db.TableDefs.Append tblofficena Set rst_temp = db.OpenRecordset("tbltest", dbOpenTable) rst_temp.AddNew rst_temp!city_temp = rst![الشركة] rst_temp.Update rst_temp.Close Set qryOfficena = db.CreateQueryDef("Officena", _ "SELECT [الشركة] FROM tss5 where [الشركة] = dlookup('[city_temp]','[tbltest]')") Set rsttransaction = db.OpenRecordset("Officena") Do Until DCount("[الشركة]", "[officena]") <= 20 rsttransaction.MoveFirst rsttransaction.Delete Loop rsttransaction.Close rst.MoveNext db.TableDefs.Delete ("tbltest") db.QueryDefs.Delete ("officena") Loop rst.Close db.Close MsgBox "تم الغاء السجلات اللازمة", vbOKOnly, "فريق اوفيسنا" End Function 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.