PDA

View Full Version : پاک کردن فیلد های خالی در بانک اطلاعاتی



vahidm
پنج شنبه 05 مهر 1386, 21:08 عصر
سلام
چطور میشه تمامی رکورد های خالی در بانک اطلاعاتی رو پاک کرد (رکورد های بلا استفاده)

alih988
جمعه 06 مهر 1386, 10:04 صبح
سلام. به نظر من با استفاده از یک حلقه و یک شرط میشه این کار رو کرد.
حلقه از ابتدا تا انتهای جدول ، و شرط چک کنه که آیا تعداد فیلدهای لازم جهت معتبر بودن یک رکورد کافی هست یا نه ، اگر کافی نبود آن رکورد را حذف کنه...

فکر کنم این کار کنه



Dim Rs as new adodb.recordset

Do while rs.eof <> True
for i = 0 to rs.fields.count -1
if rs.fields(i).value = null then
C= C+1
end if
next i
if c = 5 then rs.delete
rs.move Next
loop




البته دوست عزیز این کد را همینجا به ابتکار خودم نوشتم ، احتمال خیلی زیاد مکانیزم کارش صحیح است ، فقط خودتان با شکل صحیح در محیط وی-بی اجرا کنید ،
من در اینجا از متغیری به نام C استفاده کردم تا فیلد های خالی هر رکورد را شمارش کند ، اگر تعداد فیلدهای خالی در هر رکورد 5 تا بود ، آنگاه آن رکورد را پاک کند. البته ضوابط بهتر و دقیقتری میشه اعمال کرد.
امیدوارم مفید بوده باشه

__siavash__
جمعه 06 مهر 1386, 10:43 صبح
این کد هم یه تست بکن ببین جواب میده
من بانک اطلاعاتی با این مشخصات نداشتم که تست کنم

Dim i As Integer
Dim NullID As Boolean

Dim Conn As New ADODB.Connection
Dim RS As New ADODB.Recordset
Conn.Open "Provider=Microsoft.jet.OLEDB.4.0" & ";Data source = " & App.Path & "\db1.mdb"
RS.Open "Table1", Conn, adOpenKeyset, adLockOptimistic, adCmdTable
RS.MoveFirst
Do Until RS.EOF = True
For i = 1 To RS.Fields.Count - 1
If IsNull(RS.Fields(i).Value) = False Then
NullID = False
Exit For
End If
Next
If NullID Then RS.Delete
RS.MoveNext
Loop

RS.Close
Conn.Close

tanha50
سه شنبه 05 خرداد 1394, 05:52 صبح
با سلام
دوست عزیز در فایل ضمیمه به کدی که در on open فرم قرار داده شده دقت کن . هر بار که فرم باز میشه اگر در جدول فیلد خالی ایجاد شده باشه حذف می کنه . به این ترتیب بدون هیچ نگرانی به صورت اتوماتیک فیلدهای خالی جدول حذف می گردد.
موفق باشید
یا علی