20/01/2011, 01:33
ozanakkaya
Private Sub Komut0_Click()
'---------------------------------------------------------------------------------------
' Procedure : Komut0_Click
' Author : alpeki99 - AccessTr.Net
' Date : 13.01.2011
' Purpose : Mevcut Access dosyası içinde tablo ve alan olup olmadığının kontrolünü yapmaktadır.
'---------------------------------------------------------------------------------------
'
On Error Resume Next
Dim sonuc As Byte
Dim tablo_adimiz, alan_adimiz, alan_ekle_sql As String
tablo_adimiz = "tblDENEME"
alan_adimiz1 = "SHS_NKOILCEKODU"
alan_adimiz2 = "SHS_NKOIL"
alan_adimiz3 = "SHS_NKOILCE"
DoCmd.Close acTable, tablo_adimiz
sonuc = accesstr_tablo_alan(tablo_adimiz, alan_adimiz1)
If sonuc = 3 Then
MsgBox "Böyle bir tablo bulunamadı", vbCritical + vbOKOnly, "AccessTR.Net"
End If
If sonuc = 2 Then
If MsgBox("Tablonuzda böyle bir alan bulunamadı. Bu alanı tablonuza eklemek ister misiniz?", vbCritical + vbYesNoCancel, "AccessTR.Net") = vbYes Then
DoCmd.SetWarnings False
alan_ekle_sql = "ALTER TABLE " & tablo_adimiz & " ADD Column " & alan_adimiz1 & " TEXT(6);"
alan_sil1_sql = "ALTER TABLE " & tablo_adimiz & " DROP Column " & alan_adimiz2 & ""
alan_sil2_sql = "ALTER TABLE " & tablo_adimiz & " DROP Column " & alan_adimiz3 & ""
DoCmd.RunSQL alan_ekle_sql
DoCmd.RunSQL alan_sil1_sql
DoCmd.RunSQL alan_sil2_sql
DoCmd.SetWarnings True
End If
End If
If sonuc = 1 Then
MsgBox ("Tablonuzda SHS_NKOILCEKODU alanı bulunmaktadır.")
End If
End Sub
Public Function accesstr_tablo_alan(ByRef tablo_adi As Variant, ByRef alan_adi As Variant) As Byte
On Error GoTo hata_yakala
Dim dbs As Database
Dim tdf As TableDef
Dim fld As Field
Dim i As Integer
Set dbs = CurrentDb
Set tdf = dbs.TableDefs(tablo_adi)
For i = 0 To tdf.Fields.Count - 1
If tdf.Fields(i).Name = alan_adi Then
accesstr_tablo_alan = 1
Exit Function
End If
Next i
accesstr_tablo_alan = 2
Exit Function
hata_yakala:
If Err.Number = 3265 Then
accesstr_tablo_alan = 3
End If
End Function