السلام عليكم
اعمل على برنامج ادخال
القاعدة اكسس الجدول tab البيانات الاسم / القاطع / بلد / رقم الهوية / التاريخ ....الخ
المشكلة ادخال تقريبا 250 شخص يوميا في السنة 90000 تقريبا وهذا الرقم والاسماء لا احتاجها فقط قبل 90 يوم .
المطلوب؟؟
كود بخذف الاسماء القديمة التي تجاوز عمرها اكثر من 90 يوم من تاريخ اليوم
جزاكم الله خيرا ---- زكاة العلم نشره
في جزئية بسيطة من السؤال انظر لهذا
المثال.
(20-01-17, 10:56 PM)مساعدة كتب : [ -> ]السلام عليكم
سبق أن أجبت بشكل مفصل على سؤالك في
محتاج كود حذف سجلات تاريخها تجاوز 30 يوم
لكن سؤالي أين ذهب مجهودي في الإجابةّ
وعليكم السلام
اشكرك اخي على الاجابه
وكان ردك هذا
DELETE FROM [table] WHERE DATEDIFF(day, [column3], GETDATE()) > 30
Access
كود :
DELETE FROM [table] WHERE DATEDIFF('d', [column3], NOW()) > 30
لكن يستحسن أن تستعلم عن عدد الأسطر التي حان وقت حذفها وعرض العدد للمستخدم مع توضيح انها قبل التاريخ (تاريخ اليوم - 30 يوم) وطلب الموافقة منه على اتمام عملية الحذف،
SqlServer
كود :
SELECT COUNT(*) FROM [table] WHERE DATEDIFF(day, [column3], GETDATE()) > 30
Access
كود :
SELECT COUNT(*) FROM [table] WHERE DATEDIFF('d', [column3], NOW()) > 30
وذلك من أجل التأكد من التاريخ وإعطاء المستخدم فرصة للتراجع إذا كان التاريخ غير صحيح، فلا يقع في مشكلة الحذف الغير قابل للتراجع.
ومن الأفضل مع SqlServer أن تاخذ تاريخ اليوم من تاريخ السيرفر وليس تاريخ الجهاز
وهذا الكود يعمل بحذف سجل سجل
PHP كود :
Dim a As Date = TextBox5.Text
'لو تاريخ اليوم اكبر من التاريخ المطلوب ب90 يوم
If Today > a.AddDays(90) Then
Me.Label8.Text = ("تجاوز 90 يوم ")
Dim SavInto As New OleDb.OleDbCommand
Dim DataAdapter1 As New OleDbDataAdapter(SQLstr, con)
SavInto.Connection = con
SavInto.CommandType = CommandType.Text
SavInto.CommandText = "DELETE FROM Tab WHERE name1 ='" & _
Trim(TextBox1.Text) & "'"
con.Open()
SavInto.ExecuteNonQuery()
DataSet1.Clear()
con.Close()
Refresh_Dataset1()
Else
Me.Label8.Text = ("لم يتجاوز 90 يوم ")
End If