سلام در مورد ایتم ۴ داریم
کد جهت حذف تمام اطلاعات جداول در دیتابیس . تست شد
Private Sub Command11_Click()
On Error GoTo Error_TruncateTables
Dim DB As DAO.Database
Dim TDF As DAO.TableDef
Dim strSQL_DELETE As String
Set DB = CurrentDb()
For Each TDF In DB.TableDefs
If Not (TDF.Name Like "MSys*" Or TDF.Name Like "~*" Or Len(TDF.Connect) > 0) Then
strSQL_DELETE = "DELETE FROM " & TDF.Name
DB.Execute strSQL_DELETE
End If
Next
MsgBox "Tables have been truncated", vbInformation, "TABLES TRUNCATED"
DB.Close
Exit_Error_TruncateTables:
Set TDF = Nothing
Set DB = Nothing
Exit Sub
Error_TruncateTables:
Select Case Err.Number
Case 3376
Resume Next 'Ignore error if table not found
Case 3270 'Property Not Found
Resume Next
Case Else
MsgBox Err.Number & amp, ": " & amp, Err.Description
Resume Exit_Error_TruncateTables
End Select
End Sub
در مورد ایتم سوم
حالا فرض بر این است که ما یک سری جداول ثابت داریم و متاسفانه در زمان نام گذاری جداول از اختصار خاصی هم استفاده نکرده ایم که مثلا در همان شرط درون کد بنویسیم
اگر نام جدول شامل مثلا tbllist باشد .
وما جداولی با نامهایی مثلا
tbllistsity
tbllistmarakez
tbllistostanha
داریم که نباید پاک بشه .
اگر نام گذاری خاصی داشته باشیم
در شرط مربوط به حذف اعلام میکنیم از جداولی به این شکل هم صرف نظر کن
همانگونه که میگوئیم از جداول ،sysو ~ صرف نظر کن.
حالا یک راه حل میخوایم
......................
چرا یک جدول ایجاد نکنیم شامل جداولی که باید خالی شوند .به ترتیب .
و در فرمول بالا گنجانده شود که بجای جستجو و حذف اطلاعات تمام جداول .
فقط جداول موجود در جدول به ترتیب خالی بشوند ؟
ضمنا میتوان لیست جداول را بر اساس پست ۷ تهیه کرد و در جدولی ذخیره نمود .با چک باکس تعیین کرد که پاک شود .یا پاک نشود .
مثال جدول لیست جداول قابل حذف
کد جدول. نام جدول. نوع جدول. پاک شود
۱. لیست شهرها. والد . no
2. جدول پرسنل. والد . yes
۳.جدول کارکرد. فرزند. yes
حالا با یک کلیک طبق جدول تمام موارد yes خالی بشه
اینجوری دیگه هم از قبل موارد قابل حذف مشخص شده و هم ممکنه فایل رو به واحدی بدیم که پرسنل رو نخواد پاک کنه . اونجا فقط بره فرم تعیین موارد حذف. رو باز کنه و پرسنل رو noقرار بده و ذخیره . ونهایتا اجرای خالی نمودن دیتابیس .
و اتونامبر ها هم صفر بشه با این کد .
کد صفر کردن اتونامبر
DoCmd.RunSQL "ALTER TABLE " & "tablename" & " ALTER COLUMN " & "autoIdfileldname" & " COUNTER(1,1); "
در مورد ایتم ۱ و ۲
در کد حذف جداول با تغییر خط زیر میتوان محدوده حذف جدول رو هم تعیین کرد .
strSQL_DELETE = "DELETE FROM " & TDF.Name
DB.Execute strSQL_DELETE
حالا هدف ایتم سوم هست .
تعیین لیست جداول قابل حذف که طبق
پست 11کار سختی نیست .
ولی البته موضوع لیست نمودن به ترتیب فرزند و والد.و مشاهده در یک کانتینیوزفرم هست .