AccessTr.neT

Tam Versiyon: Veri tekrarı
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Ekteki veritabanımdaki Tablo1 de Kimlik, İl, İlçe ve SeminerTarihi alanları var. İstediğim şu: Aynı il, ilçe ve tarihte ikinci bir seminer eklenmesin tabloya. Örneğin: Aydın ili Nazilli İlçesi 01/02/2012 tarihli iki tane veri olmasın.
Aynı ilçede farklı tarihte seminer düzenleyebiliriz.
veya;
aynı tarihte farklı bir ilçede de seminer düzenleyebiliriz.
bu sınırlamayı nasıl yapabilirim acaba?
ilginize teşekkür ederim.
En basit yöntem Tablonun tasarım görünümünde açarak il,ilçe,tarih alanlarını seçip Primary key yapmandır.
Araç çubuğundaki sarı anahtar komutu ile.
Kolay Gelsin.
Teşekkür ederim
primary key yapılırsa tekrara izin verilse bile aynı ilçede seminer olabileceği için farklı tarihte sorun yaratır
Abi tarihide primary key yaptığımızdan farklı tarihlerde yapılmasına izin verecektir.
kod



Option Compare Database
Public rstkayit As ADODB.Recordset
Dim strSQL As String
Const tarfor = "\#mm\/dd\/yyyy\#"
Private Sub Komut16_Click()
Call arakaydet
End Sub
Function arakaydet()
Dim strWhere As String
' kriter alanlarını kontrol ediyoruz
If Len(Me.tarih & vbNullString) > 0 Then
strWhere = strWhere & "Tablo2.tarih= " & Format(Me.tarih, tarfor) & "AND "
End If
If Len(Me.ilce & vbNullString) > 0 Then
strWhere = strWhere & "Tablo2.ilce='" & Me.ilce & "' AND "
End If
If Len(Me.semineradi & vbNullString) > 0 Then
strWhere = strWhere & "Tablo2.semineradi='" & Me.semineradi & "' AND "
End If
' where ekleme ve fazla and leri kaldırma
If Len(strWhere) > 0 Then
strWhere = " WHERE " & Left(strWhere, Len(strWhere) - 4)
End If

strSQL = "SELECT * FROM Tablo2 " & strWhere & ";"
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQL, CurrentProject.Connection, adOpenStatic, adLockReadOnly

If Not rstkayit.BOF And Not rstkayit.EOF Then
MsgBox "BU TARİH VE BU İLÇEDE YAZDIĞINIZ SEMİNER BULUNMAKTADIR."
Else
strSQL = "SELECT * FROM Tablo2 "
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
.AddNew
.Fields("tarih") = Me.tarih
.Fields("ilce") = Me.ilce
.Fields("semineradi") = Me.semineradi
.Update
End With
MsgBox "KAYDINIZ YAPILDI ALANLAR BOŞALTILDI"
Me.tarih = ""
Me.ilce = ""
Me.semineradi = ""
End If
End Function